1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// schreiben
char dir[MAX_PATH];
GetModuleFileNameA(0, dir, MAX_PATH);
HKEY hkey;
RegCreateKeyEx(HKEY_CURRENT_USER,wxT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, 0);
RegSetValueExA(hkey, "path", 0, REG_SZ, (BYTE*)&dir, strlen(dir));
RegCloseKey(hkey);
// löschen
HKEY hkey;
RegOpenKeyExA(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&hkey);
RegDeleteValueA(hkey, "path");
//lesen
DWORD datalen = MAX_PATH;
BYTE data[MAX_PATH] = "";
HKEY hkey;
if(RegOpenKeyExA(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&hkey) == ERROR_SUCCESS)
{
if(RegQueryValueExA(hkey, "path", NULL, 0, data, &datalen) == ERROR_SUCCESS)
{
std::string dir;
char buffer[MAX_PATH];
for(int i = 0; i < MAX_PATH; i++)
buffer[i] = data[i];
dir = buffer;
dir.erase(dir.find("programm.exe"));
SetCurrentDirectoryA(dir.c_str());
}
RegCloseKey(hkey);
}
|