帮忙改改下面代码

zbird 2002-10-31 10:01:53
//---------------------------
//帮忙改改下面代码,//我从C++代码改过来的,还有部分我不会改;谢谢
//----------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
hMod:HMODULE;
cbNeeded:DWORD;
buf:char;
hProcess:thandle;
pid:dword;
//假使process id是 pid 的话:
begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,FALSE,pid);
if hProcess<>0 then
begin
if( EnumProcessModules( hProcess, &hMod, sizeof( hMod ), &cbNeeded ) ) then//这里[:(]
begin
buf[MAX_PATH+1]='';
if(GetModuleBaseName( hProcess, hMod,buf,sizeof buf)>0);
//
// buf放的就是名字
//
end;
CloseHandle(hProcess);
end;
...全文
74 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
befree 2002-11-01
  • 打赏
  • 举报
回复
windows unit里面没有的api要另加申明
你有没有加接口定义?
dext 2002-11-01
  • 打赏
  • 举报
回复
EnumProcessModules 也许是一个需要另外申明的API.
另外在Delphi中使用API主要是注意变量类型
wangbing2000 2002-10-31
  • 打赏
  • 举报
回复
是啊 在DELPHI 中我用API 是也有点问题
谁有好的方法
alphax 2002-10-31
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
hMod:HMODULE;
cbNeeded:DWORD;
buf: string;
hProcess:thandle;
pid:dword;
//假使process id是 pid 的话:
begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,FALSE,pid);
if hProcess<>0 then
begin
if( EnumProcessModules( hProcess, @hMod, sizeof( hMod ), @cbNeeded ) ) then//这里[:(]
begin
SetLength(buf, MAX_PATH); //if not enough, increase 1 byte
if (GetModuleBaseName(hProcess, hMod, PChar(buf), MAX_PATH) > 0 then
begin
SetLength(buf, StrLen(buf));
...
end;
end;
end;
CloseHandle(hProcess);
end;

zbird 2002-10-31
  • 打赏
  • 举报
回复
是啊
befree 2002-10-31
  • 打赏
  • 举报
回复
EnumProcessModules是windowsAPI?
befree 2002-10-31
  • 打赏
  • 举报
回复
在windows单元里面没有

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧