如何能获得EXPLORER.EXE进程的窗口句柄呢?我用FindWindow只能找到一个窗口的句柄。比如我打开‘计算机’,找到句柄了,然后对窗口进行更改。但是当我打开‘我的文档’,又要重新找句柄更改。我见过一个个软件,它只要对任意的WINDOWS窗口,进行改变,其余的窗口都会一起改变的。麻烦问下,它是怎么找的句柄?谢谢大家了~
解决方案 »
- access里面SQL语句使用日期的问题!
- 一个简单sql语句
- 有哪位大哥做过卸载程序的来指教一下UP有分
- stringgrid中如何实现编辑操作,我设置了[goediting]也不行呀????
- 动态创建SPCOMM控件无法定义事件,急
- 如何用DELPH来控制EPSON打印机的ESC命令。
- 有用过dev 的cxtreelist的进来一下
- 请大家提供一点思路,一定给分,说话算话
- 请教excel的问题(>100fen)
- 谁能告知windows visual key-code 与delphi中对应键码的值?多谢
- dxdbgrid怎么改变行颜色?我想一行红色,一行兰色这样的间隔!
- Delphi寻求帮助
function FindProcessName:THandle;
var
lppe: tprocessentry32;
sshandle: thandle;
found: boolean;
begin
result:=0;
sshandle := createtoolhelp32snapshot(TH32CS_SNAPALL, 0);
found := process32first(sshandle, lppe);
while found do
begin
if ansiCompareText(ExtractFileName(lppe.szExefile),'EXPLORER.EXE') = 0 then
begin
result:=lppe.th32ProcessID;
break;
end;
found := process32next(sshandle, lppe);
end;
CloseHandle(sshandle);
end;
var
P, p2: array[0..255] of Char;
begin
GetClassName(H, P, 256);
if Strpas(P) = 'IEFrame' then
begin
GetWindowText(H, p2, 256);
Form1.Memo1.Lines.add('句柄为: ' + IntToHex(H, 16) + ' 窗口名:' + p2);
end;
result := True;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
var
Str: TStringList;
i: integer;
begin
Str := TstringList.Create;
EnumWindows(@lpEnumFunc, LongInt(Str));
Str.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
EnumWindows(@lpEnumFunc, 0);
end;