我用下面的方法(也就是修改注册表的方法)实现了我得程序在开机后自动运行,可是现在我想用VC再实现这个程序开机后不自动运行,请问我该怎么办?谢谢!
/******************
char * strRegName[5] ={"SOFTWARE","Microsoft","Windows","CurrentVersion","Run"};
HKEY hKey = HKEY_LOCAL_MACHINE;
HKEY hSubKey;
int indx = 0;
long lRC;
char svBuffer[256];
char strFileName[] = "YourProgram.Exe";
DWORD dwSize = 256;
BOOL bReg = FALSE;
while(1)
{
lRC = RegOpenKeyEx(hKey, strRegName[indx], 0,
KEY_READ | KEY_WRITE, &hSubKey) ;
if(lRC != ERROR_SUCCESS)
{
RegCloseKey(hKey);
return -1;
}
hKey = hSubKey;
indx++;
if (indx >= 5)
break;
}
lRC = RegQueryValueEx(hKey, "YourProgram", NULL, NULL,
(BYTE *)svBuffer, &dwSize);
if (lRC != ERROR_SUCCESS)
{
lRC = RegSetValueEx (hKey, "YourProgram", 0, REG_SZ,
(BYTE *)strFileName,strlen(strFileName));
bReg = FALSE;
}
else
bReg = TRUE;
/******************
char * strRegName[5] ={"SOFTWARE","Microsoft","Windows","CurrentVersion","Run"};
HKEY hKey = HKEY_LOCAL_MACHINE;
HKEY hSubKey;
int indx = 0;
long lRC;
char svBuffer[256];
char strFileName[] = "YourProgram.Exe";
DWORD dwSize = 256;
BOOL bReg = FALSE;
while(1)
{
lRC = RegOpenKeyEx(hKey, strRegName[indx], 0,
KEY_READ | KEY_WRITE, &hSubKey) ;
if(lRC != ERROR_SUCCESS)
{
RegCloseKey(hKey);
return -1;
}
hKey = hSubKey;
indx++;
if (indx >= 5)
break;
}
lRC = RegQueryValueEx(hKey, "YourProgram", NULL, NULL,
(BYTE *)svBuffer, &dwSize);
if (lRC != ERROR_SUCCESS)
{
lRC = RegSetValueEx (hKey, "YourProgram", 0, REG_SZ,
(BYTE *)strFileName,strlen(strFileName));
bReg = FALSE;
}
else
bReg = TRUE;
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\RUN
里面咔咔掉的方法,很好用,谢谢!