hi, ich hab hier ein problem. Ich habe ein kleines programm geschrieben, welches in abhängigkeit eines Titels eines anderen Programmes aufploppt.
hier mal der codeteil:
Private Sub Timer2_Timer()
Dim hWn As Long
Dim Titel As String * 255
Titel = String$(255, 0)
hWn = GetForegroundWindow
GetWindowText hWn, Titel, 255
pos = InStr(Titel, Chr$(0))
If pos > 0 Then
Titel = Left$(Titel, pos - 1)
End If
If InStr(1, Titel, "Avaya") Then
SetWindowPos Form1.hwnd, _
HWND_TOPMOST, 0, 0, 0, 0, FLAGS
WindowState = vbNormal
Else
SetWindowPos Form1.hwnd, _
HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
das programm läuft soweit auch gut, d.h. wenn ein anderes programm mit dem titel avaya aktiv wird, springt meine form1 mit auf.
das problem ist nun folgendes : wenn meine form1 mit aufspringt, ich aber das programm mit dem "avaya "im titel wieder verkleinere, bleibt form1 im vordergrund auch wenn zb im hintergrund eine internetseite läuft und ich auf diese klicke, wenn ich aber nun meine form1 einmal anklicke (egal wohin) und dann im hintergund auf die internetseite geht es in den hintergrund. ich würde aber gern erreichen das ich es nicht erst anklicken muss um das es den Fokus erhält. Das problem scheint zu sein, das form1 zwar auf dem bildschirm aktiv ist aber in der taskleiste inaktiv, so dass ich es erst anklicken muss um es aktiv zu machen und danach in den hintergrund schieben kann.
wie geht das automatisch? |