如何修改任意窗口的標題(100分)

  • 主题发起人 主题发起人 wlq
  • 开始时间 开始时间
W

wlq

Unregistered / Unconfirmed
GUEST, unregistred user!
比如IE,或是其它任何已知和未知的窗口的標題
 
用Api函數:<br>首先要得到其窗口句柄,用findwindow()函數,<br>BOOL SetWindowText(<br><br>&nbsp; &nbsp; HWND hWnd, // 更改窗口名柄<br>&nbsp; &nbsp; LPCTSTR lpString // address of string<br>&nbsp; &nbsp;);可以更改標題。<br>如要更改句柄為handle1的標題為'fgh'。<br>setwindowtext(handle,'fgh');
 
這個API我也知的<br>可是我并不知道窗口的Handle啊<br>我想遍歷每一個未知的窗口﹐改掉它的標題
 
同意楼上.
 
用Getwindow()可以知道所有運行的窗口:<br>var hcurrentwindow:thandle;<br>&nbsp; &nbsp; sztext:array [0..255] of char;<br>hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);<br>&nbsp; &nbsp;while hCurrentWindow &lt;&gt; 0 do<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; if GetWindowText(hCurrentWindow, @szText, 255)&gt;0 then<br>&nbsp; &nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//此窗口有標題,可用Setwindow(hCurrentWindow,'ffff')更改。<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; end;<br>&nbsp; &nbsp; &nbsp; &nbsp;hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);<br>&nbsp; &nbsp;end;
 
那你就取得所有当前的窗口,循环 改掉
 
JEDI 的 JCL 包含有大量非常有用的函数,源代码完全开放。极容易解决你这个问题。<br><br>请参见我刚才专门发的一篇帖子——《极力推荐 Project JEDI!它的 JCL 包含有大<br>量极其有用的函数库,纯源代码!》。<br>地址——http://www.delphibbs.com/delphibbs/dispq.asp?lid=999545
 
下面只是举出一个例子提供参考:<br>运用API函数GetWindow()配合GetWindowText()逐一查出各视窗的标题<br>1. File | New Project 开始一个新的工程<br>2. 在 Form1 中安排 Button 与 Memo 各一<br>3. 在 Button1 的 OnClick 事件中撰写程式如下:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br> hCurrentWindow: HWnd;<br> szText: array[0..254] of char;<br>begin<br> hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);<br> while hCurrentWindow &lt;&gt; 0 do<br> begin<br> if GetWindowText(hCurrentWindow, @szText, 255)&gt;0 then<br> Memo1.Lines.Add(StrPas(@szText));<br> hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);<br><br> end;<br>end<br>
 
多人接受答案了。
 
后退
顶部