Registry Schlüssel wird nicht hinzugefügt! [Gelöst]
-
hey leute,
hab bei diesem code irgendwas falschgemachtHKEY hkey; string weg="explorer.exe, "+getWindowsPath()+"\\SYS\\Programm1.exe, "+getWindowsPath()+"\\SYS\\Programm2.exe"; RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, 0); RegSetValueEx(hkey, "Shell", 0, REG_SZ, reinterpret_cast<BYTE const*>(weg.c_str()), weg.size()); RegCloseKey(hkey);wenn ich das gleiche zeugs in ne .reg datei reinpack und dann hinzufüg funzts problemlos
wenn ichs so compilier und ausführ passiert einfach nix, keine fehlermeldung und nix
-
Ja, Du prüfst keinerlei Rückgabewerte; sonst würdest Du selber rausfinden, an was es liegt...
-
Kann alles mögliche sein. Vielleicht blockt es die UAC, vielleicht dein Antivirensystem. Prüf die Rückgabewerte und du findest es raus.
MfG Tim
-
Fatal Error appears schrieb:
Kann alles mögliche sein. Vielleicht blockt es die UAC, vielleicht dein Antivirensystem. Prüf die Rückgabewerte und du findest es raus.
MfG Tim
wo rückgabewerte prüfen?
-
RegCreateKeyEx / RegSetValueEx
und dann natürlich auch "GetLastError", wenn fehler passiert ist!
-
Jochen Kalmbach schrieb:
RegCreateKeyEx / RegSetValueEx
und dann natürlich auch "GetLastError", wenn fehler passiert ist!lol, ich hab kp was du da meinst
aber kann es sein, dasses nicht geht, weil ich des prog auf nem 32bit rechner gemacht hab und auf nem 64bit ausprobiert hab
aum 32bit funzts aufm 64er nich...
-
Vermutlich suchst Du nur in der *falschen* Registry!
Unter x64 gibt es zwei "Sichten" auf die Registry!Lies mal mein Artikel auf Codeplex:
http://www.codeproject.com/KB/system/Reflection.aspxUnd starte den Regedit aus dem Verzeichnis "C:\Windows\syswow64" und nicht aus "c:\Windows\system32"!
Ach so: Und die Registry Virtualisierung sollte man auch nicht vergessen, falls Dein Programm kein Vista-Manifest hat! (such einfach mal in der gesamten Registry nach Deinem Wert, dann wirst Du ihn schon irgendwo finden).
-
Jochen Kalmbach schrieb:
Vermutlich suchst Du nur in der *falschen* Registry!
Unter x64 gibt es zwei "Sichten" auf die Registry!Lies mal mein Artikel auf Codeplex:
http://www.codeproject.com/KB/system/Reflection.aspxUnd starte den Regedit aus dem Verzeichnis "C:\Windows\syswow64" und nicht aus "c:\Windows\system32"!
Ach so: Und die Registry Virtualisierung sollte man auch nicht vergessen, falls Dein Programm kein Vista-Manifest hat! (such einfach mal in der gesamten Registry nach Deinem Wert, dann wirst Du ihn schon irgendwo finden).
aaaaaaaah, jetzt geht mir ein licht auf

klar, daran hab ich nich gedacht
jetzt denk ich weiß ich wie ich des problem löse...
danke
-
lol, ich bin einfach zu blöd
hab jetzt ne regdatei erstellt sieht für 32 bit so aus:Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Shell"="explorer.exe, %windir%/SYS/svchost.exe, %windir%/SYS/WindowsServices.exe"wie siehts für 64 bit aus?
sry, aber ich hab wirklich kp
habs schon versucht, indem ich einfach die Wow6432Node mit in den Pfad einbau, aber des ändert nix...
-
Da sieht sie genau gleich aus... nur musst Du diese mit eim 64-Bit regedit einfügen...
-
Jochen Kalmbach schrieb:
Da sieht sie genau gleich aus... nur musst Du diese mit eim 64-Bit regedit einfügen...
oh, okay

hätt gedacht es wär komplizierter
danke