reg probleme
-
hi
ich habe in der faq, das über die registry gelesen. Einen schlüssel erstellen kann ich jetzt.
aber ich kann noch keinen wert erstellen (zB für autostart)private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { HKEY hKey; BYTE cString[]="C:\Programme\Programm.exe"; RegSetValueEx(hKey,_T("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"),0,REG_SZ,cString,strlen(cString)+1); }
DIESE FEHLERMELDUNG KOMMT DANN
1>c:\eigene dateien\visual studio 2005\projects\das_spiel\das_spiel\Form1.h(196) : warning C4129: 'P': Nicht erkannte Folge von Escapesequenz
1>c:\eigene dateien\visual studio 2005\projects\das_spiel\das_spiel\Form1.h(196) : warning C4129: 'P': Nicht erkannte Folge von Escapesequenz
1>c:\eigene dateien\visual studio 2005\projects\das_spiel\das_spiel\Form1.h(197) : error C2664: 'strlen': Konvertierung des Parameters 1 von 'BYTE [24]' in 'const char *' nicht möglichund es wäre ganz nett wennmir jemand sagen könnte wie ich einen wert ändere
danke
zapp91
-
Böse Falle:
BYTE cString[]="C:\Programme\Programm.exe";
BYTE cString[]="C:\\Programme\\Programm.exe";
-
erst mal danke für die schnelle antwort, die warnungen sind weg aber der fehler bleibt bestehen
c:\eigene dateien\visual studio 2005\projects\das_spiel\das_spiel\Form1.h(200) : error C2664: 'strlen': Konvertierung des Parameters 1 von 'BYTE [26]' in 'const char *' nicht möglich
-
Dazu schau mal in die FAQ: Konvertierung System::String => char* oder wchar_t*
-
ich bab mir das jetzt mal angeschaut, muss aber ganz ehrlich sagen, ich verstehe nur bahnhof . könntest du mir das vlt ein bisschen erläutern oder mir nen beispielcode schreiben?? bin noch ein neuling
danke
zapp91
-
so ich habs jetzt hinbekommen.
RegSetValueEx(hKey,_T("compgame"),0,REG_SZ,cString,strlen(reinterpret_cast<char*>(cString))+1);
aber ich habe noch eine frage, ich will ja nen autostart in die registry schreiben, aber wenn ich nen wert erstelle, mit dem wert C:\\Programme\\Programm.exe
dann ist der wert immer 㩃氇桰扡敬摮攮數 sowas und der autostart geht nicht... is ja logisch
danke
mfg
zapp91
-
Was für ein Datentyp ist denn cString ?
-
sry das hab ich ganz vergessen, es ist ein BYTE. hiernochmal der gesamte code
BYTE cString[]="C:\\Programm\\Programm.exe"; RegCreateKeyEx(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0); RegSetValueEx(hKey,_T("Programm"),0,REG_SZ,cString,strlen(reinterpret_cast<char*>(cString))+1);
-
BYTE = typdef unsigned char BYTE
-
hat keiner von euch ne idee ist nämlich wirklich wichtig??
-
Warum der reinterpretcast ?
-
das ist nur eine Möglichkeit die ich ausprobiert habe. Ich habe es auch schon so probiert
strlen((char *)cString)+1);
das führt aber zum selben ergebnis.