Frage zu Registrierungseinträgen
-
Hi,
ich wollte mal wissen ob einer eine Funktion kennt mit der man Registrierungseinträge für den Autostart erstellen kann.
Wär echt nett wenn mir einer einen Code dafür zeigen könnte.
mfg XKC_Doom
-
STDMETHODIMP CRegistryHelper::setRunOnceKey(BSTR fileName, BSTR description)
{
CRegKey regKey;
LONG res = regKey.Create(
HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce"));if(res == ERROR_SUCCESS)
{
res = regKey.SetStringValue(OLE2T(description), OLE2T(fileName));
if(res == ERROR_SUCCESS )
return S_OK;
}
return HRESULT_FROM_WIN32(res);
}
-
Sind da irgent welche speziellen Include Dateien erforderlich?
-
atlbase.h für CRegKey
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Auch wenn ich dich vielleicht Nerve(srry), aber wenn ich diese Funktion außerhalb von int main() schreibe bekomme ich 6 Fehler und innerhalb der mainfunktion erhalte ich 2 Fehler. Die Fehler sehen folgendermaßen aus:
Innerhalb der mainfunktion:
error C2653: 'CRegistryHelper' : Keine Klasse oder Namespace
error C2601: 'setRunOnceKey' : Lokale Funktionsdefinitionen sind unzulaessigAußerhalb der mainfunktion:
error C2653: 'CRegistryHelper' : Keine Klasse oder Namespace
error C2039: 'SetStringValue' : Ist kein Element von 'CRegKey'
siehe Deklaration von 'CRegKey'
error C2065: '_lpw' : nichtdeklarierter Bezeichner
error C2440: '=' : 'unsigned short *' kann nicht in 'int' konvertiert werden
Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
error C2065: '_convert' : nichtdeklarierter Bezeichner
error C2440: '=' : 'unsigned short *' kann nicht in 'int' konvertiert werden
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformatpls hilf mir.:)
-
FAQ http://www.c-plusplus.net/forum/viewtopic-var-t-is-39373.html
afaik müsste es der schlüssel hklm/currentversion/microsoft/windows/run sein
-
Den Code nur kopieren bringt dich nicht weit.
Du hast die Funktion aus dem Beispiel übernommen...
Die bezieht sich aber auf das individuelle Projekt
CRegistryHelper!! Und die Funktion ist logischerweise
auch erst in DEINEM Projekt anzulegen.

in diesem Sinne
cpp
-
so, ich hab jetzt folgenden code:
//initialisierung des Schlüssels mit Ordnerangabe
HKEY hKey;
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run\\Test1",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0);//Name des Schlüssels + wert
BYTE cString[]="xxxxx";
RegSetValueEx(hKey,"EintragsName",0,REG_SZ,cString,strlen(cString)+1);//schließen des schlüssels
RegCloseKey(hKey);Das problem ist, das ich immer noch folgenden Fehler bekomme:
error C2664: 'strlen' : Konvertierung des Parameters 1 von 'unsigned char [87]' in 'const char *' nicht moeglichDie Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
PLS Leute sagt mal wo der Fehler liegt und wie ich ihn berichtigen muss.