如何让一个exe程序不能单独运行?(已解决)
本帖最后由 p5200151 于 2011-11-18 10:14 编辑如何让一个exe程序不能单独运行,只能被指定的程序加载后才能运行?
比如A.exe和B.exe
运行A.exe后B.exe将自动运行,单独运行B.exe将报:请运行A.exe b.exe判断自己的父进程是否是a.exe,运行a.exe后由a调用Run函数创建b进程。论坛中有检测父进程的代码。 找半天,没找到呢 基本函数help里面都有
$ilist = ProcessList("QQ.exe")
If UBound($ilist) = 1 Then
MsgBox (4096,"错误","请运行QQ后再运行本程序")
Exit
ENDIF
函数参考
_WinAPI_GetParentProcess
--------------------------------------------------------------------------------
检索指定进程的父进程 PID.
#Include <WinAPIEx.au3>
_WinAPI_GetParentProcess ( [$PID] )
参数
$PID [可选参数] 进程 PID. 默认 0, 为当前进程.
返回值
成功: 返回父进程的 PID.
失败: 返回 0,设置@error:标志为非 0 值.
从帮助里面找出来的。。 本帖最后由 黑色袜子 于 2011-11-11 21:24 编辑
#include <WinAPIex.au3>
#include <Process.au3>
If $cmdlineraw <> "gui" Then
MsgBox(16 + 262144, "提示", "不能手动运行此文件!", 10)
Exit
EndIf
$upname = _ProcessGetName(_winapi_getparentprocess())
If $upname <> 'A.exe' Then
MsgBox(16 + 262144, "提示", "不能手动运行此文件", 10)
Exit
EndIf2个法子。自己选择。也可以都用上去。第一个是参数运行的。那么a.exe的代码应该是run("b.exe gui") 非常感谢。。。。。。
页:
[1]