首页
社区
课程
招聘
[求助]在创建进程前,判断程序路径的API函数如何?
发表于: 2006-9-30 03:38 5278

[求助]在创建进程前,判断程序路径的API函数如何?

2006-9-30 03:38
5278
例如:
.data
szQQ db 'C:\Program Files\Tencent\QQ\QQ.exe',0
.code
start:
.
.
.
.
.elseif eax == IDC_QQ
invoke ShellExecute,0,0,addr szQQ,0,0,SW_SHOW
.
.
end start

这里,当消息列队是 IDC_QQ 那么就运行了QQ
但是只有路径为C:\Program Files\Tencent\QQ\QQ.exe,QQ才能运行
如果路径不是这个,就不能运行。。

我的问题是,如何判断QQ的路径是否为C:\Program Files\Tencent\QQ\QQ.exe,
如果是,运行QQ,如果路径不是,就提示无法运行

.data
szQQ db 'C:\Program Files\Tencent\QQ\QQ.exe',0
szTitle db '出现错误',0
szCaption db '请确定QQ的路径是否正确,本程序默认路径是'C:\Program Files\Tencent\QQ\QQ.exe',0
.code
start:
.
.
.
.
.elseif eax == IDC_QQ
.if....;后面的就是判断路径,该怎么写
invoke MessageBox,NULL addr szCaption,addr szTitle,MB_OK
.elesif ........;同上,这个时候,程序检查QQ路径是正确的,就执行
invoke ShellExecute,0,0,addr szQQ,0,0,SW_SHOW
.
.
end start

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 234
活跃值: (370)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
2
那你先应该取得系统中QQ.exe路径在哪,然后和你的自己设置的路径比较后就知道了
2006-9-30 04:23
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
有没有函数是可以先判断这个路径?
2006-9-30 11:58
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
4
用带有OPEN_EXISTING的CreateFile
返回INVALID_HANDLE_VALUE就说明不该文件不存在
2006-9-30 17:15
0
雪    币: 200
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
local        @stFindFile:WIN32_FIND_DATA
                                        invoke        FindFirstFile,addr szQQ,addr @stFindFile
                                        .if        eax !=        INVALID_HANDLE_VALUE        ;存在文件
                                                ;处理                                        .endif
2006-10-1 16:23
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
6
按照楼上哥哥说的:

local  @stFindFile:WIN32_FIND_DATA
          invoke  FindFirstFile,addr szQQ,addr @stFindFile
          .if  eax !=  INVALID_HANDLE_VALUE  
          invoke ShellExecute,0,0,addr szQQ,0,0,SW_SHOW;创建QQ进程
          .elseif
          invoke MessageBox,NULL,addr szCaption,addr szTitle,MB_OK
          invoke ExitProcess,NULL
          .endif

这样的话,那么IDC_QQ,这个消息列队就.....

是不是可以换成
         
         .if  (eax !=  INVALID_HANDLE_VALUE)|| ( eax == IDC_QQ )

我编译看一下...
2006-10-2 12:44
0
游客
登录 | 注册 方可回帖
返回