mirror of
https://github.com/tiennm99/time-mocker.git
synced 2026-10-04 00:13:45 +00:00
feat(init): from claude
This commit is contained in:
1 parent
2184ab5d6c
commit
ee2ebfa67f
10 files changed
+1327
-1
No files matched your search
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using TimeMocker.UI.Forms;
|
||||
|
||||
namespace TimeMocker.UI
|
||||
{
|
||||
internal static class Program
|
||||
{
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
|
||||
// EasyHook requires elevated privileges for cross-process injection
|
||||
if (!IsElevated())
|
||||
{
|
||||
var result = MessageBox.Show(
|
||||
"TimeMocker needs to run as Administrator to inject into other processes.\n\n" +
|
||||
"Please restart as Administrator.",
|
||||
"Elevation Required",
|
||||
MessageBoxButtons.OKCancel,
|
||||
MessageBoxIcon.Warning);
|
||||
|
||||
if (result == DialogResult.OK)
|
||||
RestartAsAdmin();
|
||||
return;
|
||||
}
|
||||
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
|
||||
private static bool IsElevated()
|
||||
{
|
||||
using var id = System.Security.Principal.WindowsIdentity.GetCurrent();
|
||||
var principal = new System.Security.Principal.WindowsPrincipal(id);
|
||||
return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
|
||||
}
|
||||
|
||||
private static void RestartAsAdmin()
|
||||
{
|
||||
var info = new System.Diagnostics.ProcessStartInfo
|
||||
{
|
||||
FileName = Application.ExecutablePath,
|
||||
UseShellExecute = true,
|
||||
Verb = "runas"
|
||||
};
|
||||
try { System.Diagnostics.Process.Start(info); }
|
||||
catch { /* user cancelled UAC */ }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user