zhenglei 发表于 2010-5-14 14:05:16

检测程序运行模式???? 讨论第一帖--已解决

本帖最后由 zhenglei 于 2010-5-16 14:31 编辑

例如1.exe   ....只允许在系统开机时加载启动(如放注册表等地方则可以启动)当1.exe 在被用户双击执行时则弹出对话框(次程序只可在系统被加载时自动启动。。)
这样的功能不知如何才可以实现????

补充一下。。 实现此功能本人不想用参数来代替实现此功能。。。 参数调用只是给人一错觉感觉实现了以上功能。。 实际并没有实现。。谢谢。。

netegg 发表于 2010-5-14 14:20:57

不明白,看不懂,完全不清楚lz的意思

netegg 发表于 2010-5-14 14:21:08

不明白,看不懂,完全不清楚lz的意思

鸟人 发表于 2010-5-14 14:29:21

学会搜索http://autoitx.com/forum.php?mod=viewthread&tid=10143&highlight=%B2%CE%CA%FD

zhenglei 发表于 2010-5-14 14:41:56

学会搜索
鸟人 发表于 2010-5-14 14:29 http://www.autoitx.com/images/common/back.gif


    参数调用只是给人一错觉感觉实现了以上功能。。 实际并没有实现。。谢谢。。

afan 发表于 2010-5-14 15:52:49

貌似参数调用是最简单的方法了

C.L 发表于 2010-5-15 01:18:23

不想用参数就试试下面这个方法
RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\run","test","REG_SZ", @ScriptFullPath)
If Not ProcessExists ("userinit.exe") Then
        MsgBox (0,"","此程序只可在系统被加载时自动启动")
        Exit
EndIf

MsgBox (0,"","程序在系统开机时允许加载启动")


autoit3CN 发表于 2010-5-15 01:24:15

楼上思路可行

C.L 发表于 2010-5-15 02:03:40

刚想起来,还有一种方法,这种方法优势是可以获取系统启动运行的时间,调整起来比较灵活。
RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\run","test","REG_SZ", @ScriptFullPath)
$Tick = DllCall("kernel32.dll", "int", "GetTickCount");获取系统启动经过的时间
$T = Int(($tick / 1000));转换为秒
If $t > 60 Then
        MsgBox (0,"","此程序只可在系统被加载时自动启动")
        Exit
EndIf
MsgBox (0,"","程序在系统开机时允许启动")

netegg 发表于 2010-5-15 07:27:32

回复 1# zhenglei
首先,lz做这类程序有恶意软件之嫌,另外,执行之后是结束还是保留

3mile 发表于 2010-5-15 09:45:50

如果只是为了开机启动,检查注册表即可。
如果要实现更复杂的功能,最好还是用参数的形式

zhenglei 发表于 2010-5-16 14:29:51

哈哈。。 解决了。。好啊。。
页: [1]
查看完整版本: 检测程序运行模式???? 讨论第一帖--已解决