RegistryWert erstellt, zeigt aber keine Wirkung.
-
RegSetValueEx(hkey,"AutoAdminLogon",0,REG_SZ,"1",4);
Das ist schonmal Blödsinn.
"1" ist nicht 4 Byte lang sondern 2.
Und check mal Returnwerte.
-
Vielen Dank, die Änderung in 2Byte hat mein Problem behoben, zur Verständniss verstehe ich nun nur nicht, wieso mir sizeof("1) den Wert 4 als Größe liefert?
Grüße
Fabian
-
Weil "1" selbst ein Zeiger ist und sizeof Dir die Größe des Zeigers liefert.
-
Ok, danke für eure Hilfe
Grüße
Fabian
-
Martin Richter schrieb:
Weil "1" selbst ein Zeiger ist und sizeof Dir die Größe des Zeigers liefert.
"1" ist kein Zeiger sondern ein String-Litertal, und als solcher ein Char-Array.
Und es sollte mMn. auch weder insizeof("1")
noch in(sizeof "1")
zu einem Zeiger zerfallen... weder in C noch in C++.
-
PythonF schrieb:
Nur nebenbei würde es mir ebenfalls helfen, falls jemand eine Funktion wüsste um zu überprüfen ob es sich um ein x64 oder x86 system handelt.
Der Vollständigkeit halber:
IsWow64Process()
-
@Swordfish
Vorausgesetzt deine Anwendung ist sicher eine 32 Bit Anwendung
-
Boah, wenns x64 is laufts auf x86 eh ned ...
-
Naja aber wenn du eine Anwendung hast die du sowohl für x86 als auch für x64 kompilierst und darin eine Unterscheidung von 32/64 Bit Systemen brauchst musst du für die 64 Bit Version einen anderen Codepfad nutzen.
Oder wenn du - weswegen auch immer - dein Programm von 32 Bit auf 64 Bit umstellst musst du darauf achten.
-
Danke für die Aufklärung. Ist ja nicht so als obs in meinem Link als erster Community Comment stünd...
MSDN schrieb:
Tested: WinXP, Vista, Win7, Win8(RP) both 32 & 64 bits on VMs
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); BOOL Is64BitWindows() { #if defined(_WIN64) return TRUE; // 64-bit programs run only on Win64 #elif defined(_WIN32) // 32-bit programs run on both 32-bit and 64-bit Windows // so must sniff BOOL f64 = FALSE; LPFN_ISWOW64PROCESS fnIsWow64Process; fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(GetModuleHandle(_T("kernel32")),"IsWow64Process"); if(NULL != fnIsWow64Process) { return fnIsWow64Process(GetCurrentProcess(),&f64) && f64; } return FALSE; #else return FALSE; // Win64 does not support Win16 #endif }