本文整理自网络,侵删。
在另一篇文章中已经介绍了给Exe加上Uac的方法,在使用的过程中我们会发现,如果把带Uac的Exe写入注册表的Run中,是无法实现开机自动启动的,原因就是带Uac的exe需要申请管理员权限,以便运行执行程序,而在开机时无法申请到管理员权限,Exe将无法正常启动。那么如何使带Uac的Exe开机自动启动呢。既然带Uac的Exe开机无法申请到管理员权限,那么可以新建一个不带Uac的小程序,在其中实现申请管理员权限启动exe不就可以解决问题了吗?实现方法如下:unit DyjStartMainForm;interfaceuses
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) + 'Dyj2.exe';
ShellExecute(0, 'runas', PChar(_vPathExe), nil, nil, SW_SHOWNORMAL);
Application.Terminate;
end;end. 该篇文章感觉里面说的那些东西行不通,仅作参考,我找到好方法了会替换本篇文字。 www.delphitop.com
最终解决办法:http://www.delphitop.com/html/xitong/1527.html 20191020补充
1. VC 的 win7开机自动启动拥有管理员权限 http://www.cnblogs.com/keith2011/articles/2038398.html 我目前是这么用呢主程序+辅助程序(带uac) 当主程序需要管理员权限时,就呼出辅助程序来完成。
相关阅读 >>
Delphi rest application 与 webbroker application 区别
Delphi combobox和listbox的文字可以右对齐显示
更多相关阅读请进入《Delphi》频道 >>