win7中的Uac与开机自动启动

在另一篇文章中已经介绍了给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的隐藏参数,嘻嘻。。。

参考:http://blog.chinaunix.net/uid-20718335-id-364397.html

时间: 2024-12-14 13:01:59

win7中的Uac与开机自动启动的相关文章

ubuntu开机自动启动chromium os下chroot中的脚本

这篇文章记录了在ubuntu(12.04)下开机自动启动一个chromium os中的脚本所遇到的问题及解决办法. chromium os是Google的一个开源操作系统,在src/platform/factory/py/shopfloor目录下是一些控制生产测试的脚本,通过在chroot下执行./shopfloor_server.py -m cros.factory.shopfloor.target_shopfloor来启动特定的生产测试程序. 现在需要target_shopfloor能在开机

Win7 开机自动启动Outlook2010

工作中,设置一些开机启动项,可以提供工作效率,下面演示设置Outlook2010在win7系统开机自启动,其它软件,如Eclipse.微信等,也可以这么配置. 环境: win7,outlook 2010. 1 复制Outlook 2010的快捷方式: 2粘贴到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp目录: 3 重启计算机查看是否配置成功. 原文地址:https://www.cnblogs.com/east7/p/95

[C#]解决程序Vista/Win7下因UAC导致的读写错误

在微软的操作系统中,vista和win7加入了UAC的功能,UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员‌密码.通过在这些操作启动前对其进行验证,UAC 可以帮助防止恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改. 如图中所示,不属于 Windows 的一部分的程序需要您的许可才能启动.它

java实现软件程序开机自动启动和创建程序的桌面快捷方式源代码

一.java实现.exe程序的开机自动启动 1.描述 自己在eclipse编写的java项目用exe4j Wizard打包成一个.exe可执行文件,并让用户可以开机自动启动. 2.步骤 1.   获得本软件中.exe可执行文件的路径 2.   在Windows系统中的开机启动栏存放该.exe可执行文件的快捷方式,即可实现开机自动启动. 3.代码 private void startFolderMethod() { String path = System.getProperty("user.di

Win7中如何在服务中启动一个当前用户的进程——函数CreateProcessAsUser()的一次使用记录

这次工作中遇到要从服务中启动一个具有桌面UI交互的应用,这在winXP/2003中只是一个简单创建进程的问题.但在Vista 和 win7中增加了session隔离,这一操作系统的安全举措使得该任务变得复杂了一些. 一.Vista和win7的session隔离 一个用户会有一个独立的session.在Vista 和 win7中session 0被单独出来专门给服务程序用,用户则使用session 1.session 2... 这样在服务中通过CreateProcess()创建的进程启动UI应用用

Win7中如何在服务中启动一个当前用户的进程——一次CreateProcessAsUser()使用记录

这次工作中遇到要从服务中启动一个具有UI交互的桌面应用,这在winXP/2003中只是一个简单创建进程的问题.但在Vista 和 win7中增加了session隔离,这一操作系统的安全举措使得该任务变得复杂了一些. 一.Vista和win7的session隔离 一个用户会有一个独立的session.在Vista 和 win7中session 0被单独出来专门给服务程序用,用户则使用session 1.session 2... 这样在服务中通过CreateProcess()创建的进程启动UI应用用

设置Oracle11g开机自动启动

设置Oracle11g开机自动启动: 在Redhat和Centos中设置允许ORACLE 系统自动启动,默认情况下是 设置为不允许的. 1.在root 账户下修改/etc/oratab 文件: # vi /etc/oratab orcl=/db/app/oracle/product/11.1.0/db_1 :N     最后的N 改为Y, 2.在oracle 账户下修改ORACLE 自带的启动与关闭脚本,分别是dbstart 和dbshut. 这两个脚本就可以实现ORACLE 脚本的启动与关闭.

instsrv+srvany创建服务实现开机自动启动vmware虚机

我的理解如下: 1.用instsrv新添加一个自定义服务名的服务,此服务关联着srvany程序: 2.srvany程序读注册表相应项,找到服务的主应用程序并按照注册表的参数执行它: 3.这个服务可以在services.msc中找到,可以设置开机自动启动.. 注册表文件这样写,写好了双击.(注册表文件后缀是reg) Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服

linux开机自动启动脚本

通过现场对这次天津iptv demo项目的调测.对iptv这套系统有了更好的认识和理解.由于iptv本身需要安装许多服务.而现场实施中有没有把这些需要启动服务的脚本加入到开机自动运行中.如果服务器重启之后需要手工开启许多服务.工作及以后的维护相对比较繁琐.特地总结了下linux下开机自动启动脚本所涉及的知识和方法.如下: 1.相关基础知识点 1)redhat的启动方式和执行次序是: 加载内核 执行init程序 /etc/rc.d/rc.sysinit # 由init执行的第一个脚本 /etc/r