verschmelzen von Abläufen...



  • Guten Tag Zusammen,
    stellt euch mal vor eine Firma hat Programm A B und C.
    Alle Programme haben nur eine Grafische Oberfläche.
    Prog A auslesen
    Prog B Berechnungsprogramm
    Prog C Schreibt es in eine Datenbank.

    In der Vergangenheit jemand ein Programm geschrieben, das nur ein Kopf hat.
    Ich will sowas auch schreiben, wie und so setze ich an.
    Ich weis, sowas ist komplex.


  • Mod

    In der Vergangenheit jemand ein Programm geschrieben, das nur ein Kopf hat.
    Ich will sowas auch schreiben, wie und so setze ich an.

    Falls Du damit meinst, dass Du die drei Programme so zusammenfassen willst, dass keine User-Interaktion notwendig ist, um die Ausgaben A -> B -> C zu pipen: Das Resultat muesste serialisiert werden (in bspw. Textform) und dann ueber eine Datei oder stdout/stdin an das jeweils naechste Program. Alternativ koennen die auch in jeweils einem Prozess durchgehend laufen, und per IPC die Daten teilen.

    Deiner Ausdrucksweise nach zu urteilen, bist Du aber nicht weit genug, um das selbst so umzusetzen...?



  • das eine hat mit dem anderen nichts zu tun.

    Vielleicht habe ich meine Frage falsch formuliert.

    ok, neuer Ansatz,
    ich will ein ein Prog schreiben, das NUR einem Kopf hat, es soll:

    • test.jpg mit paint öffnen.
    • das Bild soll sich um 180 Grad drehen.
    • das Bild soll speichert werden als test2.jpg.

    Ein link für ein TUT oder für einen Ansatz bin ich sehr Dankbar.


  • Mod

    @tomycat2009 sagte in verschmelzen von Abläufen...:

    Ein link für ein TUT oder für einen Ansatz bin ich sehr Dankbar.

    Ein Tutorial wovon? Von Bildverarbeitungs-Bibliotheken?



  • Ich habe es soweit verstanden, dass ich die z.B. die paint.exe als include einbinde. Als nächstes suche ich mit dem Debugger die Funktion openfile, filestream oder fopen heraus. Je nach Geschmack was der paint Programmierer verwendet hat.

    Ist das die richtige Richtung?



  • .....was?

    ffmpeg und konsorten sind deine freunde.



  • @tomycat2009 sagte in verschmelzen von Abläufen...:

    Ist das die richtige Richtung?

    Nur wenn du auf Schmerzen stehst.

    Falls du keine Schmerzen haben möchtest, könntest du dir beispielsweise OpenCV anschauen. Habe auch ein passendes Beispiel gefunden: Image Rotation and Translation Using OpenCV



  • Hmmmm, jein.
    Geht leider in die falsche Richtung.
    Z.b. Solaranlage deren Software. Close source
    Ich starte die Software, klicke suche 8.40 bis 10.40 Uhr. Dann auf speichern.

    Ich will eine Software mit nur einen Button.
    Wie gehe ich vor?



  • @tomycat2009 sagte in verschmelzen von Abläufen...:

    das NUR einem Kopf hat

    Meinst du "Knopf" (button)???

    Möchtest du Programmaktionen automatisch ausführen lassen? Dann schau dir mal AutoHotKey an (nutze ich z.B. auch hier für Forenbeiträge, um per Funktionstasten Code-Blöcke zu erstellen - es kann aber auch mehr, z.B. eine einfache GUI erzeugen).



  • @tomycat2009 Da es dir schwer fällt, dein Problem so zu formulieren, dass wir verstehen, was dein Problem ist, wird auch die Lösung des Problems schwer werden.

    Ich glaube, du möchtest, bestimmte, wieder kehrende Abläufe automatisieren? Das hängt stark davon ab, was du automatisieren willst.

    Viel Software läuft heutzutage Broswerbasiert. Könnte ich mir bei Solaranlagensteuerung auch gut vorstellen. Da kannst du den HTML Code analysieren, nach bestimmten Namen o.ä. suchen und dann Funktionalitäten ausführen, die mit einer bestimmten Aktion verbunden sind.

    Es gibt, gerade im Testing Bereich, Software, die Usereingaben simulieren, also, Maus und Tastatur. Für den Browser z.B. Selenium. Für Automatisierungslösungen finde ich das nicht so schön, weil das eben Maus und Tastatur für die Dauer der Ausführung blockiert, aber das könntest du dir anschauen.

    Ansonsten habe ich für Windowsanwendungen gerade noch das hier gefunden: https://docs.microsoft.com/en-us/windows/win32/winauto/entry-uiauto-win32

    Aber, das ganze in C++ selbst zu schreiben, wird wohl sehr aufwändeig.

    Für Python habe ich gerade zufällig noch was nettes gefunden: https://pyautogui.readthedocs.io/en/latest/



  • Hallo zusammen,
    Erstmal vielen Dank für eure Antworten.
    Leider gehen alle Antworten in die falsche Richtung.
    Ich rede nicht von einer Webseite.
    Es geht im allgemeinen nur um eine exe Datei.
    Es ist egal ,ob es...

    Paint.exe
    Word.exe
    Solaranlage.exe
    ... Ist.

    Wie kann ich eine exe Datei deren Funktion ausführen, ohne die exe Datei direkt zu starten.

    Ich setze mal voraus, dass die exe Datei mal in cpp geschrieben wurde.

    Es geht um eine Firmen Software, die automatisiert werden soll.

    Ich weis, dass man viel mit Debugger arbeiten muss und es kommt auch viel Assembler zum Einsatz.

    Z.b. steht in der exe Datei( paint,Word, cmd, Solaranlage....):

    0xc000098 //steht für fileopen, letzte txt Datei öffnen.

    Wie binde ich die exe Datei in mein cpp Programm ein, dass 0xc000098 deren Funktion ausgeführt wird.

    Ich weis, daß es sehr komplex ist. Ich weiß, dass das möglich ist. Wo und wie setze ich an?


  • Mod

    Das ist sicher möglich, ja. Aber das ist so schwer, dass es praktisch aussichtslos ist, außer du machst es an einem selbstgeschriebenen Programm, welches du ganz exakt kennst, und bloß um zu zeigen, dass es prinzipiell möglich wäre. Selbst dann ist es sehr schwer und setzt tiefgehende Kenntnisse über Maschinensprache voraus, die du offensichtlich nicht hast (denn sonst bräuchtest du nicht fragen).

    Also: Warum fragst du das? Hier liegt offenbar ein XY-Problem vor: Du denkst, dass dir die Antwort auf diese Frage helfen würde, irgendetwas bestimmtes zu erreichen. Wird es aber nicht. Richtig wäre es direkt nach der Sache zu fragen, die du erreichen möchtest.



  • @tomycat2009 sagte in verschmelzen von Abläufen...:

    Ich weiß, dass das möglich ist.

    In dem du dich mit einem Rechtsanwalt mit Fachrichtung Lizenzen in Verbindung setzt.

    Das dekompilieren eines Werkes zur Erzeugung eines abgeleiteten Werkes entspricht selten den Lizenzvereinbarungen.

    Ggf. benötigst du eine Entwickler-Lizenz, sofern verfügbar.



  • Super danke, Einer versteht mich.
    Es ist aber so, dass ich das Werk nicht verändere.
    Nach was soll ich google?
    Wie nennt man den Ansatz?



  • @tomycat2009
    Sollte der Rechtsanwalt feststellen dass das Dekompilieren erlaubt ist, so würde ich abhängig von der Programmgröße ein paar Entwickler einstellen, X Lizenzen von IDA Pro kaufen und das Programm dekompilieren lassen s.d. am Ende hoffentlich C++ Code herauskommt.

    Wird sicherlich kein billiger Spaß und könnte einige Mannjahre verschlingen.



  • Die rechts sachen muss ich klären, das soll kein problem sein. Das Projekt ist auch nur für firma.

    Ich setze noch anders an.
    Ca.20 Jahren:
    Sicherheits Kopie einer DVD

    1. Ripper
      2.bild Ton splitter
    2. Software..
      4...
      5...
      6.zusammen fügen von Bild und Ton
      7.nero

    Was bessere gab's nicht auf dem Markt.
    Man brauchte 7 Programme.
    Ein schlauberger programmierte ein Tool, das nur ein Button hatte, nämlich Start.

    Bevor einer sagt, dass ich DVD kopieren will.
    Nein, das war nur ein Beispiel.
    Die 1. Knopf Software war in 2 Tage fertig.
    Ich hätte ihn vor 20 Jahre fragen sollen, ich weiß.
    Wie hat er das gemacht?



  • @tomycat2009
    Verstehst du den Aufwand welches ein solches Projekt nach sich zieht?

    Im Standardfall könnte das dekompilieren mehrere Hunderttausend Euro kosten und über ein Jahr dauern.

    Neuere Compiler optimieren sehr stark, Coderverschleierungstechniken werden immer stärker eingesetzt, Funktionen können geinlined werden,.... Das decompilieren ist in neueren Compilern immer komplexer geworden

    Und wie stellst du sicher dass das Programm ordnungsgemäß funktioniert? Nicht das durch ein Funktionsaufruf der interne Zustand verändert wird und durch einen falschen Zustand ein Absturz bzw. Unfall passiert,...

    Aus meiner Sicht macht dein Projekt überhaupt keinen Sinn.

    PS:
    Wie sind deine Programmierkenntnisse?

    Könnte es sein dass du keine Funktionen aus EXE Dateien aufrufen möchtest, sondern aus einer DLL?



  • @tomycat2009 sagte in verschmelzen von Abläufen...:

    ...
    Wie hat er das gemacht?

    Meine These:
    Er hat sich Gedanken darüber gemacht, was sein Programm leisten soll, sich mit den nötigen Themen beschäftigt, und dann das Programm geschrieben ... und NICHT Funktionen aus 7 anderen exe-Dateien aufgerufen.



  • Warum überhaupt dekompilieren? Reicht es nicht, das Programm zu starten und dann z.B. eine Message WM_LBUTTONDOWN gefolgt von ...UP oder so an den passenden Button zu senden (oder wie auch immer die Messages heißen, die man da braucht)?



  • @Quiche-Lorraine sagte in verschmelzen von Abläufen...:

    Ich will es trodem wissen. Ich weis dass die Compiler sehr verschleiern.

    In cpp hatte ich ein Projekt über 6 Monate.

    Im csharp hatte ich ein Projekt mit ca 10.000 Zeilen


Anmelden zum Antworten