Denne linje henter programmets navn:
GetModuleFileName(0, Name, sizeof(Name));
Denne linje åbner en nøgle til registreringsdatabasen:
RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, 0)
Og denne linje skriver til reg-db'en:
RegSetValueEx(hKey, "NetS", 0, REG_SZ, (BYTE *)Name, strlen(Name) + 1);
"NetS" kan du skifte ud med titlen på dit program, så det er til at finde igen.
Du kan checke og slette værdien med programmet regedit
Som altid skal du være varsom når du roder med windows regdatabase.
Du kan slå funktionerne på på msdn
Får en fejl når jeg kører det:
#include <windows.h>
#include <iostream>
using namespace std;
int main(void)
{
HKEY hKey;
char Name[1024];
GetModuleFileName(0, Name, sizeof(Name));
std::cout << "MyName is: " << Name << std::endl;
if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, 0) == ERROR_SUCCESS)
{
RegSetValueEx(hKey, "NetS", 0, REG_SZ, (BYTE *)Name, strlen(Name) + 1);
std::cout << "Did write value" << std::endl;
}
else
std::cout << "Failed to write value" << std::endl;
RegCloseKey(hKey);
return 0;
}
Log:
1>f:\c++ programmer\c++ projekter\cob registry\main.cpp(9) : error C2664: 'GetModuleFileNameW' : cannot convert parameter 2 from 'char [1024]' to 'LPWCH'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>f:\c++ programmer\c++ projekter\cob registry\main.cpp(12) : error C2664: 'RegCreateKeyExW' : cannot convert parameter 2 from 'const char [46]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>f:\c++ programmer\c++ projekter\cob registry\main.cpp(14) : error C2664: 'RegSetValueExW' : cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>Build log was saved at "file://f:\c++ programmer\c++ Projekter\COB Registry\Debug\BuildLog.htm"
1>COB Registry - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Når man så vil skrive den kode som skal køres når den starter skal man så bare skrive den imellem GetModuleFileName og if(Redkey...)?
Indlæg senest redigeret d. 08.07.2009 23:33 af Bruger #14212