Come attivare un API finestra per mostrare in VB6

June 6

Quando si sviluppa un'applicazione in Visual Basic 6, se si desidera attivare un'altra applicazione o finestra di Windows, è possibile farlo con facilità. Se, invece, si vuole fare in quella finestra appaiono in primo piano e mostrato, richiede molto più codice che si può realizzare inizialmente. Questo processo è molto utile in quanto permette di interagire con altri programmi sul computer. Si noti che non è possibile utilizzare questo processo per lanciare un'altra applicazione che è stato creato in VB6.

istruzione

1 Aprire lo script VB6 nel vostro editor preferito VB.

2 Copia e incolla il seguente codice nel codice dichiarazioni:
Private Declare Function FindWindow Lib "user32"


Alias ​​"FindWindowA"
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function GetClassName Lib "user32"
Alias ​​"GetClassNameA"
(ByVal hWnd As Long,
ByVal lpClassName come stringa,
ByVal nMaxCount As Long) As Long

3 Copia e incolla il seguente codice nella sezione procedure:
Public Sub GetClassNameFromTitle ()
Dim sInput As String
Dim hWnd As Long
Dim lpClassName As String
Dim nMaxCount As Long
Dim LRESULT As Long
'Pad il buffer di ritorno per GetClassName
nMaxCount = 256
lpClassName = Spazio (nMaxCount)
'Nota: deve essere una corrispondenza esatta
sInput = InputBox ( "Inserire il titolo esatto della finestra:")
'No convalida è fatto come questo è un programma di utilità finestra di debug
hWnd = FindWindow (vbNullString, sInput)
'Prendi il nome di classe della finestra, ancora una volta, non convalida
LRESULT = GetClassName (hWnd, lpClassName, nMaxCount)
Debug.Print "Window:" & sInput
Debug.Print "Nome classe:" & Left $ (lpClassName, LRESULT)
End Sub

4 Fai clic su "GetClassNameFromTitle" nella finestra di debug e fare clic su "Esegui". Questo dovrebbe visualizzare il nome della classe della finestra. Questo fornisce la struttura di base per il processo.

5 Aggiungere il seguente script se si desidera includere il processo in un involucro:
Funzione pubblica fActivateWindowClass (psClassname come stringa) come booleano
Dim hWnd As Long
hWnd = FindWindow (psClassname, vbNullString)
Se hWnd> 0 Then

' ShowWindow returns True if the window was previously hidden.
' I don't care so I use the sub style
' ShowWindow and SW_SHOW declared elsewhere
' SW_SHOW will display the window in its current size and position
Call ShowWindow hWnd, SW_SHOW
fActivateWindowClass = True

Altro

' FindWindow failed, return False
fActivateWindowClass = False

Finisci se
End Function