如何获取窗口标题名包含指定字符如 "测试" 的所有窗口? 如何过滤? (100分)

  • 主题发起人 主题发起人 cloris2008
  • 开始时间 开始时间
C

cloris2008

Unregistered / Unconfirmed
GUEST, unregistred user!
遍历所有程序窗口,将标题中只要包含 "测试" 这两个字的程序窗口全部列出来 ?
 
取得窗口没问题的话,试着首先激活,然后用消息的方式向里面发东西,你可以做一个剪贴操作,同时用WinSight跟踪以下,就可以知道是那条消息了。
 
function GetWindowLsit:Tstrings;<br>var cHwnd:hwnd;<br>&nbsp; &nbsp; &nbsp; &nbsp; szText:array[0..254] of char;<br>&nbsp; &nbsp; &nbsp; &nbsp; Ts:TStrings;<br>begin<br>&nbsp; &nbsp; &nbsp; &nbsp; Ts:=TStringlist.Create;<br>&nbsp; &nbsp; &nbsp; &nbsp; Ts.Clear;<br>&nbsp; &nbsp; &nbsp; &nbsp; cHwnd:=Getwindow(self.Handle,GW_HWNDFIRST);<br>&nbsp; &nbsp; &nbsp; &nbsp; WHILE cHwnd&lt;&gt;0 &nbsp;do<br>&nbsp; &nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if GetWindowText(cHwnd,@szText,255)&gt;0 then<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if Pos("测试",StrPas(szText))&gt;0 then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ts.Add(StrPas(szText));<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cHwnd:=Getwindow(cHwnd,GW_HWNDNEXT);<br>&nbsp; &nbsp; &nbsp; &nbsp; end;<br>&nbsp; &nbsp; &nbsp; &nbsp; Result:=Ts;<br>end;<br>
 
请教 jfyes <br><br>提示if Pos("测试",StrPas(szText))&gt;0 then &nbsp;这行出现如下错误:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>lllegal character in input file: " " ($22)
 
不会吧!我在D7中运行可以用,我有个进程管理的程序用了这个函数。<br>这好像是字符不同吧?你换个E文试试吧。
 
我找到了, 是 Pos 后面加 单影号, 把双引换成单引就好了, 谢谢,现在好了. [:)]
 
再请教 jfyes, 你知道哪里有 InstallShield Express 软件下载,我刚才搜了好多,都下载不了。thanks[:)]
 
InstallShield Express 一般是和Delphi(正版)软件包一起发布的,我用的d7是这样的;<br>到InstallShield它的站点看看有没有,主要是安装吗,其实也没什么大用,基本操作而已。
 
后退
顶部