Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249440 (10876)
  Suchen
 Zurück zur Übersicht
 AutorThema: Wie kann ich ein fremdes Fenster...
Ogul G.
Datum:26.09.01 22:13 Antwortenals Email verschicken (GOgul@t-online.de) 


immer im Vordergrund halten. ?

Ich hab' einen großen Windows Fenster erstellt, nun lasse ich zB. den Notepad per Shell Befehl aufrufen, aber wenn ich dann auf mein Fenster klicke, verschwindet Notepad in den Hintergrund.
Wie kann ich es immer im Vordergrund halten ??

Bin für jede Hilfe sehr dankbar.

Ogul G.


Jörg Sellmeyer
Datum:26.09.01 22:56 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Mit der Funktion @FindWindow(S) kannst Du das Handle
des Fensters ermitteln und dann mit Setwindowpos in den
Vordergrund setzen.
Gruß
Jörg


Ogul Gökhan
Datum:27.09.01 00:01 Antwortenals Email verschicken (GOgul@t-online.de) 


Danke, aber ich frage mal ganz anders, so wie ich es eigentlich brauche:

Ich will ein Fenster mit Menüs stets im Hintergrund halten, es soll immer im Hintergrund erscheien, auch wenn ich Notepad.exe starte und zwischen den Fenstern hin- und her klicke.
Aber da verschwindet Notepad in den Hintergrund und ich kann es nicht mehr herholen. Klar kann ich mit @Findwindow es wieder zum vorschein bringen, aber da zu viele Programme gleichzeitig drauf sein werden, ist es besser das Hauptfenster irgendwie so zu programmieren daß es immer im Hintergrund erscheint.

wer kann mir da weiterhelfen ?

Ich müsste irgendetwas mit der %HWND anstellen, aber nur wie.


Jörg Sellmeyer
Datum:27.09.01 18:19 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Dann schau Dir doch Setwindowpos nochmal an und
wende es mit Deinem Fensterhandle an.
Gruß
Jörg


Ogul G.
Datum:27.09.01 22:06 Antwortenals Email verschicken (GOgul@t-online.de) 


Hi,

ja aber wenn ich mit mehrerern Fenstern arbeite kann es Chaos geben, wenn die eine über dem anderen angezeigt wird.

Idel wäre, das Hauptfenster in jeder Schleife in den Hintergrund zu setzen bzw. umzuschalten.

Hab' folgenden API Befehl gefunden:

SetForegroundWindow (1)

Damit kann ich ein beliebiges Fenster wie Setwindowpos in den Vordergrund setzen.
Jetzt hoffe ich daß es einen API Befehl gibt, der das gegenteile bewirkt, also es in den Hintergrund setzt. Gibt es so ein API Befehl ?
Dann kann ich nämlich mein Hauptfenster ständig im Hintergrund halten.

cu

Ogul G.


Ogul G.
Datum: 28.09.01 00:28 Antwortenals Email verschicken (GOgul@t-online.de) 


Ok, hab' das Problem auf eine andere Art und Weise gelöst ,so daß ich alle offenen Fenster abfragen und in den Vordergrund setzen kann.

folgende API Befehle habe ich dafür verwendet:

Def GetWindow(2) !"USER32","GetWindow"
Def GetClassName(3) !"USER32","GetClassNameA"
Def IsWindowVisible(1) !"USER32","IsWindowVisible"
Def GetWindowLong(2) !"USER32", "GetWindowLongA"
Def GetClassLong(2) !"USER32","GetClassLongA"

Hat & den Wert=%Hwnd wird nach Fenster gesucht (Handle wird gespeichert) die offen sind und diese werden dann mittels schleife in den Fordergrund gesetzt.

Einen direkten Befehl, der den Hauptfenster immer im Hintergrund behält, habe ich leider nicht gefunden, das wäre dann nämlich die bessere Lösung.

Danke für Deine Hilfe. :)

mfG

Ogul G.


 Zurück zur Übersicht