Ist es möglich eine fremde Console.exe zu benutzten?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Donut

Betreff: Ist es möglich eine fremde Console.exe zu benutzten?

BeitragDo, Sep 08, 2011 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo liebe leute,
ich möglich per BlitzMax in ein Consolenfenster einer fremden Anwendung schreiben und die ausgabe wieder in mein Programm einlesen ist so etwas überhaupt möglich?
 

PhillipK

BeitragDo, Sep 08, 2011 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ist es überhaupt möglich: Ja.
Nativ mit blitzmax: Ich vermute mal nein.

Wenn du eine "Fremde" konsole auslesen möchtest, die nicht grade das CMD prompt ist, musst du schon ein wenig tricksen.
Wenn der text als Fenster-text drinsteht, kannst du wohl über die WinApi daran (wenn du windows benutzt) oder die AutoitV3 dll nutzen (ebenfalls windows)
Da es ja eine exe ist, wirds vermutlich windows sein ^^

Sollte es nicht über Api-funktionen auslesbar sein (eventuell speziell geschützt), muss was anderes her. Vielleicht bietet deine Console.exe ja sogar eine eigene Api für solcherlei interaktionen?
 

Donut

BeitragDo, Sep 08, 2011 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay das ist ja schonmal besser als nichts Wink
Kannst du mir noch einen kleinen Wink mit dem Zaunpfahl geben wie das mit der Autoit dll oder der WinApi funktionieren könnte?

joshmami

BeitragDo, Sep 08, 2011 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, bei AutoIt3 würde ich diese Befehle nehmen:
Code: [AUSKLAPPEN]
Run(), um die Console.exe zu starten
Send(), um etwas ins Fenster einzugeben
WinGetText(), um den gesamten Text des Fensters danach auszulesen.


Wenn du wüsstest, wie der Output dann ungefähr aussieht, kannst du vllt den Text danach absuchen.
Oder du nimmst ControlGetText(), wenn du vorher mit dem AutoIt-Window Info den Namen der Control-ID,
die den Text ausgibt, herausfindest.
So würde ich es mit AutoIt machen.
Ich weis aber nicht, ob in der Dll alle funktionen enthalten sind usw.
Kann gut sein, dass es mit der WinAPI leichter geht.
 

Donut

BeitragDo, Sep 08, 2011 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für deine Hilfe aber so weit bin ich noch garnicht Razz
Ich verzweifele gerade an der dll einbindung.
Ist das hier der richtige weg um die autoit dll-Datei einzubinden?
https://www.blitzforum.de/foru...hp?t=11993

Und ist die "SciLexer.dll" die richtige Datei?
http://www.autoitscript.com/si...downloads/

joshmami

BeitragDo, Sep 08, 2011 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Donut,
Zum Thema Dll einbinden in BMax musst du einen anderen Fragen, ich bin noch bei B3D hängen geblieben Wink
SciLexer.Dll ist definitiv nicht die richtige Dll,
die richtige gibt's normalerweise nur beim kompletten Download, aber ich habe dir hier mal den ganzen Dll-Ordner gezippt: http://dl.dropbox.com/u/333270...BHilfe.zip
Darin ist auch die 64-Bit Version der Dll und die Hilfedatei (auf Englisch)
Ich hoffe, ich habe dir zumindest ein bisschen geholfen
 

PhillipK

BeitragMo, Sep 12, 2011 10:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe früher viel mit Autoit gearbeitet.

Dann kam es mal vor, das ich ein Programm "Fremdsteuern" wollte, aber nicht per Autoit, weil das 'so langsam' ist - etwas besseres viel mir nicht ein.
Dort hatte ich dann ein wenig mit der AutoitX3.dll rumgespielt (und nebenbei auch meine ersten versuche gemacht, eine DLL einzubinden.)

Hier, ich habs mal hochgeladen:
AutoitX3.dll Wrapper

enthalten sind die DLL (ich hoffe ich darf sie veröffentlichen! Man kann sie immerhin Free-downloaden unter www.autoit.de -> Autoit runterladen ^^) und eine BMX datei, die ich aus der .h datei erstellt hab.
Im wesentlichen ist dort jeder Befehl den die DLL zu bieten hat umgelinkt und nochmal per funktion ansprechbar. Sollte also fast 1zu1 aus der Autoit-hilfe lernbar sein.

Die befehle mit denen ich arbeiten würde:

BlitzMax: [AUSKLAPPEN]

Run("notepad.exe")
Local handle:String = WinGetHandle("Unbenannt - Editor", "")
Local fensterInhalt:String = WinGetText(handle, "")
ControlSend(handle, "", "", "Hallo Welt!{enter}",0)


Oder irgendwie so Very Happy Leider kenne ich mich mit meiner Bmx da nimmer so aus :3

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group