以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  注册表写入值没有反应,不知道是怎么回事  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=115486)

--  作者:天蝉一线
--  发布时间:2018/3/7 23:31:00
--  注册表写入值没有反应,不知道是怎么回事
我想把发布的程序的可执行文件按照路径放到注册表的run 里面,下面代码没有起作用,不知道是怎么回事,麻烦老师看一下:
Dim qdcx As String 
qdcx = Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run","jqglcwgl",ProjectPath & "\\jqcwzcgl.foxdb")
Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run","jqglcwgl",ProjectPath & "\\jqcwzcgl.foxdb")
msgbox(qdcx)


--  作者:有点甜
--  发布时间:2018/3/8 9:47:00
--  

参考代码

 

Dim starupPath = ProjectPath & "xxx.exe"

Dim loca = Microsoft.Win32.Registry.LocalMachine
Dim run = loca.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run")

\'run.SetValue("我的项目", False) \'取消开机运行
run.SetValue("我的项目", starupPath) \'设置开机运行
loca.Close()


--  作者:天蝉一线
--  发布时间:2018/3/8 14:44:00
--  
如何判断这个启动项是否存在
--  作者:有点甜
--  发布时间:2018/3/8 15:14:00
--  

参考

 

https://www.cnblogs.com/GT_Andy/archive/2009/05/16/1922082.html

 

https://msdn.microsoft.com/zh-cn/library/k23f0345.aspx

 

https://msdn.microsoft.com/zh-cn/library/microsoft.win32.registryvaluekind.aspx

 


--  作者:天蝉一线
--  发布时间:2018/3/8 19:20:00
--  
为什么发布后,注册表里面的值在“c:\\publish\\project\\***.exe”,明明我的***.exe文件在“c:\\publish”下,不知道是怎么回事,代码用的就是一楼的代码
--  作者:有点甜
--  发布时间:2018/3/8 21:30:00
--  

改成这样即可

 

Dim starupPath = ApplicationPath & "xxx.exe"

 

 


--  作者:天蝉一下
--  发布时间:2018/3/9 9:20:00
--  
还有个问题,有些计算机注册表可以通过一楼的代码修改,有些单位的计算机运行后,注册表没有把启动文件加进去,是不是权限的问题,在代码中如何解决。
--  作者:有点甜
--  发布时间:2018/3/9 10:15:00
--  

1、你使用【管理员身份】运行exe了没有,需要有电脑管理员权限才能操作注册表的;

 

2、如果只是希望开机运行,你可以直接把快捷方式拷贝到->开机自动启动文件夹,也可以达到同样效果 ;

 

3、你也完全可以在打包制止成exe安装程序的时候,设置注册表的。