当前位置:首页 > Windows程序 > 正文

win7中的Uac与开机自动启动

2021-03-27 Windows程序

在另一篇文章中已经介绍了给Exe加上Uac的方法,在使用的过程中我们会发现,如果把带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) + Dyj2.exe; ShellExecute(0, runas, PChar(_vPathExe), nil, nil, SW_SHOWNORMAL); Application.Terminate; end; end.

注意,runas是ShellExecute的隐藏参数,嘻嘻。。。

参考:

win7中的Uac与开机自动启动

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68629.html