Text an ein Console Programm Senden
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo erstmal, ich glaube, dies ist sogar mein 1. Post hier...
Ich habe ein Console Programm wo man bestimmte Commands eingeben kann und mit Enter abschicken kann. Nun möchte ich mit Delphi ein Programms schreiben, dass bestimmte Commands dort reinsendet... Ich habe schon folgendes versucht, aber es schreibt mir den Text als Fenstername des Programms und nicht im Programm selbst:
Delphi-Quellcode:
//***
var aWnd : Hwnd;
begin aWnd:=FindWindow('ConsoleWindowClass',nil); //*** if aWnd<>0 then begin SendMessage(aWnd, WM_SETTEXT, 0, Integer(Pchar('listgm'))); end; end; hier NIL weil der Fenstername der Pfad des Programms ist. aber der Dateiname ist immer gleich, aber ich kann nicht '*programmname.exe' machen :-( wie sende ich jetzt in dieses DOS Fenster hinein? Bzw. ich habe WinSpy probiert, aber der erzeugt mir keinen Code... SCREENSHOT: Siehe Anhang Mfg novo [edit=SirThornberry]Bild in Anhang gepackt - Mfg, SirThornberry[/edit] |
Re: Text an ein Console Programm Senden
Empfängt eine Console überhaupt Messages :gruebel:
Müsste man da nicht eher mit Pipes dran gehen? |
Re: Text an ein Console Programm Senden
Zitat:
|
Re: Text an ein Console Programm Senden
Du kannst es mal damit (http://svn.theunknownones.net/tuo/Co.../ConsoleTools/) versuchen.
Ist zwar nicht perfekt, aber normalerweise funktionierts. :) btw: Willkommen in der DP! :hi: |
Re: Text an ein Console Programm Senden
Zitat:
|
Re: Text an ein Console Programm Senden
Geht es hier um ein Cheat Programm? Oder was ist eine World of Warcraft Emulation in diesem Fall?
Zu deiner Frage: Mit Shellexecute sollte das gehen. |
Re: Text an ein Console Programm Senden
Zitat:
Er will ja nicht Parameter beim Start des Programms übergeben, sondern dem laufendem Programm Kommmandos zukommen lassen. Grüße Klaus |
Re: Text an ein Console Programm Senden
Du kannst in deiner Anwendung ein unsichtbares Fenster erzeugen und an dieses dann Nachrichten schicken.
|
Re: Text an ein Console Programm Senden
Zitat:
Aber das ist nebensächlich... EDIT: Funktioniert bisher noch nix... |
Re: Text an ein Console Programm Senden
Guten Morgen,
hier wird beschrieben wie das mit named pipes funktioniert. Allerdings muß dann das ConsolenProgramm als ChildProcess von dem Delphi Programm gestartet werden. Wenn das ein gangbarer Weg für Dich ist. Grüße Klaus |
Re: Text an ein Console Programm Senden
Zitat:
Wenn bloss dein Link gehen würde... :wiejetzt: |
Re: Text an ein Console Programm Senden
Zitat:
|
Re: Text an ein Console Programm Senden
Zitat:
|
Re: Text an ein Console Programm Senden
Zitat:
Direktlink? :S |
Re: Text an ein Console Programm Senden
Zitat:
Dort hast Du die Auswahl: Zitat:
|
Re: Text an ein Console Programm Senden
Zitat:
Irgendwie ist das was seltsames... ich kann damit nichts anfangen... :wiejetzt: :wiejetzt: :wiejetzt: |
Re: Text an ein Console Programm Senden
Zitat:
|
Re: Text an ein Console Programm Senden
Zitat:
Ganz einfach. :-) |
Re: Text an ein Console Programm Senden
Dank ChaosBen (namensvetter ftw)
habe ichs geshcafft. Danke und kann closed werden. Mfg novo |
Re: Text an ein Console Programm Senden
Hallo zusammen.
Ich habe das ganze auch nutzen wollen, aber es gibt wohl ein Problem mit Delphi 2009 und Unicode. Ich bekomme nur chinesische Schriftzeichen ausgegeben. Gibt es eine einfache Umwandlung dafür oder muss ich wirklich den ganzen Quellcode von TConsoleProcess anpassen? Edit: Ein einfaches ersetzen aller Strings durch AnsiString bringt mehr Probleme als Lösungen |
Re: Text an ein Console Programm Senden
Hmmm .. ein guter Einwurf.
Ich hab die Unit mal angepasst. Jetzt funktioniert es auch mit D2009. |
Re: Text an ein Console Programm Senden
Hi!
Wenn du TProcess benutzt (oder irgenteine abart davon) dann kannst du mit der folgenden kleinen Procedure alles an deine Konsole senden was du möchtest. Auch ganze befehle mit einem mal!
Delphi-Quellcode:
Wenn du den Output auch brauchs dann geht das damit:
procedure SendCommand(cmd: string);
begin cmd:=cmd+#10; {dein Process}.Input.Write(cmd[1],Length(cmd)); end;
Delphi-Quellcode:
Gruß Teekeks
function GetProcessOutput: string;
var AStringList: TStringList; begin AStringList:=TStringList.Create; try AStringList.LoadFromStream({deim Process}.Output); Result:=AStringList.Strings[0]; except writeln('EXCEPTION reading output');result:=''; end; AStringList.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:38 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