现在的位置: 首页 > 综合 > 正文

MFC怎样编写后台运行的程序

2018年07月17日 ⁄ 综合 ⁄ 共 1309字 ⁄ 字号 评论关闭

MFC怎样编写后台运行的程序

--------------------------------------------------------------- 

http://www.codeproject.com/system/xservice.asp 

--------------------------------------------------------------- 

以下为转载--------- 
1、实现开机自运行 

     我在csdn网站上经常看到有人问这样的问题,其实要实现开机时就自动运行自己的程序并不难。在注册表的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run键下可以看到有一系列键值,它们都是开机自动运行的软件的路径。那么我们要做的就是编程实现将我们的程序的路径也添加到这个键值下,就搞定了。著名的“windows优化大师”也就是用去掉不必要的开机运行软件这个方法来实现开机速度优化的。 
     既然要读写注册表,就要用到两个重要的操作注册表的函数:RegOpenKey()和RegSetValueEx()。前者用于打开注册表的键,后者则为打开的键设置键值,至于这两个API函数的具体参数,请参见MSDN。为了代码重用的要求,我为此封装了一个专门的函数,如下所示: 

BOOL SetAutoRun(CString strPath)//开机自动运行 

    CString str; 
    HKEY hRegKey; 
    BOOL bResult; 
    str=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); 
    if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS) 
        bResult=FALSE; 
    else 
    { 
        _splitpath(strPath.GetBuffer(0),NULL,NULL,str.GetBufferSetLength(MAX_PATH+1),NULL); 
        strPath.ReleaseBuffer(); 
        str.ReleaseBuffer(); 
        if(::RegSetValueEx( hRegKey, 
                            str, 
                            0, 
                            REG_SZ, 
                            (CONST BYTE *)strPath.GetBuffer(0), 
                            strPath.GetLength() ) != ERROR_SUCCESS) 
           bResult=FALSE; 
        else 
     

抱歉!评论已关闭.