AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Shellexecute Ergebnis im Memo Objekt ausgeben

Shellexecute Ergebnis im Memo Objekt ausgeben

Ein Thema von JimmyB · begonnen am 21. Mär 2022 · letzter Beitrag vom 16. Apr 2022
Antwort Antwort
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#1

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 21. Mär 2022, 14:18
Hier findest du die Routine 'GetConsoleOutput' mit einer kleinen, aber wichtigen Ergänzung: Vor dem 'CreateProcess' muss die muss die Zeile 'UniqueString(Command);' eingefügt werden. Damit läuft sie bei mir unter Delphi 10.4 / Windows 10

Gruß LP
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 21. Mär 2022, 23:03
Hallo,
eine Suche nach
ShellExecuteEx und Pipes sollten Dir helfen .
Heiko
  Mit Zitat antworten Zitat
JimmyB

Registriert seit: 20. Mär 2022
26 Beiträge
 
#3

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 1. Apr 2022, 12:55
Hallo in die Runde,

und ganz lieben Dank für die vielen Hinweise und Tipps.

Ich habe es mit mit ShellExecute und Pipes geschafft. Ein externe Programm wird gestartet und das Ergebnis in einem Memo Fenster ausgegeben.
Soweit so gut.

Das aktuelle Problem ist, dass solange das externe Programm läuft, die eigentlich Delphi Anwendung eingefroren ist. Es ist nicht abgestürzt, sondern lässt sich erst dann wieder nutzen, wenn das externe Programm die Arbeit beendet hat.

Ich könnte mir fast vorstellen, dass diese "Einfriere" normal ist. Vielleicht auch nicht und man kann es irgendwie abstellen.

Viele Grüße
JimmyB
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
715 Beiträge
 
Delphi 12 Athens
 
#4

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 1. Apr 2022, 16:00
Hallo in die Runde,

und ganz lieben Dank für die vielen Hinweise und Tipps.

Ich habe es mit mit ShellExecute und Pipes geschafft. Ein externe Programm wird gestartet und das Ergebnis in einem Memo Fenster ausgegeben.
Soweit so gut.

Das aktuelle Problem ist, dass solange das externe Programm läuft, die eigentlich Delphi Anwendung eingefroren ist. Es ist nicht abgestürzt, sondern lässt sich erst dann wieder nutzen, wenn das externe Programm die Arbeit beendet hat.

Ich könnte mir fast vorstellen, dass diese "Einfriere" normal ist. Vielleicht auch nicht und man kann es irgendwie abstellen.

Viele Grüße
JimmyB
Wenn Du aus einer Pipe liest ist das blocking, das sollte man besser in einem sekundären Thread machen.
Peter Below
  Mit Zitat antworten Zitat
JimmyB

Registriert seit: 20. Mär 2022
26 Beiträge
 
#5

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 2. Apr 2022, 10:14
Hallo,
das mit weiteren Thread schaue ich mir an.
Besten Dank für den Tip!
Viele Grüße
JimmmyB
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.047 Beiträge
 
Delphi 12 Athens
 
#6

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 2. Apr 2022, 13:50
Wenn dein Delphi neu genug ist, gibt's für's Lesen von Console Ausgaben
(hab's aber ehrlicherweise selber noch nicht probiert) eine Bibliothek
im GetIt package manager (Tools/GetIt).

Ansonsten:
- Ja, wenn es blockiert, dann sollte es in einenThread oder einen Task
(-> Parallel Programming Library, seit XE7)
- eine Alternative ist: dir > Dateiname.txt, das würde die Ausgabe in eine
Datei umleiten, die könnte man dann auslesen. Datei Lesen wäre aber auch
blockierend...

Grüße
TurboMagic
  Mit Zitat antworten Zitat
JimmyB

Registriert seit: 20. Mär 2022
26 Beiträge
 
#7

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 15. Apr 2022, 08:01
Hallo TurboMagic,
Danke für die Tipps.
Ich schau es mir an, vermute aber dass es zu komplex für mich wird das umzusetzen. Aber Versuch macht klug.

Vg Jimmyb
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:02 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