找回密码
 加入
搜索
查看: 1829|回复: 7

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

  [复制链接]
发表于 2011-11-10 23:55:14 | 显示全部楼层 |阅读模式
本帖最后由 p5200151 于 2011-11-18 10:14 编辑

如何让一个exe程序不能单独运行,只能被指定的程序加载后才能运行?
比如A.exe和B.exe
运行A.exe后B.exe将自动运行,单独运行B.exe将报:请运行A.exe
发表于 2011-11-11 00:15:45 | 显示全部楼层
b.exe判断自己的父进程是否是a.exe,运行a.exe后由a调用Run函数创建b进程。论坛中有检测父进程的代码。
 楼主| 发表于 2011-11-11 00:54:29 | 显示全部楼层
找半天,没找到呢
发表于 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
        
发表于 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
EndIf
2个法子。自己选择。也可以都用上去。第一个是参数运行的。那么a.exe的代码应该是
run("b.exe gui")
 楼主| 发表于 2011-11-11 23:39:10 | 显示全部楼层
非常感谢。。。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 09:33 , Processed in 0.077470 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表