prozessaufrufendes Fenster gegen Mausklicks sperren

08/08/2009 - 18:50 von Dirk Meißner | Report spam
Moin zusammen,

ich habe hier ein kleines Problem, wozu ich noch keine Lösung gefunden habe.
Von der Hauptanwendung aus rufe ich per process.start() eine andere
Anwendung
auf. Dann wartet meine Hauptanwendung auf das Beenden der externen Anwendung
mit process.waitforexit().
Das funktioniert soweit ja ohne Probleme. Wàhrend die externe Anwendung
làuft ist die
Hauptanwendung noch sichtbar. Der Benutzer kann darauf rumklicken wie er
will, erstmal
passiert nichts. Das ist auch so gewollt. Wenn man nun die externe Anwendung
schliesst,
dann führt die Hauptanwendung anscheinend die gemachten Mausklicks aus. Dies
führt zu
unschönen Ergebnissen vom wilden Hin- und Herspringen in der GUI bis zum
ungewollten
Beenden des Hauptprogramms.
Mein erster Gedanke war, das ich die entsprechenden Buttons auf enabled =
false setze, aber
selbst dann scheint sich das Hauptprogramm die Klicks zu merken und wenn die
Buttons
auf enabled = true setze werden die Klicks ausgeführt.

Hat jemand dieses Problem schonmal gehabt und eine Lösung dafür?
Das Hauptprogramm ausblenden oder verkleinern möchte ich eigentlich nicht.
Spàter soll ein Teil
der Anwendung interaktiv bleiben und nur bestimmte Teile in Abhàngigkeit von
der gestarteten
externen Anwendung gesperrt werden. Ich hoffe ich hab hier nur was einfaches
übersehen.

Gruß Dirk
 

Lesen sie die antworten

#1 AyrA
08/08/2009 - 19:15 | Warnen spam
Dirk Meißner wrote in
news::

Moin zusammen,

ich habe hier ein kleines Problem, wozu ich noch keine Lösung gefunden
habe. Von der Hauptanwendung aus rufe ich per process.start() eine
andere Anwendung
auf. Dann wartet meine Hauptanwendung auf das Beenden der externen
Anwendung mit process.waitforexit().
Das funktioniert soweit ja ohne Probleme. Wàhrend die externe
Anwendung làuft ist die
Hauptanwendung noch sichtbar. Der Benutzer kann darauf rumklicken wie
er will, erstmal
passiert nichts. Das ist auch so gewollt. Wenn man nun die externe
Anwendung schliesst,
dann führt die Hauptanwendung anscheinend die gemachten Mausklicks
aus. Dies führt zu
unschönen Ergebnissen vom wilden Hin- und Herspringen in der GUI bis
zum ungewollten
Beenden des Hauptprogramms.
Mein erster Gedanke war, das ich die entsprechenden Buttons auf
enabled = false setze, aber
selbst dann scheint sich das Hauptprogramm die Klicks zu merken und
wenn die Buttons
auf enabled = true setze werden die Klicks ausgeführt.

Hat jemand dieses Problem schonmal gehabt und eine Lösung dafür?
Das Hauptprogramm ausblenden oder verkleinern möchte ich eigentlich
nicht. Spàter soll ein Teil
der Anwendung interaktiv bleiben und nur bestimmte Teile in
Abhàngigkeit von der gestarteten
externen Anwendung gesperrt werden. Ich hoffe ich hab hier nur was
einfaches übersehen.

Gruß Dirk





Das mit enabled=false würde ich weiterhin machen, jedoch würde ich
denbenutzer auch noch darauf hinweisen, dass er nicht klicken kann/soll
(Bitte warten...)
nach dem waitforexit() wird einfach ein Application.DoEvets() aufgerufen,
welches alle mausklicks verarbeitet. Dann erst werden die Buttons wieder
aktiviert. anstatt die Buttons zu deaktivieren würde ich gleich das ganze
Form deaktivieren,

AyrA

http://ayra.ch
Everything you need that your IT hates you!
SSL supported:
https://ayra.ch
about 10 pr0xys, a Batch Creator and a Dial up Simulator

Ähnliche fragen