vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
FormOnTop prüfung 
Autor: Oly
Datum: 07.02.09 14:17

Hallo zusammen,

möchte gerne eine Fremdanwendung mit dem Tip

' Fenster in den Vordergrund setzen
Public Sub FormOnTop(ByVal hwnd As Long, _
ByVal OnTop As Boolean)

If OnTop Then
' immer im Vordergrund
SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE Or SWP_NOSIZE
Else
' normal
SetWindowPos hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE Or SWP_NOSIZE
End If
End Sub

in den Vordergrund bringen. Soweit so gut, es funktioniert.

Doch wenn ich die Fremdanwendung minimiere so wird sie automatisch durch ein Passwort gesperrt.
Jetzt habe ich das Problem, das die Anwendung NICHT in den Vordergrund kommt

Habe schon mehreres ausprobiert um diesen Zustand zu prüfen, doch leider ohne Erfolg.

'zunächst die benötigten API-Deklarationen
Private Declare Function FindWindow Lib "user32.dll" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long

Private Declare Function GetTopWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function GetFocus Lib "user32.dll" () As Long

Private Declare Function ShowWindow Lib "user32" ( _
ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long

Private Declare Function GetActiveWindow Lib _
"user32" () As Long


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 Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1

' Fenster in den Vordergrund setzen
Public Sub FormOnTop(ByVal hwnd As Long, _
ByVal OnTop As Boolean)

If OnTop Then
' immer im Vordergrund
SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE Or SWP_NOSIZE
Else
' normal
SetWindowPos hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE Or SWP_NOSIZE
End If
End Sub


Private Sub CommandButton1_Click()
Dim hwnd As Long
Dim tophwnd As Long

hwnd = FindWindow(vbNullString, "Anwendung")
FormOnTop hwnd, False

tophwnd = GetForegroundWindow

If tophwnd = hwnd Then
MsgBox "gleich"
Else
MsgBox "ungelich"
End If

End Sub


Ihr seht mit welchen API`s ich es schon versucht habe, doch habe bisher nichts positives hinbekommen.
Habt Ihr noch einen Tip wie ich prüfen kann, ob die Anwendung jetzt gesperrt ist
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
FormOnTop prüfung1.031Oly07.02.09 14:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel