Neustarten des Programmes!!
-
Moin!
Ich wollte mal fragen, ob es die Möglichkeit gibt sein eigenes Programm neu zu starten.
DANKE
-
atexit sollte dir helfen
-
moin!
Danke für die Antwort.
Aber stimmt die auch?
Aus der msdn wurde ich nicht schlau.
Ich probier es später mal, also falls es noch weitere Vorschläge gibt, immer reinposten!
-
In welchem Fall willst du es denn neu starten? Wenn es beendet wird oder im normalen Betrieb? Der Funktion atexit kannst du eine void-Funktion übergeben, die beim normalen Beenden deines Programms ausgeführt wird. In dieser Funktion könntest du zum Beispiel mit CreateProcess dein eigenes Programm als eigenständigen Prozess erneut starten. Das gleiche gilt für einen Neustart innerhalb der Anwendung, nur dass du dann eben deine alte Programminstanz selbst beendest.
-
es sollte eigentlich für ne Art Minispiel sein.
Falls man Bock auf ein neues Spiel hat, soll das Programm von Vorne starten.
-
das sollte man irgendwie anders lösen - programmier halt eine fkt die alle Werte wieder auf die ausgangswerte zurücksetzt
mich würde interessieren wie ich es schaffen kann das mein Programm nach einem Neustart wieder neu gesartet wird - dabei sollte das Programm nicht bei jeden Neustart automatisch gestartet werden, sondern nur wenn es der user beim beenden des programmes wünscht - was mach ich das am besten? - in die Registrieungsdatei schreiben? - in die Autoexe.bat Datei schreiben? - oder irgendwie anders?
dabei sollte das ganze auch noch auf allen gängigen Windows Betriebssystemen funktionieren und auch, wenn man keine admin rechte hat
-
danke für den Vorschlag aber geht es wirklich nur mit einer Funktion wo ich alle meine 200 Variablen auf den Standartdwert setze?
Er gibt mir nochmal einer ein Codebeispiel für dieses atesit oder so?
-
hast du etwa einfach drauf los programmiert und dann irgendwann festgestellt das man das ganze auch einmal wieder neustarten können soll?
las mal den code sehen - dann kann man dir vielleicht weiterhelfen
-
das geht leider gerade net, weil der Code auf meinem Laptop ist und der ist bei meinem Vater und ich bin bei meiner Mutter und dazwischen liegen rund 20km
-
Er gibt mir nochmal einer ein Codebeispiel für dieses atesit oder so?
Mit atexit() arbeitet man in deinem Fall DEFINITIV nicht
Der Code würde mich übrigens auch mal interessieren, das kann man sicherlich eleganter lösen
-
nach ostern müsste ich wieder hinkommen!
-
Vertexwahn schrieb:
mich würde interessieren wie ich es schaffen kann das mein Programm nach einem Neustart wieder neu gesartet wird - dabei sollte das Programm nicht bei jeden Neustart automatisch gestartet werden, sondern nur wenn es der user beim beenden des programmes wünscht - was mach ich das am besten? - in die Registrieungsdatei schreiben? - in die Autoexe.bat Datei schreiben? - oder irgendwie anders?
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
Dort erstellst du bei der Abfrage, ob das Programm neu gestartet werden soll einen Eintrag, der den Pfad deines Programms enthält. Im Gegensatz zu Run wird das Programm nur beim nächsten Neustart ausgeführt und danach automatisch aus der Liste entfernt. Als eingeschränkter Benutzer hast du auf den Schlüssel auch Zugriff, weil er ja nur den aktuellen Benutzer betrifft.
-
ist es vielleicht auch noch möglich das der neustart so geschiet, dass man sich nicht mehr neu anmeldung muss?
-
Vertexwahn schrieb:
ist es vielleicht auch noch möglich das der neustart so geschiet, dass man sich nicht mehr neu anmeldung muss?
Dieses Privileg haben nur Dienste, unabhängig von angemeldeten Benutzern ausgeführt zu werden. Der entsprechende Dienst müsste dann als solcher "fest" in der Registrierung installiert werden. Was für eine Art von Programm ist denn das, bei dem du das anwenden möchtest?
-
fehrnverwaltung - wenn ich per fehrnverwaltung neustarte wird der client des pcs den ich fernverwalten will nicht mehr gestartet und ich hab keinen zugriff mehr - jetzt kann ich dieses Run Once benutzten - allerdings hab ich dann das Problem mit der Anmeldung - keine Ahnung wie man das am sinnvollsten löst
-
Entweder du schaltest die automatische Anmeldung ein, die natürlich die lokale Loginsicherheit hinfällig macht, oder du nimmst es wirklich "in Angriff", eine Dienstanwendung zu schreiben. Die automatische Anmeldung kannst du einschalten unter Start>Ausführen>"control userpasswords2" und dort den Haken "Benuter müssen Kennwörter eingeben" deselektieren. Einen Windowsdienst würde ich persönlich in C# oder managed C++ schreiben, da dort hilfreiche Klassen/Schnittstellen zur Verfügung stehen, um eine Dienstanwendung mitsamt Installer(der den Dienst im System registriert) zu erstellen. Zum Schreiben einer Dienstanwendung unter C++ kann ich leider kein Wissen vorweisen, ich habe aber den unten stehenden Link gefunden.