杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2413|回复: 0

Installshield实现程序的开机自启动

[复制链接]
发表于 2018-5-24 16:20:06 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序开机自动启动

方法有两种:添加到Startup和添加注册表。


添加到注册表很容易实现,Registry下的Registry View里,在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\下创建对应的键名和键值就可以,如:  Value name:vsnp2uvc
      Value data:WINDIR\vsnp2uvc.exe


由于是要添加.cpl文件,得分不同的系统去做不同的调用,所以只能用动态添加注册表的方法。

下面介绍动态脚本添加注册表的方法:

  1. //----------------------------------------------------
  2. //  Custom_RegDBCreate
  3. //----------------------------------------------------
  4. function Custom_RegDBCreate()
  5. string szLoadProgram, szProgram, szValue;
  6. begin  

  7.   // 针对.cpl文件,xp下和vista/win7下的调用是有所不同的,所以要分脚本实现。

  8. //==========================================================
  9. szProgram =  TARGETDIR^"Realtek Camera Manager.cpl";

  10. if((SYSINFO.nWinMajor == 6)&&(SYSINFO.nWinMinor >= 0)) then
  11.   szLoadProgram = WINSYSDIR^ "RunLegacyCPLElevated.exe";
  12. else  
  13.   szLoadProgram = WINSYSDIR^ "rundll32.exe";   
  14. endif;

  15. szValue = szLoadProgram + " shell32.dll,Control_RunDll " + """ + szProgram + """;

  16. RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
  17. RegDBCreateKeyEx(REGDB_KEYPATH_RUN,"");
  18. RegDBSetKeyValueEx(REGDB_KEYPATH_RUN,"Realtek Camera Manager", REGDB_STRING_EXPAND, szValue, -1 );
  19. //===========================================================================      

  20.             

  21. // 虽然快捷方式运行.cpl用system32下的RunLegacyCPLElevated.exe  shell32.dll,Control_RunDll +

  22. // "程序名" 命令没有问题,可是这里添加到注册表Software\Microsoft\Windows\CurrentVersion\Run\

  23. // 下后,XP下正常,Win7下重启并没能自动运行,于是想到让其开机后自动运行.bat文件来实现这个功能。

  24. if((SYSINFO.nWinMajor == 6)&&(SYSINFO.nWinMinor >= 0)) then   
  25.      szValue = TARGETDIR^ "AutoRun.bat" ;
  26. else
  27.      szValue = TARGETDIR^ "AutoRunXP.bat" ;
  28. endif;
  29.      
  30. RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
  31. RegDBCreateKeyEx(REGDB_KEYPATH_RUN,"");
  32. RegDBSetKeyValueEx(REGDB_KEYPATH_RUN, "Realtek Camera Manager", REGDB_STRING, szValue, -1 );

  33.   
  34. end;

  35. // 上面函数已完成动态注册表的添加
复制代码


下面附上.bat批处理的实现:



AutoRun.bat的内容:

start "" C:\WINDOWS\system32\RunLegacyCPLElevated.exe shell32.dll,Control_RunDll "C:\WINDOWS\system32\Realtek Camera Manager.cpl"



AutoRunXP.bat的内容:

start "" "C:\WINDOWS\system32\Realtek Camera Manager.cpl"
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-15 05:32 , Processed in 0.100629 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表