![]() |
Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Hallo !
ich habe eine Anwendung geschrieben die unter anderem eine weitere Anwendung aufruft wartet bis diese geschlossen ist und dann wieder in den Vordergrund kommt. Das klappt aber den Tastatur Focus bekommt sie nicht warum ? Ich habe schon einiges probiert kann mir da jemand helfen ? Habe auch schon gesucht
Delphi-Quellcode:
Form1.Memo1.SetFocus; // Focus in das Memofeld 1 Form1.FormStyle := fsNormal; // Formstyle auf Noormal hatte es auch schon on Top application.Minimize; // Application minimieren try if (Fileexists(trim(mydata.Start_Minilis_A) )) and (mydata.wait = 'FALSE' ) then // Wenn die Exe existiert dann ausführen ohne Wait ShellExecute(0,'open',pchar(Trim(mydata.Start_Minilis_A)),nil,nil,SW_SHOWNORMAL) else if (Fileexists(trim(mydata.Start_Minilis_A) )) and (mydata.wait = 'TRUE' ) then // Wenn die Exe existiert dann ausführen mit Wait Form1.ShellExecAndWait(pchar(Trim(mydata.Start_Minilis_A)), '', SW_SHOWNORMAL) else Showmessage('Die Datei : ' + Trim(mydata.Start_Minilis_A) + ' ist nicht vorhanden !'); finally Show(); // Zeige das Fenster wieder .. if Windowstate = WsMinimized then Windowstate := wsnormal; // Windows State wieder auf Normal Application.BringToFront; // Bringe Application nach vorne // Form1.FormStyle := fsStayOnTop; Form1.SetFocus; // TEST Memo1.SetFocus; // TEST Setforegroundwindow(application.Handle); // Test end; |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Deine Anwendung ist nicht der aktive Prozess und hast somit nicht die Berechtigung.
![]() ![]() ![]() siehe die Remarks |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Das bedeutet ich muss erst mein handle suchen wie wenn ich ein Programm remoten möchte.
Also nach dem Prozess suchen ? Kann ich in meinem Programm nicht selbst raus finden welches Handle ich habe? |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Wenn du das Minimieren der eigenen Anwendung unterlässt, sollte das eigentlich funktionieren, weil der Fokus automatisch auf die zuletzt aktive Anwendung geht (sofern der Nutzer sich da nicht einmischt).
Minimierte Anwendungen haben aus guten Gründen keine Möglichkeit mehr, den Fokus an sich zu reißen. Grüße Dalai |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
OK sowas habe ich befürchtet ist halt unbequem für den User ,
ich empfange Barcode eingaben arbeite die um und starte eine andere Application wenn die dann fertig ist sollte er den nächsten eingeben können. Das mit dem nicht minimieren probiere ich -.. das wäre ja einfach |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Also geht es nur darum die Daten von einem Barcodescanner zu bekommen?
Dann nicht über die Tastatur gehen, sondern den Scanner so konfigurieren, dass er einen COM-Port nutzt und dich mit dem verbinden, was auch geht, wenn die Anwendung minimiert ist. |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Und bitte auch Boolsche Variablen nicht mit TRUE oder FALSE abfragen, sondern einfach
nicht so
Delphi-Quellcode:
if (Fileexists(trim(mydata.Start_Minilis_A) )) and (mydata.wait = 'FALSE' ) then // Wenn die Exe existiert dann ausführen ohne Wait
sondern beispielsweise so
Delphi-Quellcode:
if (Fileexists(trim(mydata.Start_Minilis_A) )) and not mydata.wait then
|
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
@zeras:
Grundsätzlich stimme ich zwar zu, aber an dieser Stelle wird ein String verglichen, keine boolsche Variable. Stellt sich die Frage, warum das offenbar als String deklariert ist, aber ggf. gibt's dafür Gründe. Grüße Dalai |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
"ggf. gibt's dafür Gründe."
ja gibt es das sind Parameter aus einer Ini Datei die ich nicht in Boolsche Variable umwandle weil sie nur 1 mal genutzt werden. ggf würde zwar eine Boolsche abfrage schneller gehen aber dabei kommt es darauf nicht an. Wird ja nur einmal abgefragt sonst in einer schleife würde ich vorher wandeln. |
AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Zitat:
Schade ... Aber die Anbindung ist halt einfach und die Anwendung stellt sicher das alles in ein Memo geht ... auch da ggf ging es schneller in ein RTF zu scannen ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz