1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

C++: Externes PRogramm starten

Discussion in 'Programmieren' started by benegro, Jul 24, 2002.

Thread Status:
Not open for further replies.
  1. benegro

    benegro Kbyte

    Ich fang gerade an C++ zu programmieren und möchte wissen, wie man ein externes Programm startet. (bei VB geht das ja mit shell)
     
  2. Danke für den Tipp. In der Richtung hatte ich da auch mal was gelesen, weiss aber nicht mehr wo.

    Gruss, Mike
     
  3. Sumo

    Sumo Kbyte

    Du brauchst das Handle des Fensters. Dann kannst du z.B. mit SetWindowText oder SendMessage über WM_SETTEXT etwas hineinschreiben.

    Da diese Funktionen ja sicher auch von dem Programm selber benutzt werden um etwas in die eigenen Fenster zu schreiben, kannst du auch versuchen das vorher abzufangen. Dazu müsstest du die API hooken. Die WinAPI stellt für sowas aber keine Funktionen bereit was das ganze ein wenig kompliziert werden lässt. Wenn es dich interessiert musst du mal gucken was du im Netz so darüber findest.
     
  4. Angel-HRO

    Angel-HRO Megabyte

    So, jetzt wälze ich auch Theorie. Wenn ein Programm etwas in ein Textfeld schreibt, dann geschieht das Intern. Schreibt es Daten, meinetwegen vom Feld in eine Excel Zelle (Beispiel), dann verschickt es Daten. Diese würden sich abfangen lassen.
    Aber Programminterne Routinen? Das Auslösen des Schreibens wird ja auf unterster Ebene realisiert, in Assembler, per eine JMP, JNE, etc. Befehles, der die Vorraussetzung erkennt, dass die Programmroutine in das Textfeld schreibt.
    Ich wüßte nicht, wie sich das abfangen lässt, ob sich das abfangen lässt und wenn ja, wie das über C++ geschehen könnte.
    Fürs Excel Beispiel könnte man die OLE Überwachen und dortige Aktivitäten erkennen.

    André
     
  5. Holla,

    nur mal angenommen... ein Programm schreibt irgendwas in ein Textfeld, dann müsste sich das doch irgendwie anfangen lassen bzw. müsste es möglich sein, aus einem externen Programm heraus etwas in das Textfeld zu schreiben.

    Also quasi: Text abfangen, ersetzen und einfügen mit externem Programm. Weiss wohl, dass sowas machbar ist, nur wie?

    Gruss, Mike
     
  6. Angel-HRO

    Angel-HRO Megabyte

    Wie meinst du das denn? Im Sinne von OLE? Oder was willst du abfangen?
     
  7. Holla!

    Wo Ihr gerade dabei seid... wie fange ich Botschaften anderer gestarteter Programme ab und/oder übergebe Botschaften an andere Programme?

    Gruss, Mike
     
  8. Angel-HRO

    Angel-HRO Megabyte

    Asche auf mein Haupt, habe das ; vergessen.
    Mit den includes hast du ebenfalls recht, aber die Frage war, wie der Befehl heißt, die Vorraussetzungen wären später gekommen
     
  9. specialist7

    specialist7 Kbyte

    Falls du Probleme hast, das zu kompilieren solltest du ein vergessenes Komma einfügen. *g*Der Code sieht dann so aus:
    WinExec("[Programmname",SW_SHOW);
    Ich glaube, du brauchst noch irgendwelche includes, wie windows.h
    oder so...

    Viel Spaß!!!!!!
     
  10. Angel-HRO

    Angel-HRO Megabyte

    Also mit C++ für Windows geht das über die Funktion WinExec ("[Programmname]" SW_SHOW)
     
Thread Status:
Not open for further replies.

Share This Page