p5200151 发表于 2011-11-10 23:55:14

如何让一个exe程序不能单独运行?(已解决)

本帖最后由 p5200151 于 2011-11-18 10:14 编辑

如何让一个exe程序不能单独运行,只能被指定的程序加载后才能运行?
比如A.exe和B.exe
运行A.exe后B.exe将自动运行,单独运行B.exe将报:请运行A.exe

pusofalse 发表于 2011-11-11 00:15:45

b.exe判断自己的父进程是否是a.exe,运行a.exe后由a调用Run函数创建b进程。论坛中有检测父进程的代码。

p5200151 发表于 2011-11-11 00:54:29

找半天,没找到呢

sour 发表于 2011-11-11 08:04:45

基本函数help里面都有

骗子 发表于 2011-11-11 17:51:41


$ilist = ProcessList("QQ.exe")
        If UBound($ilist) = 1 Then
MsgBox (4096,"错误","请运行QQ后再运行本程序")
Exit
ENDIF
       

lenlydia 发表于 2011-11-11 17:51:51

函数参考
_WinAPI_GetParentProcess
--------------------------------------------------------------------------------

检索指定进程的父进程 PID.


#Include <WinAPIEx.au3>
_WinAPI_GetParentProcess ( [$PID] )




参数

$PID [可选参数] 进程 PID. 默认 0, 为当前进程.



返回值

成功: 返回父进程的 PID.
失败: 返回 0,设置@error:标志为非 0 值.

从帮助里面找出来的。。

黑色袜子 发表于 2011-11-11 21:22:58

本帖最后由 黑色袜子 于 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")

p5200151 发表于 2011-11-11 23:39:10

非常感谢。。。。。。
页: [1]
查看完整版本: 如何让一个exe程序不能单独运行?(已解决)