首页
社区
课程
招聘
[求助]这段汇编为何有错误?
发表于: 2007-6-14 15:51 5504

[求助]这段汇编为何有错误?

2007-6-14 15:51
5504
的不到正确的PID
FStr:string='协同管理系统 - Microsoft Internet Explorer';
FIe:string='IEFrame';
dwid:dword ;
i:Cardinal;
implementation

{$R *.dfm}

function GetPid(): dword;
asm
mov dwid,0
mov @result,0
  mov eax,fstr
  push eax
  mov ecx,fie
  push ecx
  call findwindow
  test eax,eax
  jbe @@ext
  push offset dwid
  push eax
  call GetWindowThreadProcessId
  mov @result,eax
@@ext:
end;

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (7)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己顶啊
2007-6-14 17:03
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
可以考虑用快照来解决
2007-6-14 19:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
大家咋没帮忙的?
2007-6-14 19:33
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
5
invoke   RtlZeroMemory,addr stProcess,sizeof stProcess ;清空stProcess,不然进程会重叠
        mov   stProcess.dwSize,sizeof stProcess
        invoke   CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,addr stProcess ;开始历遍快照
        mov   hSnapShot,eax
        invoke   Process32First,hSnapShot,addr stProcess;历遍第一个进程
   .while   eax
        invoke CompareString,LOCALE_USER_DEFAULT,NORM_IGNORECASE,CTXT("iexplore.exe"),-1,addr stProcess.szExeFile,-1
       .if eax==2
       push stProcess.th32ProcessID
       pop pid
       .endif
       invoke   Process32Next,hSnapShot,addr stProcess
   .endw
2007-6-14 19:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢你 可上边我的咋就不对啊
2007-6-14 20:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
mov @result,0

这个是指针吗? 他被正确分配了吗?
2007-6-14 20:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
问题解决 谢谢各位回帖  mov @result,0是DELPHI 中规定的可以这样使用。作为返回结果。
2007-6-15 08:26
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册