先设置启动对象为Sub Main模块代码:Option ExplicitSub Main()
Load Form1End Sub
窗体代码:Option Explicit'不要在IDE中运行,要生成exe后运行。'首先打开一个最大化的浏览器,然后将浏览器窗口最小化,
'运行生成的exe,立即点出浏览器窗口,稍等一下就会出现notepad,
'但仅仅是显示在任务栏中,没有显示在浏览器窗口的前面,需要手动点击notepad。
'我想让notepad显示在浏览器的前面,并且是有焦点的活动状态。
'用SetForegroundWindow SetActiveWindow SetFocus
'SwitchToThisWindow等都只能让notepad在任务栏里用橙色显示,
'但没显示在浏览器前面。用SetWindowPos设为TOPMOST之后用
'SetForegroundWindow只能让notepad显示在浏览器前,但焦点还
'在浏览器窗口上,notepad标题栏还是灰色的。请指教。'不想用模拟鼠标键盘点击的方式。Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Private Sub Form_Load()
    Timer1.Interval = 5000
    Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()
    Timer1.Enabled = False
    Shell "notepad.exe", vbNormalFocus
    Sleep 3000
    Unload MeEnd Sub

解决方案 »

  1.   

    Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32" _
            (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
              ByVal dwProcessId As Long) As Long
    Private Const PROCESS_TERMINATE = &H1
    Private hProcess As LongPrivate Sub cmdShell_Click()
    Dim pid As Long
    pid = Shell(App.Path + "\notepad.exe", vbNormalFocus)
            If pid = 0 Then
                MsgBox "没有打开程序", vbOKOnly, "提示"
            Else
                hProcess = OpenProcess(PROCESS_TERMINATE, 0, pid)
            End If
    End Sub