永发信息网

VC++程序中实现程序的自启动

答案:2  悬赏:20  手机版
解决时间 2021-12-21 13:45
  • 提问者网友:玫瑰园
  • 2021-12-20 22:41
有一个服务端程序,希望他能开机自启动,但不知道怎么添加代码来实现这个功能,希望高手能帮忙指教,帮忙实现定重谢
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-12-20 23:41
在你的程序一定能被执行到的地方添加以下代码就可以了。
TCHAR m_fileName[100];
// CString m_fileName;
GetModuleFileName(NULL,m_fileName,100);//获得程序路径
HKEY hKey;
CString str = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
if (ERROR_SUCCESS != RegCreateKey(HKEY_LOCAL_MACHINE, str, &hKey))
{
MessageBox(_T("打开注册表项失败"));
RegCloseKey(hKey);
return;
}
int length = 0;
while(m_fileName[length]!=_T('\0'))
length++;
if (ERROR_SUCCESS != RegSetValueEx(hKey, _T("MyAutoRun"), 0, REG_SZ, (const BYTE *)m_fileName, sizeof(TCHAR)*length))
{
MessageBox(_T("写注册表失败"));
RegCloseKey(hKey);
}
RegCloseKey(hKey);
全部回答
  • 1楼网友:低音帝王
  • 2021-12-21 00:56
(2) sdk 函数 shgetfileinfo 获得有关文件的 很多信息, 如大小图标, 属性, 类型等. example(1) : 在程序窗口左上角显示 notepad 图标. void csampleview: ondraw(cdc * pdc){if( : : shgetfileinfo(_t("c: \\pwin95\\notepad. exe") , 0, & stfileinfo, sizeof(stfileinfo) , shgfi_icon) ){pdc ->drawicon(10, 10, stfileinfo. hicon) ;}}example(2) : 同样功能, use extracticon function void csampleview: : ondraw(cdc *pdc){hicon hicon=: : extracticon(afxgetinstancehandle() , _t ("notepad. exe") , 0) ; if (hicon & & hicon! =(hicon) -1) pdc->drawicon(10, 10, hicon) ;}说明: 获得notepad. exe 的路径正规上来说用 getwindowsdirectory 函数得到, 如果是调用 win95 下 的画笔, 应该用访问注册表的方法获得其路径, 要作成一个比较考究的程序, 考虑应该全面点.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯