Prog automatisch in Autostart
-
naja ok wenns einfacher ist

wie kann man das programm dann wieder aus den autostart entfernen?
-
TRegistry& regkey=*new TRegistry(); regkey.RootKey=HKEY_LOCAL_MACHINE; bool keygood=regkey.OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",false); regkey.LazyWrite=false; if(keygood) { regkey.DeleteValue("Dein Programm"); } regkey.CloseKey(); delete ®key;
-
Wo finde ich TRegistry?
lol
-
Header includen
#include <registry.hpp>Genau sowas steht perfekt in der Hilfe beschrieben.
Gruss
-
regkey.WriteString("Dein Programm",awpath);
bei "Dein programm" muss nicht irgendein Pfad oder sowas oder?
Einfach nur "abc"?
-
Hallo
der vollständige Pfad ist in der Variablen awpath drin.
Das andere ist nur ein beliebiger Name, der angezeigt wird.bis bald
akari
-
Hi Leute,
hab das so gemacht wie damals schon diskutiert und lief bis vor kurzem auch alles wunderbar, nur musste ich jetzt plötzlich feststellen, dass mein Programm, an dem sonst keinerlei Änderungen ausser die mit dem Autostart drin ist, nun plötzlich die ganzen Einstellungsdateien nicht mehr findet und immer bei null beginnt.
Beende ich das Programm und starte es dann neu, gehts super.
Auch wenn ich den Regedit Autostart rausnehme und klassisch eine Verknüpfung unter START->Autostart reinkopier gehts auch super.habt ihr eine Ahnung? verhält sich als Admin genauso wie als User, der Regedit Key ist unter HKEY_LOCAL_MACHINE.
mfg
Tom
-
Hallo,
Normalerweise hat ein NichtAdmin keine Schreibrechte in HKEY_LOCAL_MACHINE. Der Admin kann sowas natürlich ändern.
-
Ok, danke mal für den Hinweis, aber eigentlich geht darum, dass das Programm, egal unter welche Rechten, sobald es aus der Registry gestartet wird, die gespeicherten Einstellungen nicht liest und von null anfängt.
-
Hallo
vermutlich weil beim Start durch die Registry der Arbeitspfad nicht korrekt gesetzt ist, und du sicher auf Konfig-Dateien zugreifst die im Pfad des Programms liegen.
Dann würde es helfen, wenn du beim öffnen der Konfig-Dateien nicht einfach "config.dat" angibst, sondernExtractFilePath(Application->ExeName) + "config.dat"um einen absoluten Pfad zu bekommen.
bis bald
akari
-
Hi, danke mal für den super Tipp, hat mir schon sehr weitergeholfen, jetzt hab ich aber noch ein Problem:
kann ich das ganze auch folgendermaßen machen:
#define SETUP_FILE ExtractFilePath(Application->ExeName)+"setup.txt"bei mir gehts nämlich nicht bei allen ifstreams und ofstreams bekomme ich folgende Fehler:
Keine Übereinstimmung für ifstream::basic_ifstream(AnsiString) gefunden,
oder
Keine Übereinstimmung für ofstream::basic_ofstream(AnsiString) gefundenKann mir da jemand weiterhelfen?
mfg Tom
-
Hallo
Du solltzest ohne wirklich guten Grund in C++ kein define benutzen. Vor allem wenn es dir wie hier gar nichts bringt.
DIe Fehlermeldung besagt nur, das ifstream einen const char* erwartet, also gibst du es ihm
AnsiString setupfile = ExtractFilePath(Application->ExeName) + "setup.txt"; ifstream stream(setupfile.c_str());bis bald
akari