Frage

Auf einem DDE-Ereignisse meines Programm lädt eine Datei in und sollte in den Vordergrund Pop. Ich war mit

show;

Es scheint nur wie dann zu arbeiten, wenn ich das Fenster versteckt haben.

Also ich hinzugefügt

bringtofront;

Auch hier funktionierte dies, wenn es versteckt war, geschlossen, minimierte oder in der Tray-Icon, aber nicht, wenn es nur unter einem anderen Fenster offen ist.

Ich habe sogar versucht, einige Sachen wie Hacky

windowstate:=wsminimized;
windowstate:=wsnormal;

zu versuchen, es erzwingen zu zeigen, aber ohne Erfolg. Ich weiß, dass der Code ausgeführt wird, wie ich Ausdrucke auf beiden Seiten dieser Blöcke habe und es gibt keine bedingten Aussagen, dass es in geklebt werden kann.

War es hilfreich?

Lösung

Haben Sie versucht, SetForegroundWindow und / oder SetActiveWindow? Siehe auch MSDN info zu diesem Thema.

Andere Tipps

SetForegroundWindow wird nicht immer funktionieren. In der Tat ist es heutzutage sehr unwahrscheinlich zu arbeiten, da Anwendungen nicht den Fokus greifen sollen, können sie gibt es nur weg. MS wurde für Jahren versuchen Anwendungen stehlen den Eingabefokus zu verhindern. Lesen Sie die Kommentare zu diesem Blog-Eintrag von Raymond Chen rel="nofollow für einige Geschichte.

Wenn Sie also App im Vordergrund selbst sind, können Sie auf eine andere App SetForegroundWindow und alles wird peachy sein. Wenn Sie nicht der Vordergrund app sind, dann sind die Chancen das einzige, was wahrscheinlich passieren, eine Task-Leiste Taste beginnt zu blinken ist.

Nur einige Verwirrung hinzuzufügen, das genaue Verhalten ist Windows-Version abhängig, so was passiert, hängt davon ab, welche Art von Windows, die Sie laufen lassen - sie haben für eine lange Zeit mit diesen herum Messing: -.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top