Przeanalizowałem materiały, które mi podałeś. Jeśli chodzi o kod, który umieściłem w poprzedniej wypowiedzi jest on poprawny - to znaczy odpaliłem aplikację na systemie Windows XP, po restarcie zgłasza się wraz ze startem systemu.To prawda, że problem o którym rozmawiamy jest związany z dodatkowymi zabezpieczeniami w które wyposażony jest Windows 7. W 7ce wystarczy zaznaczyć opcję uruchamiaj jako administrator i też zadziała.
Informacja jaką znalazłem w rejestrze na temat aplikacji znajduje się w:
HKEY_CURRENT_USER->Software->Classes->Local settings->MuiCache
nazwa to:
lokalizacja z której uruchomiono aplikację czyt. nasze path [wartość domyślna]
dane to:
Project1 czyt. nasze "Project1" [nazwa wartości]
Mam rozumieć, że zawsze będzie się tam dodawało? Myślałem, że będziemy zapisywać informacje o uruchamianiu aplikacji do lokalizacji:
HKEY_LOCAL_MACHINE->Software->Microsoft->Windows->CurrentVersion->Run
-----------------------------------------------------------------------
Próbowałem funkcji którą mi podałeś:
//--- Przycisk zaloguj się do programu --------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Form1->Edit2->Text == Form2->Edit3->Text)
{
HKEY hKey;
if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, NULL, 0, KEY_ALL_ACCESS, NULL,
&hKey, NULL) == ERROR_SUCCESS)
{
String user = Form1->Edit1->Text; // proponowana nazwa użytkownika
String pass = Form1->Edit2->Text; // hasło proponowane przez użytkownika [zweryfikowane]
RegSetValueEx(hKey, user.t_str(), 0, REG_SZ, (PBYTE)(pass.c_str()), (pass.Length() * 2));
RegCloseKey(hKey);
}
}
}
//---------------------------------------------------------------------------
jednak przy próbie kompilacji wyskakuje mi:
[BCC32 Error] Unit1.cpp(23): E2034 Cannot convert 'const wchar_t *' to 'const char *'
Full parser context
Unit1.cpp(18): parsing: void _fastcall TForm1::Button1Click(TObject *)
[BCC32 Error] Unit1.cpp(23): E2342 Type mismatch in parameter 'lpSubKey' (wanted 'const char *', got 'const wchar_t *')
Full parser context
Unit1.cpp(18): parsing: void _fastcall TForm1::Button1Click(TObject *)
także prawdopodobnie mam błąd gdzieś tu:
if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, NULL, 0, KEY_ALL_ACCESS, NULL,
&hKey, NULL) == ERROR_SUCCESS)