VB前置问题,简单应用问题.

来源:百度知道 编辑:UC知道 时间:2024/06/23 14:20:24
我们知道,想让一个程序前置一次.是可以用

AppActivate "星星点灯电子丛书"

这个函数进行的,记住.是只重置一次.如果有其他窗体获取焦点的话,这次失效.我想说的是用VB怎么做到呢? 最好是API.

因为 AppActivate 这个函数如果出现错误,还要on error resume next去容纳它,太假了.程序不稳定.但请别拿那种让程序一直前置的方法,这样的话别的窗体就会一直被它盖着.

要和appactivate同样效果一次性的api实现方法.

谢谢大家

一小时上线,满意散分.~~

AppActivateVB 功能 替代 VB中 AppActivate, API实现

Global Const WM_SYSCOMMAND = &H112
Global Const SC_RESTORE = &HF120

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Public Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long

Sub AppActivateVB(Title As String) '参数Title 为窗体的标题
Dim Handle As Long
Handle = FindWindow(vbNullString, Title)
If Handle <> 0 Then
If IsIconic(Handle) <> 0 Then SendMessageBynum& Handle, WM_SYSCOMMAND, SC_RESTORE, 0
SetForegroundWindow Handle
End If
End Sub