VB/API: Konsolenein- und Ausgaben

Hallo!

Ich versuche verzweifelt, via API auf die Konsole zu schreiben, von der ich das Programm aufrufe. Ich weiss, ich weiss - C++ wäre hier angebrachter, aber ich möcht’s trotzdem wissen.

Habe bereits mit folgenden Calls getestet:
WriteConsole
GetStdHandle
ReadFile
WriteFile
GetWindow
usw.

Ein im Netz ( http://www.vbworld.com/api/console/index6.html ) gefundenes Beispiel funktioniert mit einer neu erstellten Konsole (AllocConsole) aber nicht mit einer bereits offnen.

Vielleicht könnt ihr mir helfen, eine simple Konsolen-Applikation zu schreiben, die z.B. einen Parameter (Command$) mit 2 multipliziert.

Danke, Stefan.

Hallo,

Ich versuche verzweifelt, via API auf die Konsole zu
schreiben, von der ich das Programm aufrufe. Ich weiss, ich
weiss - C++ wäre hier angebrachter, aber ich möcht’s trotzdem
wissen.

Laut MS ist dieses unmöglich in VB, jedoch ist alles, was nötig ist, ein Byte im Programm-Header zu ändern, damit das Programm als CUI (Console) - und nicht als GUI-Progamm gilt.

Dann wird beim Start des Programmes automatisch eine neue Console erstellt - oder wenn aus der Console aufgerufen wird die bestehende benutzt.

Hierzu gibt es ein VB-AddIn, welches das Byte beim Kompilieren automatisch setzt:
http://www.powervb.com/consoleapp.htm

Vergiß dann ganz einfach AllocConsole und FreeConsole, nach Programmstart einfach mit GetStdHandle die Handles holen, dann klappts auch mit WriteConsole oder WriteFile…

Gruß,
Martin Eckel

Hi Martin!

Ich bin von Deiner Hilfe schlichtweg verblüfft! Allerbesten Dank, ich wär wohl nie draufgekommen!

VG/SF

hallo

bin über diesen artikel gestolpert… habs aber nicht getestet

http://www.activevb-archiv.de/vb/VBtips/VBtip0342.shtml

gruss

…genau diesen habe ich auch gefunden - funktioniert leider nur mit neuer (AllocConsole) Konsole. Der Hund liegt im Detail, und zwar in einem Compiler-Byte.

Trotzdem Danke, SF

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]