win7中的Uac與開機自動啟動解決方法
來源:程序員人生 發布時間:2014-01-14 08:44:02 閱讀次數:3218次
在使用的過程中我們會發現,如果把帶Uac的Exe寫入注冊表的Run中,是無法實現開機自動啟動的,原因就是帶Uac的exe需要申請管理員權限,以便運行執行程序,而在開機時無法申請到管理員權限,Exe將無法正常啟動。那么如何使帶Uac的Exe開機自動啟動呢。
既然帶Uac的Exe開機無法申請到管理員權限,那么可以新建一個不帶Uac的小程序,在其中實現申請管理員權限啟動exe不就可以解決問題了嗎?實現方法如下:
unit DyjStartMainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI;
const
WM_STARTCLOSE = WM_USER + 100;
type
TFrmDyjStart = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
protected
procedure WMStartClose(var Msg: TMessage); message WM_STARTCLOSE;
public
{ Public declarations }
end;
var
FrmDyjStart: TFrmDyjStart;
implementation
{$R *.dfm}
procedure TFrmDyjStart.FormCreate(Sender: TObject);
begin
PostMessage(Self.Handle, WM_STARTCLOSE, 0, 0);
end;
procedure TFrmDyjStart.WMStartClose(var Msg: TMessage);
var
_vPathExe : string;
begin
_vPathExe := ExtractFilePath(Application.ExeName) + 'sysreset.exe';
ShellExecute(0, 'runas', PChar(_vPathExe), nil, nil, SW_SHOWNORMAL);
Application.Terminate;
end;
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈