Exe zur Zeitsynchronisation in Programm einbinden



  • Hi!
    Ich hab ein Programm geschrieben, das die Systemzeit zu diversen Berechnungen verwendet. Nun möchte ich gerne noch per Knopfdruck die Zeit mit einem Internetzeitserver synchronisieren.
    Ich hab keinen Quellcode dazu gefunden, aber eine .exe Datei die mit dem Parameter /leise die Zeit im stillen Synchronisiert. Das könnte ich ja ganz einfach mit EinExec realisieren, aber ich hätte am Ende gerne beide Programme (also meins und das zur Synchronisation der Zeit) in einer Exe. Kann man das irgendwie verbinden?

    LG

    (benutze Visual Studio .NET und bin blutiger Anfänger 😕 )



  • ..oder gibt es da keine Möglichkeit? 😞



  • Also ich weiß nich ob das geht, aber ich meine man könnte eine exe in die resourcen laden und sie dann auch mit kompilieren. Aber wie das geht weiß ich auch net. Kannst ja ma googeln oder in der faq gucken.

    MFG

    Hansi



  • hmm ich hab schon wie wild gegoogled und hier im Forum find ich leider auch nix. Naja, ich werd nachher mal einfach ein wenig herumprobeiren.. 🙄

    Gruß



  • Nein, das geht nicht, du müsstest einen eigenen Emulator mit Bios, etc schreiben 😉
    Du könntest allerdings das Synchronisier-Programm (wie schon gesagt) als eine Ressource einbinden und dann extrahieren, wenn dein Programm gestartet wirst.
    Dann könntest du es normal starten und dannach löschen.

    Grüße Rapha



  • schade, dann geht das wohl nicht. Könnt ihr mir villeicht noch kurz erklären wie man das als Ressource einbindet und entpackt? oder villeicht nen Tutorlink geben? Hab mir schon die Funger wundgegoogled, aber werd nicht fündig 😕



  • Hi,

    eine Exe Datei importierst du so in die Ressourcen:
    - Rechtsklick im Ressourcenregister->Importieren->.exe Datei wählen
    - Als Ressourcentyp etwas eingeben und für später merken (z.b. "EXE")

    Mit folgender Funktion kannst du auf die Bytes in der Ressource zugreifen (einfach dann mit CFile in einer Datei speichern):
    ps. Hab die Funktion für ne Textdatei geschrieben, müsste aber auch für binäre Ressourcen funktionieren:

    CString GetRessource()
    {
    	HRSRC hResource = FindResource(NULL, MAKEINTRESOURCE(IDR_DEINE_RESSOURCENID), "das, was du dir gemerkt hast z.b. EXE");
    	HGLOBAL hResourceLoaded = LoadResource(NULL, hResource);
    	char* lpResLocked = (char*) LockResource(hResourceLoaded);
    	if(strlen(lpResLocked) == 0)
    	{
    		MessageBox("Fehler!!!!\nDie Datei patch.exe ist fehlerhaft.", "Patchfehler", MB_OK | MB_ICONSTOP);
    		return NULL;//End(0);
    	}
    	return lpResLocked;
    }
    

    Grüße Rapha



  • Dankeschöön 🙂
    ..ich werds mal ausprobieren.


Anmelden zum Antworten