Seit zwei Wochen beschäftige ich mit VB6 Programmierung. Ich versuche ein Programm zu schreiben was ein Chatbot mit einen Chat verbindet. Dazu benötige ich die Handle der Anwendungsfenster, das funktioniert auch schon. Jetzt müssen die sechs Fenster-Handles jeweils in ihrer zugewiesenen Textbox gespeichert werden, und das auf Tastendruck der Einfügentaste, weil ja der Mauszeiger auf das jeweilige Handlefenster zeigt, was ausgelesen werden muß. Da nicht garantiert ist das meine Anwendung den Focus hat geht das nur über die API GetAsyncKeyState
Hier mal der cod:
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Type POINTAPI
x As Long
y As Long
End Type
Dim poiMaus As POINTAPI
Private Sub Form_Load()
Timer4.Interval = 1 'gehört zum Maus Cursor
End Sub
Private Sub Timer4_Timer()
'diese Funktion liest das Handle unter der Maus aus
GetCursorPos poiMaus
Text9.Text = WindowFromPoint(poiMaus.x, poiMaus.y)
End Sub
Private Sub Timer1_Timer() 'gehöhrt zur Function
If CompKey(45, "INSERT") Then Exit Sub
End Sub
Private Function CompKey(KCode As Long, KText As String) As Boolean
Dim Result As Integer
Dim A As String
A = Text9.Text
Result = GetAsyncKeyState(KCode)
If Result = -32767 Then
CompKey = True
Text3 = A
MsgBox "das Chat-Text-Fenster wurde gespeichert", , "Chat - Text - Fenster"
End If
'jetz müssen noch fünf weitere Fremdanwendungs-Fenster angefahren werden
'Text4, Text5, Text6, Text7, und Text8.
'die speichern dann das jeweilige Handle der Fremdanwendungen.
End Function
Private Sub Command2_Click()
'beendet das Programm
Unload Me
End Sub
Jetzt meine Frage: Wie bekomme ich das hin, das die Function weiter arbeitet und ich die anderen Fenster-Handels in den Textboxen 4-8 ebenfalls speichern kann?
Hier mal der cod:
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Type POINTAPI
x As Long
y As Long
End Type
Dim poiMaus As POINTAPI
Private Sub Form_Load()
Timer4.Interval = 1 'gehört zum Maus Cursor
End Sub
Private Sub Timer4_Timer()
'diese Funktion liest das Handle unter der Maus aus
GetCursorPos poiMaus
Text9.Text = WindowFromPoint(poiMaus.x, poiMaus.y)
End Sub
Private Sub Timer1_Timer() 'gehöhrt zur Function
If CompKey(45, "INSERT") Then Exit Sub
End Sub
Private Function CompKey(KCode As Long, KText As String) As Boolean
Dim Result As Integer
Dim A As String
A = Text9.Text
Result = GetAsyncKeyState(KCode)
If Result = -32767 Then
CompKey = True
Text3 = A
MsgBox "das Chat-Text-Fenster wurde gespeichert", , "Chat - Text - Fenster"
End If
'jetz müssen noch fünf weitere Fremdanwendungs-Fenster angefahren werden
'Text4, Text5, Text6, Text7, und Text8.
'die speichern dann das jeweilige Handle der Fremdanwendungen.
End Function
Private Sub Command2_Click()
'beendet das Programm
Unload Me
End Sub
Jetzt meine Frage: Wie bekomme ich das hin, das die Function weiter arbeitet und ich die anderen Fenster-Handels in den Textboxen 4-8 ebenfalls speichern kann?