高分求助怎么把运行的程序让它自动切换到前台?

supergold 2003-10-27 11:41:52
要做一个程序,可以把运行的程序自动切换到前台(譬如同时打开了word和网页等不同的程序,要让它们在隔一段时间能自动的切换到前台显示)。要怎么做啊?高手们给点意见,谢谢了。
...全文
66 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
flc 2003-10-28
  • 打赏
  • 举报
回复
学习
钮祜禄·明欣 2003-10-27
  • 打赏
  • 举报
回复
'--------------------------------------------------------------------------
'函数: FindSpecialWindow
'说明: 查找指定的窗口是否存在
'入口:
' strWindowText--指定窗口的标题文字
'出口:
' 指定窗口的句柄
' 0--指定的窗口不存在
'--------------------------------------------------------------------------
Public Function FindSpecialWindow(ByVal strWindowText$) As Long
Dim lReturn&, lWinHwd&, lWinTextLength&
Dim strWinText$

FindSpecialWindow = 0
lWinHwd = FindWindowEx(0, 0, vbNullString, vbNullString)
Do While lWinHwd <> 0
lWinTextLength = GetWindowTextLength(lWinHwd)
strWinText = String(lWinTextLength + 1, " ")
lReturn = GetWindowText(lWinHwd, strWinText, lWinTextLength + 1)
If lReturn > 0 Then
If Left(strWinText, Len(strWindowText)) = strWindowText Then
FindSpecialWindow = lWinHwd
Exit Do
End If
End If
lWinHwd = FindWindowEx(0, lWinHwd, vbNullString, vbNullString)
Loop
End Function

'显示提示并将窗口置前
Private Function IsCellRunning(ByVal blnShowMsg As Boolean) As Boolean
Dim lngReturn As Long

IsCellRunning = False
lngReturn = FindSpecialWindow(mc_FeiTian)
If lngReturn Then
If blnShowMsg Then
Call ShowMsg(gc_LeftBracket & mc_FeiTian & gc_RightBracket _
& "正在运行,请先关闭!")
End If
Call BringWindowToTop(lngReturn) '置前
IsCellRunning = True
End If
End Function
rainstormmaster 2003-10-27
  • 打赏
  • 举报
回复
用api函数SetForegroundWindow:

【VB声明】
Private Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

【说明】
将窗口设为系统的前台窗口。这个函数可用于改变用户目前正在操作的应用程序

【返回值】
Long,非零表示成功,零表示失败。会设置GetLastError

【备注】
不应随便使用它,因为一旦程序突然从后台进入前台,可能会使用户产生迷惑

【参数表】
hwnd ----------- Long,带到前台的窗口

qjqmoney 2003-10-27
  • 打赏
  • 举报
回复
向该程序发送一条WM_ACTIVE消息
supergold 2003-10-27
  • 打赏
  • 举报
回复
谢谢上面几位,但是如果不知道打开的是些什么窗体,通过api能不能把所有打开的程序全列出来呢?请指点!
射天狼 2003-10-27
  • 打赏
  • 举报
回复
Public Declare Function SetActiveWindow Lib "user32" Alias "SetActiveWindow" (ByVal hwnd As Long) As Long

这个函数需要事先知道窗口的句柄,可以用
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

找到窗口的句柄!!

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧