AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Consolen-Programm in selber Console
Thema durchsuchen
Ansicht
Themen-Optionen

Consolen-Programm in selber Console

Ein Thema von Martin K · begonnen am 1. Nov 2007 · letzter Beitrag vom 1. Nov 2007
Antwort Antwort
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Consolen-Programm in selber Console

  Alt 1. Nov 2007, 16:18
Hi,

ich habe ein Consolen-Programm und starte aus diesem heraus ein anderes Consolen-Programm per ShellExecute.
Nur leider wird hier ein neues Consolen-Fenster geöffnet, ich hätte es aber gerne im selben Consolen-Fenster.
Ist das irgendwie möglich?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Consolen-Programm in selber Console

  Alt 1. Nov 2007, 16:37
Nein. Die Konsole ist der Hostprozess für das Konsolenprogramm. Und eine Konsole kann immer nur ein Konsolenprogramm "hosten".
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Consolen-Programm in selber Console

  Alt 1. Nov 2007, 17:11
Ähem, Luckie? Wozu gibt es dann das Process Creation Flag CREATE_NEW_CONSOLE? Man muss einfach nur CreateProcess mit den Default-Parametern aufrufen, dann wird die Konsole vererbt.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Consolen-Programm in selber Console

  Alt 1. Nov 2007, 17:12
Ich wollte das auch nicht so recht glauben und war kurz davor anzumerken, dass das Make Tool entgegen Luckies Aussage dies schafft.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

Re: Consolen-Programm in selber Console

  Alt 1. Nov 2007, 17:13
Du kannst so oft cmd.exe IM CONSOLENFENSTER starten, wie Du willst, beenden musst Du dann JEDES Einzelne mit EXIT.

Es geht OHNE Make Tool.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Consolen-Programm in selber Console

  Alt 1. Nov 2007, 17:16
Hä? Ich kapier jetzt nicht, was du mit der Aussage meinst bzw. besser: erreichen willst? Das war mir alles bewusst und bekannt und meine Aussage war nur ein Gegenbeispiel zu Luckies Aussage. Oder habe ich was nicht mitgeschnittent?
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Consolen-Programm in selber Console

  Alt 1. Nov 2007, 19:09
So, danke erstmal für eure Antworten.

Also das hat soweit geklappt:
Zitat von Apollonius:
Man muss einfach nur CreateProcess mit den Default-Parametern aufrufen, dann wird die Konsole vererbt.
Habe das mithilfe von der Code-Library umgesetzt und es kam dieser Code heraus:
Delphi-Quellcode:
var
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
  s: string;

  begin
    // s := 'Dateiname.exe "Meine Parameter"';
    WriteLN('Run:');
    WriteLN(s+#13#10);
    FillChar(StartupInfo, SizeOf(StartupInfo), #0);
    StartupInfo.cb := SizeOf(StartupInfo);
    if CreateProcess(nil, PChar(s), nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then
    begin
      WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
      if ProcessInfo.hProcess <> 0 then
        CloseHandle(ProcessInfo.hProcess);
      if ProcessInfo.hThread <> 0 then
        CloseHandle(ProcessInfo.hThread);
    end
    else
      WriteLN('Cannot run this program');
    WriteLN('Program finished');
  end.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Consolen-Programm in selber Console

  Alt 1. Nov 2007, 22:04
Zitat von Apollonius:
Ähem, Luckie? Wozu gibt es dann das Process Creation Flag CREATE_NEW_CONSOLE? Man muss einfach nur CreateProcess mit den Default-Parametern aufrufen, dann wird die Konsole vererbt.
Oh, das habe ich nicht gewusst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 12:25 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