小问题,请各位指教,非常急!!(100分)

  • 主题发起人 主题发起人 R.E.M
  • 开始时间 开始时间
R

R.E.M

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp;如何实现检测屏幕中某一窗口的状态?<br>&nbsp; &nbsp;具体一点:如何获得屏幕中某一窗口的句柄,并检测该窗口是否被关闭<br>&nbsp; &nbsp; 应该用什么API()函数实现?请指教!!急!!! &nbsp;
 
是否知道窗口名称,如果知道通过findwindow获得;既然是可见的,通过iswindowvisible<br>来判断窗口是否关闭。
 
R.E.M:<br><br>&nbsp; &nbsp;获得窗口的句柄可以用GetWindow,GetActiveWindow, GetNextWindow, GetTopWindow等<br>的好多方法,获得句柄后可以干你想干的活了....<br><br>&nbsp; &nbsp;fun...<br><br>
 
int GetClassName(<br><br>&nbsp; &nbsp; HWND hWnd, // 窗口句柄<br>&nbsp; &nbsp; LPTSTR lpClassName, // 获取窗口类名的BUFFER的地址<br>&nbsp; &nbsp; int nMaxCount // 所要获取的字节数<br>&nbsp; &nbsp;);<br>HWND GetWindow(<br><br>&nbsp; &nbsp; HWND hWnd, // 当前窗口的句柄<br>&nbsp; &nbsp; UINT uCmd // 所要获取的窗口句柄的类型(如GW_CHILD,GW_HWNDFIRST 。。。)<br>&nbsp; &nbsp;);<br>
 
有了CLASSNAME和HANDLE,想对这个窗口怎么样都可以了,哈哈
 
看看FINDWINDOW的帮助和它的GROUP,你就会找到你想要的东西
 
问题关键是怎样获得窗口句柄。<br>&nbsp; FindWindow 需要知道 ClassName ,用 GetClassName 可以得到 ClassName , 但又需要传入<br>窗口句柄作参数,这是个先有鸡还是先有蛋的问题。<br>&nbsp; 上面的大虾,你们提出的办法都自己测试过了吗?<br>&nbsp; 下面是我的拙作,不妨赏眼一看:<br>&nbsp; &lt;a href="DispQ.asp?LID=379057"&gt;如何用程序将Word中文档窗口最大化?&lt;/a&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; From: BaKuBaKu
 
findwindow可以不写类名。
 
可以这样写<br>findwindow('Window Name',nil);
 
To Kill Night: Do you really ever tested it ?<br><br>HWND FindWindow(<br>&nbsp; &nbsp; LPCTSTR &lt;Font Color = #FF0000&gt;&lt;strong&gt;lpClassName&lt;/Font&gt;&lt;/strong&gt;, // pointer to class name<br>&nbsp; &nbsp; LPCTSTR lpWindowName // pointer to window name<br>&nbsp; &nbsp;); <br><br>lpWindowName<br>&nbsp; Points to a null-terminated string that specifies the window name (the window's title). <br>If this parameter is NULL, all window names match.
 
写错了,findwindow(nil,'windowname');
 
&gt;&gt;来自:Kill Night 时间:00-11-1 12:19:11 ID:382532 &nbsp;<br>&gt;&gt;findwindow可以不写类名。<br>&gt;&gt;来自:Kill Night 时间:00-11-1 12:42:05 ID:382558 &nbsp;<br>&gt;&gt;写错了,findwindow(nil,'windowname');<br>&lt;font color = #ff0000&gt;&lt;strong&gt;lpWindowName&lt;/font&gt;&lt;/strong&gt;<br>&nbsp; Points to a null-terminated string that specifies the window name (the window's title). <br>&lt;font color = #ff0000&gt;&lt;strong&gt;If this parameter is NULL, all window names match. &lt;/font&gt;&lt;/strong&gt;<br>Kill Night 大虾,是可以不写窗口名,类名不可以不写。
 
如果知道窗口名,当然可以不写类名<br>findwindow(nil,'windowname');<br>这种方式我试过。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
815
DelphiTeacher的专栏
D
后退
顶部