AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IsConsole?

Ein Thema von himitsu · begonnen am 20. Mär 2016 · letzter Beitrag vom 6. Sep 2016
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: IsConsole?

  Alt 7. Apr 2016, 12:20
Sooo, hier erstmal das vorläufige Endergebnis, samt einer IsConsoleEXE-Funktion. (siehe h5u.Executable.pas)

Bin noch am überlegen ob und wie ich das in eine Klassenstruktur bekomme.
Und bezüglich 64 Bit hab ich noch nichts geprüft.
Angehängte Dateien
Dateityp: 7z ExecuteProcess.7z (3,19 MB, 32x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: IsConsole?

  Alt 6. Sep 2016, 10:10
Himitsu, wie definierst du denn eine Konsolenanwendung? Geht es dir um das Subsystem im PE-Header oder eher darum, ob die Anwendung ein Konsolenfenster hat? Immerhin kann eine GUI-Anwendung ohne weiteres MSDN-Library durchsuchenAllocConsole aufrufen und dort hineinschreiben. Das habe ich selbst schon mehrfach für Debugausgaben verwendet, indem ich die Dateinummern für stdout, stdin und stderr aus stdio.h (C/C++) einfach umgebogen habe. Aus meiner Erinnerung würde ich sagen, daß es in Delphi etwas aufwendiger sein könnte WriteLn usw. umzubiegen.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: IsConsole?

  Alt 6. Sep 2016, 10:50
Aus meiner Erinnerung würde ich sagen, daß es in Delphi etwas aufwendiger sein könnte WriteLn usw. umzubiegen.
Man kann ja alternativ einfach WriteFile benutzen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: IsConsole?

  Alt 6. Sep 2016, 11:02
Also in diesem Fall ging es eher darum, dass es keine GUI gibt,
bzw. ob der Code mit MSDN-Library durchsuchenWaitForInputIdle warten kann,
oder genauer ob und wie ich dessen Fehlermeldung behandeln sollte. (wenn GUI, dann ist der Timeout böse, aber wenn Console, dann ist das schon richtig so, dass es nicht geht :supid

Immerhin kann eine GUI-Anwendung ohne weiteres MSDN-Library durchsuchenAllocConsole aufrufen und dort hineinschreiben.
Andersrum geht auch. Eine "Konsolenanwendung" kann ebenso ein Fenster/GUI anzeigen.

Bei meinem Hier im Forum suchenFileSplitter hatte ich das damals gemacht.
Das Programm war nicht als "CONSOLE" kompiliert und eim Programmstart wurde dann geschaut, ob ein Konsolenfenster vorhanden ist,
wenn ja, dann damit vebinden (AttachConsole) oder wenn per Parameter verlangt aber nicht vorhanden, dann erzeugen (AllocConsole)
und wenn nein, dann wird die GUI erzeugt und die Messages in 'ner Schleife abgearbeitet.


Zitat:
wartet die CMD nicht automatisch auf das beenden einer GUI anwendung
Seit wann das?
Gewarter wird doch immer, außer man sagt CMD/START, dass es nicht warten soll.

Zitat:
EDIT: und warum soll eine Konsolenanwendung eine GUI erzeugen dürfen ?
Warum sollte sie nicht dürfen?

Es gibt halt EXEn, die reagieren darauf, wie sie gestartet wurden. (eine EXE für GUI und Console, statt zwei Getrennter)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Sep 2016 um 11:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

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

AW: IsConsole?

  Alt 6. Sep 2016, 13:27
Zitat:
wartet die CMD nicht automatisch auf das beenden einer GUI anwendung
Seit wann das?
Schon immer.

Zitat:
Gewarter wird doch immer, außer man sagt CMD/START, dass es nicht warten soll.
Nope. Einfach mal ausprobieren: CMD öffnen, notepad eingeben, ENTER - Was passiert? Notepad startet, und der Prompt der CMD kommt sofort zurück, nicht erst, wenn Notepad beendet wird. Daher gibt's auch den Schalter /wait, mit dem man dem start-Kommando sagen kann, es soll warten.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: IsConsole?

  Alt 6. Sep 2016, 13:48
Ohhh

Gut, wenn ich es mir recht überlege, dann starte ich über die Console meistens nur Konsolenprogramme.
Und bei sowas wie BDSLauncher.exe fällt es nicht auf, wenn nicht gewartet wird, da sich das eh sofort wieder beendet.


Entweder war mir das damals nicht aufgefallen, oder die PCs waren noch langsamer.
* CMD kehrt zurück und wird danach erst vom Programm "gefangen".
* Ich seh jetzt dazwischen nochmal ein PROMPT stehen, wenn ich den in der CMD startet.
http://www.delphipraxis.net/103940-f...-0-15-a-2.html
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#7

AW: IsConsole?

  Alt 6. Sep 2016, 15:31
Es gibt halt EXEn, die reagieren darauf, wie sie gestartet wurden. (eine EXE für GUI und Console, statt zwei Getrennter)
How to make an application as both GUI and Console application?
  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 16:58 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