AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden
Thema durchsuchen
Ansicht
Themen-Optionen

Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

Ein Thema von joehd · begonnen am 20. Mär 2020 · letzter Beitrag vom 23. Mär 2020
Antwort Antwort
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
109 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 20. Mär 2020, 11:33
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;
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof

Geändert von Luckie (20. Mär 2020 um 14:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 20. Mär 2020, 12:07
Deine Anwendung ist nicht der aktive Prozess und hast somit nicht die Berechtigung.

MSDN-Library durchsuchenSetForeGroundWindow, MSDN-Library durchsuchenSetFocus usw.
https://docs.microsoft.com/en-us/win...regroundwindow
siehe die Remarks
$2B or not $2B
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
109 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 20. Mär 2020, 20:41
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?
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#4

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 20. Mär 2020, 20:46
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
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
109 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 20. Mär 2020, 21:36
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
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 20. Mär 2020, 22:57
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.
$2B or not $2B
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#7

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 21. Mär 2020, 08:07
Und bitte auch Boolsche Variablen nicht mit TRUE oder FALSE abfragen, sondern einfach

nicht so

 if (Fileexists(trim(mydata.Start_Minilis_A) )) and (mydata.wait = 'FALSE' ) then // Wenn die Exe existiert dann ausführen ohne Wait

sondern beispielsweise so

 if (Fileexists(trim(mydata.Start_Minilis_A) )) and not mydata.wait then
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#8

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 21. Mär 2020, 15:34
@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
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
109 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 23. Mär 2020, 21:12
"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.
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
109 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Tastatur Focus in meine Anwendung nach Shelexecute und Wait auf Beenden

  Alt 23. Mär 2020, 21:13
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.
Der Scanner ist aber ein HID Scanner das kostet beim einlesen leider auch Zeit .
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 ...
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz