Как вывести приложение на фронт? - PullRequest
0 голосов
/ 15 октября 2019

В настоящее время копируется и изменяется часть кода в той же программе для создания кнопки, при нажатии которой приложение Vision выводится на переднюю панель графического интерфейса.

  • Создана кнопка с именем "btVisionCam_Click() "
  • Объявлено" Private lVideo As Long "
  • CEIVidCap - это приложение Vision, которое работает за графическим интерфейсом при открытии графического интерфейса
Private Sub btVisionCam_Click()

    If btVisionCam.Value = 1 Then
        lVideo = FindWindow(vbNullString, "CEIVidCap")
            If lVideo = 0 Then
                lVideo = Shell("C:\machine\appls\CEIVidCap.exe", vbNormalFocus)
            End If
    End If

End Sub

Когда кнопка нажата, она не выводит приложение Vision на переднюю панель графического интерфейса. Пожалуйста, помогите, спасибо!

Ответы [ 3 ]

0 голосов
/ 18 октября 2019

Мои текущие коды VB6:

Private Sub btVisionCam_Click()
  Dim lnghWnd As Long
    If btVisionCam.Value = 1 Then
      lnghWnd = FindWindow(vbNullString, "CEIVidCap")

        If lnghWnd = 0 Then
          lnghWnd = Shell("C:\machine\appls\CEIVidCap.exe", vbNormalFocus)
          ShowWindow lnghWnd, 1
        End If
  End If
End Sub

Но это все еще не выводит приложение "CEIVidCap" Vision на переднюю панель графического интерфейса .. :( Помогите, спасибо!

0 голосов
/ 29 октября 2019

Попробуйте установить его в качестве окна переднего плана.

Добавьте это к другим вызовам API:

Declare Function Win32_SetForegroundWindow Lib "user32" _
    Alias "SetForegroundWindow" ( _
    ByVal hWnd As Long) _
As Long

Затем добавьте:

Dim Ret As Long
Ret = Win32_SetForegroundWindow(lnghWnd)
If Ret Then
    ' Your window should be foreground
End If
0 голосов
/ 15 октября 2019

Создайте модуль и скопируйте следующие объявления:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Затем в своей кнопке, как вы уже делаете, используйте FindWindow, чтобы получить дескриптор окна, и ShowWindow, чтобы вывести его:

Dim lnghWnd As Long

lnghWnd = FindWindow(vbNullString, "CEIVidCap")
ShowWindow lnghWnd, 1

Поддерживаемые значения для nCmdShow параметра ShowWindow:

SW_HIDE = 0
Hide the window.
SW_MAXIMIZE = 3
Maximize the window.
SW_MINIMIZE = 6
Minimize the window.
SW_RESTORE = 9
Restore the window (not maximized nor minimized).
SW_SHOW = 5
Show the window.
SW_SHOWMAXIMIZED = 3
Show the window maximized.
SW_SHOWMINIMIZED = 2
Show the window minimized.
SW_SHOWMINNOACTIVE = 7
Show the window minimized but do not activate it.
SW_SHOWNA = 8
Show the window in its current state but do not activate it.
SW_SHOWNOACTIVATE = 4
Show the window in its most recent size and position but do not activate it.
SW_SHOWNORMAL = 1
Show the window and activate it (as usual).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...