Windows C C++ - Autostart program on Boot of computer using the Registry
An example for autostarting your software using the registry - I think it was inspired by http://www.codeguru.com/cpp/w-p/system/registry/article.php/c5677 a long while backā¦
////////////auto-start HKEY hKey; CString sKeyName; unsigned char szFilePathOri[MAX_PATH]; unsigned char szFilePath[MAX_PATH]; GetModuleFileName(AfxGetInstanceHandle(), (char *)szFilePathOri, MAX_PATH); strcpy((char *)szFilePath,"\""); strcat((char *)szFilePath,(char *)szFilePathOri); strcat((char *)szFilePath,"\""); strcat((char *)szFilePath," /autostart"); LONG lnRes = RegOpenKeyEx( HKEY_LOCAL_MACHINE, // handle of open key // The following is the address of name of subkey to open "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0L,KEY_WRITE, &hKey // address of handle of open key ); // now add program path to the RUN key lstrcpy( (char *) szFilePath , LPCTSTR(szFilePath) ); if( ERROR_SUCCESS == lnRes ) { if(code == BST_CHECKED) { lnRes = RegSetValueEx(hKey, LPCTSTR( "my_program" ), // handle of the opened // key to set value for 0, REG_SZ, szFilePath, //value data MAX_PATH ); if(ERROR_SUCCESS == lnRes) ; else { AfxMessageBox("Auto-start on boot set failed"); mydebug::log("Auto-start on boot set failed"); } } else { lnRes = RegDeleteValueA(hKey, LPCTSTR( "WMouseXP" )); if(ERROR_SUCCESS == lnRes) ; else { AfxMessageBox("Auto-start on boot remove failed"); mydebug::log("Auto-start on boot remove failed"); } } } else { AfxMessageBox("Opening of auto-start on boot settings failed"); mydebug::log("Opening of auto-start on boot settings failed"); } ////////////// }
blog comments powered by Disqus
This ClearEvo.com blog is powered by Debian GNU/Linux, running lighttpd, generated using jekyll on Ubuntu.