g-sus Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 Hi Leutz! Für euch is das sicher ein Klacks, aber ich tu mich irgendwie schwer damit... hab schon die Borland-Hilfe und auch dieses Forum hier durchsucht, aber so richtig geholfen hats mir nich... Ich schreib für meine Abschlussprüfung ein Proggy, bei dem ich ein anderes Programm mit zuvor errechneten Parametern aufrufen soll... Im moment nutze ich gerade "CreateObject()" und "OlePropertySet()"... damit schaff ichs schon ma Programme zu öffnen, der einzige Haken dabei is: ich weiß nicht wie ich die Parameter mit übergebe und diese Funktionen starten nur Programme, die in der Registry eingetragen sind... mein Proggy is das leider nich... Von meinem Cheffe hab ich den Tip bekommen "_popen()" oder "execl()" zu benutzen, aber mit der Borland-Hilfe dazu komm ich nich ganz klar... BTW: Das Proggy wird auf Win2K realisiert! Ich hoffe man kann mir hier mal wieder weiterhelfen! yourz g-sus Zitieren
Guybrush Threepwood Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 Hi, mit system() kannst du beliebige DOS aufrufe durchführen, aber unter Windows würde ich zum Starten von Programmen ShellExecute() empfehlen. Gruß Guybrush Zitieren
g-sus Geschrieben 21. Januar 2003 Autor Geschrieben 21. Januar 2003 thx! "system()" könnte mir helfen... aber "ShellExecute()" kennt mein Compiler nich... Zitieren
g-sus Geschrieben 21. Januar 2003 Autor Geschrieben 21. Januar 2003 hey es klappt! danke nochma! besonders wegen der schnellen antwort! :) greetz g-sus Zitieren
g-sus Geschrieben 21. Januar 2003 Autor Geschrieben 21. Januar 2003 *argh* nein ich kann auch nix damit anfangen... das proggy, dem ich die parameter übergebe, errechnet daraus weitere eigenschaften und liefert diese zurück... d.h. ich brauch ne(n) offene(n) stream/pipe zu dem programm... jetzt wird die sache wohl langsam kompliziert, was?! Zitieren
Guybrush Threepwood Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 jetzt wird die sache wohl langsam kompliziert, was?! so langsam:rolleyes: Ich hab sowas noch nie gemacht, aber es gibt da ne Funktion namens CreateFile() mit der man auch Pipes erstellen kann, dafür könnte auch CreateNamedPipe() interessant sein. Dafür muß aber auch das zu startende Programm verändert werden, wenn du den Sourcecode hast, wäre es evtl einfacher den Code in eine DLL zu stecken und dann die Funktion aufzurufen. Gruß Guybrush Zitieren
Klotzkopp Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 In welcher Form liefert das aufgerufene Programm die Daten denn zurück? Nur als Rückgabewert von main? Als Ausgabe nach stdout? Zitieren
g-sus Geschrieben 21. Januar 2003 Autor Geschrieben 21. Januar 2003 @Guybrush Danke, das is schon mal ein Anfang... ich mach mich darüber danmal schlau! Aber Zugriff hab ich keinen auf den Quelltext der anderen Anwendung... @KlotzKopp Das weiß ich noch(!) nicht so genau, da dies ein Programm ist, welches eine andere Projektgruppe bereits erstellt hat... aber ich werd das schon rausfinden... da mir der Programmierer der Anwendung allerdings geraten hat _popen() zu benutzen muss es wohl per stdout() in die pipe geschrieben werden... *denkz* macht das denn einen großen unterschied? *mal-ganz-dumm-frag* Zitieren
Guybrush Threepwood Geschrieben 21. Januar 2003 Geschrieben 21. Januar 2003 da mir der Programmierer der Anwendung allerdings geraten hat _popen() zu benutzen muss es wohl per stdout() in die pipe geschrieben werden... Na dann sieht die Sache doch viel einfacher aus. Wenn der Programmierer dir das gesagt hat wird die Anwendung wohl dafür eingerichtet sein. Wenn du sie jetzt mit _popen() öffnets bekommst ein eine FILE* Variable zurückgegeben, mit dieser müßtest du eigentlich ganz normal arbeiten können als hättest du eine Datei geöffnet. Das hier sollte dir weiterhelfen. Gruß Guybrush Zitieren
g-sus Geschrieben 23. Januar 2003 Autor Geschrieben 23. Januar 2003 also ich dank euch mal für eure hilfe! das prob hat sich jetzt geregelt... 1. ich kann mit system() arbeiten, da ich eine DOS-Anwendung ansteuer und 2. nichts über die pipe zurückgegeben wird. Die Daten landen in ein File, dass ich dann auslese... also danke, danke, danke... greetz g-sus Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.