一個專案里面同時滿足系統時間修改與開機自啟動,現在系統時間修改需要增加管理員權限,而有了管理員權限外開機自啟動又啟動不了,兩者現在沖突,我添加的管理員權限是在組態檔更改為管理員

開機自啟動是在啟動檔案夾里面添加快捷方式,添加了以后更改為管理員權限啟動也不行,求哪位大神知道怎么修改一下
uj5u.com熱心網友回復:
1.以管理員身份運行:public static bool UACCheckCurAdministratorAndRunAs(string[] args)
{
//如果是xp系統類下的不處理
if (Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major <= 5) return true;
//會彈出確認!!!
/**
* 當前用戶是管理員的時候,直接啟動應用程式
* 如果不是管理員,則使用啟動物件啟動程式,以確保使用管理員身份運行
*/
//獲得當前登錄的Windows用戶標示
System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
//判斷當前登錄用戶是否為管理員
if (!principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
{
//創建啟動物件
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
//設定運行檔案
startInfo.FileName = System.Windows.Forms.Application.ExecutablePath;
//設定啟動引數
if (args != null) startInfo.Arguments = String.Join(" ", args);
//設定啟動動作,確保以管理員身份運行
startInfo.Verb = "runas";
try
{
//如果不是管理員,則啟動UAC
System.Diagnostics.Process.Start(startInfo);
//退出
System.Windows.Forms.Application.Exit();
return false;
}
catch
{
}
}
return true;
}
winform程式的program.cs :
/// <summary>
/// 應用程式的主入口點。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (!WindowsTools.UACCheckCurAdministratorAndRunAs(null)) return;
....................................
2.設定系統 時間
/// <summary>
/// 設定系統時間
/// </summary>
/// <param name="d"></param>
public static void SetSysDateTime(DateTime d)
{
try
{
Microsoft.VisualBasic.DateAndTime.Today = d;
Microsoft.VisualBasic.DateAndTime.TimeOfDay = d;
}
catch { }
}
添加參考Microsoft.VisualBasic
3.開機啟動:
/// <summary>
/// 設定程式自啟動
/// </summary>
public static void SetAppAutoRun()
{
string keyname = Process.GetCurrentProcess().ProcessName;
string keyvalue = Path.Combine(Application.StartupPath, keyname + ".exe");
SetAppAutoRun(keyname, keyvalue);
}
uj5u.com熱心網友回復:
public static void SetAppAutoRun(string keyname, string appfn)
{
string keyvalue = appfn;
RegistryKey runKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
var _objoldvalue = runKey.GetValue(keyname);
string oldvalue = _objoldvalue == null ? "" : _objoldvalue.ToString(); ;
if (keyvalue.ToLower() != oldvalue.ToLower())
{
runKey.SetValue(keyname, keyvalue);
runKey.Flush();
}
runKey.Close();
}
uj5u.com熱心網友回復:
做一個小程式 主專案設定成開機自啟 啟動的時候啟動小程式 然后把系統時間改了不知道可不可以轉載請註明出處,本文鏈接:https://www.uj5u.com/net/13022.html
標籤:C#
上一篇:Visual Studio2019安裝時報錯Microsoft.Net.4.7.2.FullRedist未能安裝解決方法
