在线等待,来者有分,如何用一个VB程序得到当前桌面打开的窗口,并打开最下面一个窗口、
好比现在打开有Word、Excel、写字板这样的先后次序,Word在最下面 ,现一VB程序运行、单击一按钮、就弹出一消息框得出总窗口数、并将Word显示在最前面
谢谢
好比现在打开有Word、Excel、写字板这样的先后次序,Word在最下面 ,现一VB程序运行、单击一按钮、就弹出一消息框得出总窗口数、并将Word显示在最前面
谢谢
解决方案 »
- 如何将一个字符串分解
- 解除hook RegSetValueEx or ZWSETVALUEKEY 等函数
- 在VB中能不能实现属性页与控件和属性的动态连接?
- 如何用api创建listviwe并使用它?
- 如何用非MDI窗体实现MDI窗体的效果???
- 关于rtf问题
- open *** for output as #后面这个数字编号是不是随便乱写都可以的?
- vb6中关于直线绘制的一个问题,怎样实现类似Autocad中的划线功能!
- 如何结束一个类的实例?
- 请问 api绘图调用后如何彻底释占用的放内存
- 高分求教!!!关于用原子钟校验机器时间的代码。
- class为SysListView32的vb控件是什么?
回调函数
回调函数要自己写的!
Getnextwindow hwnd,prev 循环
和
Getnextwindow hwnd,Next 循环
这样来得到所有的窗体,俄且可以根据窗体的text不同来作出不同的响应,而不用对所有窗口执行相同的操作。具体的实现自己来吧
最后你可以用setgroundwindow来使你的窗体置前了。
请你们放点代码好吗这种API我用得太少了、用不来
可以加分,谢谢能发邮件也很好
[email protected]
我已经给你发邮件了
请尽快和[email protected] 联系
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Const GW_HWNDLAST = 1&
Private Const GW_HWNDPREV = 3&
Private Const WS_APPWND = &H80000
Private Declare Function GetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_STYLE = (-16)
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As LongPrivate Sub Command1_Click()
Dim lhwnd As Long, rct As RECT
lhwnd = GetWindow(Me.hwnd, GW_HWNDLAST)
Do Until (lhwnd = 0&) Or _
(((GetWindowLongA(lhwnd, GWL_STYLE) And _
WS_APPWND) = WS_APPWND) And _
(IsWindowVisible(lhwnd) <> 0&) And _
(IsIconic(lhwnd) = 0&) And _
(GetWindowRect(lhwnd, rct) <> 0&) And _
((rct.Right - rct.Left) > 1&) And _
((rct.Bottom - rct.Top) > 1&))
lhwnd = GetWindow(lhwnd, GW_HWNDPREV)
Loop
SetForegroundWindow lhwnd
End Sub