标题:vfp 如何设置程序开机自启以及关闭开机自启?
只看楼主
su0527
Rank: 2
等 级:论坛游民
帖 子:452
专家分:79
注 册:2015-1-10
结帖率:96.03%
已结贴  问题点数:20 回复次数:6 
vfp 如何设置程序开机自启以及关闭开机自启?
请问如何用代码修改注册表,现实开机自启;以及如何关闭开机自启。(比如程序:e:\xs.exe)
搜索更多相关主题的帖子: vfp 开机 关闭 现实 exe 
2018-02-26 20:25
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
注册表的常用Run键
......\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
XP的系统菜单还有个启动(startup)目录:C:\Documents and Settings\Administrator\「开始」菜单\程序\启动
2018-02-27 05:27
su0527
Rank: 2
等 级:论坛游民
帖 子:452
专家分:79
注 册:2015-1-10
得分:0 
回复 2楼 吹水佬
#define HKEY_LOCAL_MACHINE    2147483646
*在WindowsAPI编程中,HKEY—LOCAL—MACHINE 被预置为0x80000002,即十进制的-2147483646
clear menu all
set sysme off
Declare Integer RegSetValue In Win32API integer nHkey,STRING cSubKey, integer dwType,string@ lpDatainteger,integer@ count
newValue="e:\小精灵\小精灵.exe"
i=len(newValue)
nResult=RegSetValue(HKEY_LOCAL_MACHINE,"Software\Microsoft\windows\CurrentVersion\run",1,@newvalue,@i)
if nResult#0
wait wind "修改注册表失败!"
endi

&&以上是收集自网上的代码,没测试成功。帮助分析一下!
2018-02-27 10:24
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 3楼 su0527
简单试了一下(XP、WIN10)
** HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
#DEFINE HKEY_CURRENT_USER    -2147483647

DECLARE LONG RegOpenKey IN Advapi32 LONG, STRING@, LONG@
DECLARE LONG RegCloseKey IN Advapi32 LONG
DECLARE LONG RegSetValueEx IN Advapi32 LONG, STRING@, LONG, LONG, STRING@, LONG

LOCAL cFileName, hKey
cFileName = "C:\temp\test.exe"
hKey = 0
IF RegOpenKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", @hKey)==0
    RegSetValueEx(hKey, "test", 0, 1, cFileName, LEN(cFileName))
    RegCloseKey(hKey)
ENDIF
2018-02-27 15:35
su0527
Rank: 2
等 级:论坛游民
帖 子:452
专家分:79
注 册:2015-1-10
得分:0 
回复 4楼 吹水佬
设置后,如何取消开机自启,也就是复原。
2018-02-27 18:34
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
以下是引用su0527在2018-2-27 18:34:36的发言:

设置后,如何取消开机自启,也就是复原。

取消可以用RegDeleteValue直接删除掉
** HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
#DEFINE HKEY_CURRENT_USER    -2147483647

DECLARE LONG RegOpenKey IN Advapi32 LONG, STRING@, LONG@
DECLARE LONG RegCloseKey IN Advapi32 LONG
DECLARE LONG RegSetValueEx IN Advapi32 LONG, STRING@, LONG, LONG, STRING@, LONG
DECLARE LONG RegDeleteValue IN Advapi32 LONG, STRING@

**    IF myStartup("test", "C:\temp\test.exe")
**        ? "设置成功"
**    ENDIF

IF myStartup("test")
    ? "取消成功"
ENDIF


FUNCTION myStartup(cValName, cFileName)
    LOCAL hKey, ret
    hKey = 0
    ret = RegOpenKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", @hKey)==0
    IF ret
        IF !EMPTY(cFileName)
            ret = FILE(cFileName)
            IF ret
                ret = RegSetValueEx(hKey, cValName, 0, 1, cFileName, LEN(cFileName))==0
            ENDIF
        ELSE
            ret = RegDeleteValue(hKey, cValName)==0
        ENDIF
        RegCloseKey(hKey)
    ENDIF
    RETURN ret
ENDFUNC
2018-02-27 21:41
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:0 
这个不错!用得到!
2018-08-07 23:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484869-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.192047 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved