如何得到应用程序列表? 象按下Ctrl+Alt+Del得到的"应用程序"列表,包括得到程序的标题等信息?有相应的API吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 {转zswang伴水清清代码:}uses CommCtrl;procedure TForm1.Button1Click(Sender: TObject);var vHandle: THandle; vCount: Integer; vProcessId: Longword; vProcess: THandle; vPointer: Pointer; vBuffer: array[0..255] of Char; vNumberOfBytesRead: Longword; I: Integer; vTBBUTTON: TTBButton; vWindow: THandle;begin vHandle := FindWindow('Shell_TrayWnd', nil); vHandle := FindWindowEx(vHandle, 0, 'ReBarWindow32', nil); vHandle := FindWindowEx(vHandle, 0, 'MSTaskSwWClass', nil); vHandle := FindWindowEx(vHandle, 0, 'ToolbarWindow32', nil); if vHandle = 0 then Exit; vCount := SendMessage(vHandle, TB_BUTTONCOUNT, 0, 0); GetWindowThreadProcessId(vHandle, vProcessId); vProcess := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE, False, vProcessId); vPointer := VirtualAllocEx(vProcess, nil, $1000, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE); try for i := 0 to vCount - 1 do begin SendMessage(vHandle, TB_GETBUTTON, i, Integer(vPointer)); ReadProcessMemory(vProcess, vPointer, @vTBBUTTON, SizeOf(TTBButton), vNumberOfBytesRead); if vTBBUTTON.fsStyle = 170 then Continue; // 组按钮 ReadProcessMemory(vProcess, Pointer(vTBBUTTON.dwData), @vWindow, SizeOf(Integer), vNumberOfBytesRead); SendMessage(vHandle, TB_GETBUTTONTEXT, i, Integer(vPointer)); ReadProcessMemory(vProcess, vPointer, @vBuffer[0], SizeOf(vBuffer), vNumberOfBytesRead); Memo1.Lines.Add(Format('Handle=%d,Title=%s', [vWindow, vBuffer])); end; finally VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE); CloseHandle(vProcess); end;end; 枚举所有进程http://download.csdn.net/source/286525 关于TEECHART饼状图的问题 如何获取网页图片或链接的属性 问一下用Delphi连接sql server的菜问题! 一个初学者的简单问题:如何将16进制的字符串转换成10进制的字符串 问一个菜菜的关于操作文本的问题 一个简单的问题:如何得到ListBox中选择点击的内容 SOCKET高手快来解答 谁能教我如何在active form里编写自定义函数open(var i:string) 怎样改变IE的代理服务器、网关及IP地址,希望有代码 我自己也觉得这问题比较白痴~~没办法~~~送分吧~~给了我的最高了~~ 升级了,按惯例散分! delphi中如何实现java中的gettime(),
var
vHandle: THandle;
vCount: Integer;
vProcessId: Longword;
vProcess: THandle;
vPointer: Pointer;
vBuffer: array[0..255] of Char;
vNumberOfBytesRead: Longword;
I: Integer;
vTBBUTTON: TTBButton;
vWindow: THandle;
begin
vHandle := FindWindow('Shell_TrayWnd', nil);
vHandle := FindWindowEx(vHandle, 0, 'ReBarWindow32', nil);
vHandle := FindWindowEx(vHandle, 0, 'MSTaskSwWClass', nil);
vHandle := FindWindowEx(vHandle, 0, 'ToolbarWindow32', nil);
if vHandle = 0 then Exit;
vCount := SendMessage(vHandle, TB_BUTTONCOUNT, 0, 0);
GetWindowThreadProcessId(vHandle, vProcessId);
vProcess := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or
PROCESS_VM_WRITE, False, vProcessId);
vPointer := VirtualAllocEx(vProcess, nil, $1000, MEM_RESERVE or MEM_COMMIT,
PAGE_READWRITE);
try
for i := 0 to vCount - 1 do
begin
SendMessage(vHandle, TB_GETBUTTON, i, Integer(vPointer));
ReadProcessMemory(vProcess, vPointer, @vTBBUTTON,
SizeOf(TTBButton), vNumberOfBytesRead);
if vTBBUTTON.fsStyle = 170 then Continue; // 组按钮
ReadProcessMemory(vProcess, Pointer(vTBBUTTON.dwData), @vWindow,
SizeOf(Integer), vNumberOfBytesRead);
SendMessage(vHandle, TB_GETBUTTONTEXT, i, Integer(vPointer));
ReadProcessMemory(vProcess, vPointer,
@vBuffer[0], SizeOf(vBuffer), vNumberOfBytesRead);
Memo1.Lines.Add(Format('Handle=%d,Title=%s', [vWindow, vBuffer]));
end;
finally
VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE);
CloseHandle(vProcess);
end;
end;
http://download.csdn.net/source/286525