比如我在自己的程序里通过控制面板调用了打印机安装向导,需要等待向导设置完毕。在设置过程中有没有办法保证输入焦点锁定在安装向导而不会切换会调用程序?注:通过FindWindow和SetWindowPos可以把向导放置在最前端,但是无法保证输入焦点。

解决方案 »

  1.   

    用Timer解决了。  有没有效率更好的方法?
    Private Sub Timer1_Timer()
        If Not PrinterSetUpOn Then Exit Sub
        
           Dim WinHwnd As Long
           WinHwnd = FindWindow("#32770", "添加打印机向导")
           If WinHwnd = 0 Then
                PrinterSetUpOn = False
                Timer1.Enabled = False
                FrmMain.Enabled = True
                FrmMain.SetFocus
                Exit Sub
            Else
                BringWindowToTop WinHwnd
                FrmMain.Enabled = False
                
            End IfEnd Sub