Hi,
mich kennt ihr ja schon :facepalm:
Mal wieder ein Problem, zu dem ich nach 3 Stunden googlen nichts gefunden habe (sagt mal gibts da ne versteckte Funktion um das zu finden, was man sucht oder was?)!
Ohne lange um den heißen Brei zu reden, mein Problem:
Ich wollte den Launcher nicht mehr vom Verzeichnis abhängig machen.
Da der Pfad eines Unterordners vom Spiel in der Registry steht, wollte ich damit den Pfad bekommen.
Der Schlüsselpfad ist richtig und auch die Typen etc.
Hier der Code:
So ähnlich habe ich es erst selbst formuliert.
Dann habe ich ein fertiges Beispiel genommen.
Ich habe mit und ohne Adminrechte ausgeführt.
Und trotzdem failt RegOpenKey!
Wenn ich das im VS Debugger lese, steht da etwas bei hKey, nämlich (0x00000000=unused???) und dann in rot "Der Ausdruck kann nicht ausgewertet werden!".
Ok, ist klar beim Wert 0.
Aber wie gesagt die Funktion failt und ich finde einfach keine andere Fehlerquelle, aber das muss doch gehen.
Selbst in der MSDN ist der HKEY nicht großartig anders initialisiert.
In der MessageBox wird Error:0 ausgegeben.
Eigentlich ist 0 doch der Wert, dass es klappt; hier gehts aber nicht -.-
Und selbst wenn ich in der Abfrage den Wert 0 abfragen würde, käme ja immernoch der Crash vom Launcher, der auch kommt, wenn ich die Abfrage ganz weglasse.
Mal wieder Danke im Voraus.
mich kennt ihr ja schon :facepalm:
Mal wieder ein Problem, zu dem ich nach 3 Stunden googlen nichts gefunden habe (sagt mal gibts da ne versteckte Funktion um das zu finden, was man sucht oder was?)!
Ohne lange um den heißen Brei zu reden, mein Problem:
Ich wollte den Launcher nicht mehr vom Verzeichnis abhängig machen.
Da der Pfad eines Unterordners vom Spiel in der Registry steht, wollte ich damit den Pfad bekommen.
Der Schlüsselpfad ist richtig und auch die Typen etc.
Hier der Code:
PHP Code:
HKEY hKey = 0;
char buf[255] = {0};
DWORD dwType = 0;
DWORD dwBufSize = sizeof(buf);
if( RegOpenKey(HKEY_CURRENT_USER,_T("HKEY_CURRENT_USER\\Software\\Ahnlab\\HShield"),&hKey) == ERROR_SUCCESS)
{
dwType = REG_SZ;
RegQueryValueEx(hKey,_T("(Standard)"),0, &dwType, (BYTE*)buf, &dwBufSize);
path = *buf;
}
else
{
CString str;
str.Format(L"Error: %i",GetLastError());
AfxMessageBox(L"Fehler beim Auslesen der Registry!/An Error occurred while reading the Registry!");
AfxMessageBox(L"Wende dich an MrSm!th bei epvpers/Contact MrSm!th on epvpers");
MessageBox(str,L"Error!",MB_OK);
So ähnlich habe ich es erst selbst formuliert.
Dann habe ich ein fertiges Beispiel genommen.
Ich habe mit und ohne Adminrechte ausgeführt.
Und trotzdem failt RegOpenKey!
Wenn ich das im VS Debugger lese, steht da etwas bei hKey, nämlich (0x00000000=unused???) und dann in rot "Der Ausdruck kann nicht ausgewertet werden!".
Ok, ist klar beim Wert 0.
Aber wie gesagt die Funktion failt und ich finde einfach keine andere Fehlerquelle, aber das muss doch gehen.
Selbst in der MSDN ist der HKEY nicht großartig anders initialisiert.
In der MessageBox wird Error:0 ausgegeben.
Eigentlich ist 0 doch der Wert, dass es klappt; hier gehts aber nicht -.-
Und selbst wenn ich in der Abfrage den Wert 0 abfragen würde, käme ja immernoch der Crash vom Launcher, der auch kommt, wenn ich die Abfrage ganz weglasse.
Mal wieder Danke im Voraus.