murb.com Hauptseite  •   Registrieren  •  SUCHE  •  FAQ  •  Mitgliederliste  •  Forenregeln  •  Login
Neue Antwort erstellen Mehrere .exe Dateien miteinander verbinden
Mehrere .exe Dateien miteinander verbinden
kenux
Beiträge: 13
Antworten mit Zitat
Wie kann man mehrere .exe Dateinen (Programm1.exe und Programm2.exe) zur
einer Haupt.exe Datei verbinden. also auf der Haupt.exe befinden sich 2 Buttons und kann die jeweiligen Programme starten. Natürlich sollen Programm1 und Programm2 in das Hauptprogramm integriert sein und nur beim Ausführen sollen die Unterprogramme sichtbar werden

hier habe ich zwar was gefunden: http://www.murb.com/forum/viewtopic.php?t=117
aber das ist denk ich nur gut wenn man irgendwie vertuschen will, dass das eine Programm mehrere Progs beinhaltet.

Hat jemand ne bessere Lösung wie man es z.B. unter Borland c++Builder oder Visual Studio realisieren kann?
Benutzer-Profile anzeigenAlle Beiträge von kenux anzeigenPrivate Nachricht senden
PainT
Administrator
Beiträge: 5115
Antworten mit Zitat
Eine Möglichkeit wäre z.B. die Programme als Resourcen mitzukompilieren, dann kannst du sie während er Laufzeit auf die Festplatte extrahieren und ausführen.

Hier ein Beispiel:
Code:

#include <windows.h>
#include <stdio.h>
#include <sys/stat.h>
#include "resource.h"

bool DirectoryExists(const char* Path)
{
    struct stat my_stat;
    return (stat(Path, &my_stat) == 0);
}

bool SaveResItemToDisk(int resourceid, LPCTSTR resourcetype, char* filename, char* directory)
{
   if (directory != NULL)
   {
      HRESULT result;
      if (!DirectoryExists(directory))
      {         
         result = CreateDirectory(directory, NULL);         
         if (result == 0) return FALSE;
      }
      result = SetCurrentDirectory(directory);                     
      if (result == 0) return FALSE;      
    }   
   
   HRSRC hRsrc;
   hRsrc = FindResource(NULL, MAKEINTRESOURCE(resourceid), resourcetype);
   if (hRsrc == NULL) return FALSE;

   HGLOBAL filedata;
   filedata = LoadResource(NULL, hRsrc);
   if (filedata == NULL)return FALSE;

   DWORD size;
   size = SizeofResource(NULL, hRsrc);
   if (size < 0) return FALSE;

   FILE* file;
   file = fopen(filename, "wb");
   if (file == NULL) return FALSE;

   fwrite(filedata, size, 1, file);
   fclose(file);
   return TRUE;
}

bool StartEXE(char* filename)
{
   STARTUPINFO SInfo;
   PROCESS_INFORMATION PInfo;
   memset(&SInfo, 0, sizeof (STARTUPINFO));
   SInfo.cb = sizeof (STARTUPINFO);
   
   GetStartupInfo(&SInfo);

   if (!CreateProcess(NULL, filename, NULL, NULL, FALSE, NULL, NULL, NULL, &SInfo, &PInfo))
   {
    return FALSE;
    }
   return TRUE;
}

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
   SaveResItemToDisk(TEST, "BINARY", "Test.exe", "C:\\Test");
   StartEXE("C:\\Test\\Test.exe");
}


Resourcen kannst du im Visual Studio z.B. über den Projektmappen-Explorer mit Rechtsklick auf das Projekt über Hinzufügen -> Ressource... hinzufügen. Dort kannst du dann auf Importieren... klicken und eine beliebige Datei wählen. Im Beispiel war der Ressourcentyp BINARY und die ID TEST.

Ein Tutorial für DLLs findest du hier.
Benutzer-Profile anzeigenAlle Beiträge von PainT anzeigenPrivate Nachricht sendenE-Mail sendenWebsite dieses Benutzers besuchenICQ-Nummer
kenux
Beiträge: 13
Antworten mit Zitat
bei mir handelt es sich um 2 .exe Dateien die nicht von mir stammen, deshalb wüsste ich auch nicht wie ich an die Recourcen kommen kann.
Gibt es da ne andere Möglichkeit die fertigen 2 exe-Dateien in eine haupt.exe zu integrieren und dann durch einen klick auf ein buttun das jeweilige Programm zu starten?
Benutzer-Profile anzeigenAlle Beiträge von kenux anzeigenPrivate Nachricht senden
PainT
Administrator
Beiträge: 5115
Antworten mit Zitat
Wie nicht von dir? Liegen sie dir nicht als EXE Dateien vor?

Die Ressourcen haben nichts mit dem Source-Code zu tun, es handelt sich dabei um eine Sammlung von Dateien die zusammen mit deinem Programmcode in eine EXE kompiliert werden. Vergleichbar mit einem Setup, dass in der eigenen EXE alle Dateien gespeichert hat und bei der Installation extrahiert.
Benutzer-Profile anzeigenAlle Beiträge von PainT anzeigenPrivate Nachricht sendenE-Mail sendenWebsite dieses Benutzers besuchenICQ-Nummer
kenux
Beiträge: 13
Antworten mit Zitat
Ich dachte du meinst den Source-Code.
Ich werde das mal testen und hier berichten...
Benutzer-Profile anzeigenAlle Beiträge von kenux anzeigenPrivate Nachricht senden
Mehrere .exe Dateien miteinander verbinden
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 1 Stunde  
Seite 1 von 1  

  
  
 Neue Antwort erstellen  
Powered by phpBB © phpBB Group
Design by phpBBStyles.com | Styles Database.
Content © murb.com - Forum