这个函数:
function GetProcessIDD(ProcessName: string): TProcessEntry32;
var
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
Ret: Boolean;
TmpProcessName: string;
begin
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
Ret := Process32First(FSnapshotHandle, FProcessEntry32);
while Ret do
begin
TmpProcessName := ExtractFileName(FProcessEntry32.szExeFile);
if TmpProcessName = ProcessName then
begin
Result := FProcessEntry32;
Break;
end;
Ret := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
这个是运行代码:
var
FProcessEntry32: TProcessEntry32;
ProcessID: integer;
ProcessHandle: THandle;
nSize: DWORD;
lpNumberOfBytesRead: DWORD;
szBuf:array[0..255] of char;
const
ammz = $04402160;
begin
nSize:=255;
FProcessEntry32 := GetProcessIDD(DDZProcessName);
if FProcessEntry32.th32ProcessID=0 then exit;
ProcessID := FProcessEntry32.th32ProcessID;
ProcessHandle := OpenProcess(PROCESS_VM_READ, false, ProcessID);
if ProcessHandle <> 0 then
begin
ReadProcessMemory(ProcessHandle, Pointer(ammz),@szBuf,nSize,lpNumberOfBytesRead);
label7.caption := szBuf;
end;
FreeMem(@szBuf,nSize);
CloseHandle(ProcessHandle);
end;请高手们帮我看看,我的代码哪里出错了,我一运行后,系统就死机!在线等
先谢谢各位大虾!
function GetProcessIDD(ProcessName: string): TProcessEntry32;
var
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
Ret: Boolean;
TmpProcessName: string;
begin
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
Ret := Process32First(FSnapshotHandle, FProcessEntry32);
while Ret do
begin
TmpProcessName := ExtractFileName(FProcessEntry32.szExeFile);
if TmpProcessName = ProcessName then
begin
Result := FProcessEntry32;
Break;
end;
Ret := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
这个是运行代码:
var
FProcessEntry32: TProcessEntry32;
ProcessID: integer;
ProcessHandle: THandle;
nSize: DWORD;
lpNumberOfBytesRead: DWORD;
szBuf:array[0..255] of char;
const
ammz = $04402160;
begin
nSize:=255;
FProcessEntry32 := GetProcessIDD(DDZProcessName);
if FProcessEntry32.th32ProcessID=0 then exit;
ProcessID := FProcessEntry32.th32ProcessID;
ProcessHandle := OpenProcess(PROCESS_VM_READ, false, ProcessID);
if ProcessHandle <> 0 then
begin
ReadProcessMemory(ProcessHandle, Pointer(ammz),@szBuf,nSize,lpNumberOfBytesRead);
label7.caption := szBuf;
end;
FreeMem(@szBuf,nSize);
CloseHandle(ProcessHandle);
end;请高手们帮我看看,我的代码哪里出错了,我一运行后,系统就死机!在线等
先谢谢各位大虾!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货