如何检测进程。 打开自己的程式 然后检测进程里面是否有QQ.exe QQ的主目录跟自己的程序在同一目录,如果进程里没有QQ 则帮它打开,如果有则帮它关闭delphi7应该如何实现? 意思就是要打开qq.exe 然后再自动帮它关掉 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 历遍进程uses PsAPI;procedure TForm1.Button1Click(Sender: TObject);const n = 512;var IDArr: array[0..n-1] of DWORD; size,i: DWORD; buf: array[0..MAX_PATH] of Char; pHandle: THandle;begin// FillChar(buf, n, #0); {这样可避免乱码} EnumProcesses(@IDArr, n, size); for i := 0 to size div SizeOf(DWORD) - 1 do begin pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, IDArr[i]); GetModuleFileNameEx(pHandle, 0, buf, Length(buf)*SizeOf(buf[0])); CloseHandle(pHandle); Memo1.Lines.Add(buf); end;end;//强制关闭QQprocedure TForm1.Button1Click(Sender: TObject);var id: Cardinal; wh: HWND; ph: THandle; ExitCode: DWORD;begin wh := FindWindow('#32770', nil); GetWindowThreadProcessId(wh, id); ph := OpenProcess(PROCESS_TERMINATE, False, id); GetExitCodeProcess(ph, ExitCode); TerminateProcess(ph, ExitCode);end;end.//获取指定进程IDprocedure TForm1.FormCreate(Sender: TObject);var c: Cardinal;begin GetWindowThreadProcessId(Handle, @c); ShowMessage(IntToStr(c)); {2792; 随机的} {在本例中相同于 GetCurrentProcessID 的结果} c := GetCurrentProcessID; ShowMessage(IntToStr(c)); {2792} c := GetWindowThreadProcessId(Handle, nil); ShowMessage(IntToStr(c)); {2748} {在本例中相同于 GetCurrentThreadID 的结果} c := GetCurrentThreadID; ShowMessage(IntToStr(c)); {2748}end;end. 为了让dbgrideh滚动条滚动时,活动记录不移动,用了memtableeh,但是现在删除不了数据了 delphi控制word问题2 又一弱智问题,请拿分 今天公司体检,查出俺的肝里有块小石头…… form的显示问题 如何判断DBImage中是否有内容(即图像)? 关于位图按钮的小问题 如何把正在浏览的网页用图片的形式保存下来 大家请帮帮忙:关于ADO 请问这样的库结构如何设计? ini文件读取 我用QuickRep做报表,在本机可以打印出来,但在网络打印机打印出空空的一张白纸
const
n = 512;
var
IDArr: array[0..n-1] of DWORD;
size,i: DWORD;
buf: array[0..MAX_PATH] of Char;
pHandle: THandle;
begin
// FillChar(buf, n, #0); {这样可避免乱码}
EnumProcesses(@IDArr, n, size);
for i := 0 to size div SizeOf(DWORD) - 1 do
begin
pHandle := OpenProcess(PROCESS_ALL_ACCESS, False, IDArr[i]);
GetModuleFileNameEx(pHandle, 0, buf, Length(buf)*SizeOf(buf[0]));
CloseHandle(pHandle);
Memo1.Lines.Add(buf);
end;
end;//强制关闭QQprocedure TForm1.Button1Click(Sender: TObject);
var
id: Cardinal;
wh: HWND;
ph: THandle;
ExitCode: DWORD;
begin
wh := FindWindow('#32770', nil);
GetWindowThreadProcessId(wh, id);
ph := OpenProcess(PROCESS_TERMINATE, False, id);
GetExitCodeProcess(ph, ExitCode);
TerminateProcess(ph, ExitCode);
end;end.//获取指定进程IDprocedure TForm1.FormCreate(Sender: TObject);
var
c: Cardinal;
begin
GetWindowThreadProcessId(Handle, @c);
ShowMessage(IntToStr(c)); {2792; 随机的}
{在本例中相同于 GetCurrentProcessID 的结果}
c := GetCurrentProcessID;
ShowMessage(IntToStr(c)); {2792} c := GetWindowThreadProcessId(Handle, nil);
ShowMessage(IntToStr(c)); {2748}
{在本例中相同于 GetCurrentThreadID 的结果}
c := GetCurrentThreadID;
ShowMessage(IntToStr(c)); {2748}
end;end.