Tagged Tags:

一、前言

      
关于C#开机自动运营程序的诀窍,网络出现比比较多的是修改注册表:

       1.
HKEY_LOCAL_MACHINE\Software\www.yabovip4.com,Microsoft\Windows\CurrentVersion\Run或者RunOnce

亚搏app官方网站,      
2.HKEY_Current_User\Software\Microsoft\Windows\CurrentVersion\Run或者RunOnce

       将你想要自动开机实施的前后相继的称呼与路径写入该注册表就能够促成开机自动运维,但是!那些艺术是有题指标:

开机自动运营程序的办法。开机自动运营程序的办法。      1.
微软自Vista之后对注册表的权力管理尤其粗暴,需求一层层的权柄操作,对注册表操作须要app.manifest文件:

         
<requestedExecutionLevel level=”highestAvailable” uiAccess=”false”
/>

         
並且操作注册表时还索要

         
Registry.LocalMachine.OpenSubKey(Yoursubkey,

         
RegistryKeyPermissionCheck.ReadWriteSubTree,System.Security.AccessControl.RegistryRights.FullControl);达成全部调控

      2.
本身在编写制定开机自动运营程序时也是先用修改注册表的艺术,可是开掘针对分歧Computer不是每趟都能成功的,也便是说修改注册表的情势的成功率并非百分之百

 

二、贰个古老而保障的点子

       其实有二个一定可信而且实用的措施,这便是在微型计算机【开首/运行】文件夹中,将您想要开机自动运维的次第的快速方式放入进去。这样后一次开机就能够进行这一个文件夹的顺序,

      不要忘记** !开机自动运营程序的办法。*开机自动运营程序的办法。*假如不是每一遍开机都要实行这一个顺序的话,你应当在程序中有三个剔除该神速方式的言语。

     

     
上边是笔者的开机自动程序的组成都部队分:

      1.
亟待开机自动施行的主次                 Restart.exe

      2.
叁个指点试行Restart.exe的脚本      Restart.vbs

    

开机自动运营程序的办法。      假若Restart.exe与.vbs
在顾客机的随机一个硬盘上的随机三个职责,作者的流程是:

      1.
生成Restart.vbs的飞速格局Restart.lnk——>将.lnk剪切至【开首/运转】文件夹内

      2.
当后一次开机时会先通过快捷方式.lnk试行.vbs,再经过.vbs实施.exe

      3.
当exe里的程序实施完以往,用File.Delete将.lnk删除(小编可不想每回开机试行那些.lnk)

 

三、代码完成

     1. vbs脚本代码
(这几个剧本必得和.exe在同样文件夹中)

Set shell =Wscript.createobject("WScript.Shell")  
shell.Run "Restart.exe",0,False

     

     2. 创制快速形式的代码
(供给引进COM组件,名字为Windows Script Host Object
Model)

 if (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\Restart.lnk"))
 {
     IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
     IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(System.IO.Path.Combine("The path you want", "Restart.lnk")); 
     //有些目录下不允许建快捷方式
     shortcut.TargetPath = System.IO.Path.Combine("Your exe file path", "Restart.vbs"); 
     shortcut.WorkingDirectory = "The path you want";
     shortcut.WindowStyle = 7;
     shortcut.Save();            
     File.Move(System.IO.Path.Combine("The path you want", "Restart.lnk"), Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\Restart.lnk");
 }

      注意!最终一句! 

     
File.Move的Environment.GetFolderPath(Environment.SpecialFolder.Startup)

  • “\\Restart.lnk”

      无法写成

      Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup),”Restart.lnk”)

 

    3.
实行完exe中的主要代码后,删除该急迅格局以免每一回开机都实行那些顺序(根据自已的急需)

File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\Restart.lnk");

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注