Autor Beitrag
Sephiroth
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: Fr 09.08.02 15:24 
Hi Leute,

also ich hab folgendes problem. Ich hab ein Programm das über ein zweites Programm gesteuert wird.

Das erste Programm sendet dabei über DDE (ist eine Schnittstelle um Daten an andere Programme zu schicken) einen Wert und das 2te Programm empfängt daraufhin diese Nachricht und läd eine DLL die Formulare enthält und lässt eines dieser Formulare in den Vordergrund stellen.

Beispiel zum besseren Verständniss:

Programm1 sender "Hallo" ----> Programm2 empfängt "Hallo" ------> Programm2 läd Formular aus einer DLL und zeigt dieses an

So sollte denk ich mal verständlich sein. Und das Problem ist das sich das Formular nicht immer in den Vordergrund stellt d.h. das Programm1 ist sichtbar und hinter dem Programm1 ist das Formular sichtbar das durch das Programm2 aktiviert wurde.

Dieser Fall tritt aber nicht immer auf. Ich glaub nur bei Windowsversionen unter Win2000. Aber da auch nicht immer. Meistens nur das erste mal.... Eine genaue Regel konnte ich nicht festlegen.

Auch wenn ich ein Showmessage mache sobald das Programm2 etwas empängt, ist dieses auch im Hintergrund. (also hin und wieder)

Gibts eine möglichkeit das sich das Programm2 in den Vordergrund stellt?

Vielen Dank im Voraus
DBR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Fr 09.08.02 16:50 
vielleicht so:
setwindowpos(HandleDesFensters, HWND_TOPMOST, 0,0,0,0,SWP_Nosize,SWP_Nomove);

und wenns nicht mehr vorn sein soll:
setwindowpos(HandleDesFensters, HWND_NOTOPMOST, 0,0,0,0,SWP_Nosize,SWP_Nomove);


gruss DBR
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 09.08.02 16:53 
Mit der Funktion müsste das funktionieren.

Zitat:
BOOL SetForegroundWindow(
HWND hWnd // handle of window to bring to foreground
);

_________________
Viele Grüße
Jakob
DBR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Fr 09.08.02 17:01 
Titel: @DeCodeGuru
erfahrungsgemäß funktioniert das seltsamerweise nicht auf allen Rechnern (Betriebssystem?). Auch Application.BringToFront und BringWindowToTop geht nicht immer.

gruss DBR