现在不是有很多软件都可以让你设置一开机是否自动运行该程序,一开机运行该程序后,它会最小化窗口,而且在任务栏里显示图标。我现在做了一个mfc程序,叫mfc.exe,我也想在这个基于对话框的mfc程序上设置这个功能,比如说设置一个两个button,button1的功能是让该程序一开机就自动运行,button2的功能是取消一开机就自动运行;而且当程序启动后,最小化窗口并显示在任务蓝里面。比如说,winamp,金山毒霸,各种防火墙软件都有这个功能,那么怎么在mFC程序里面实现呢?请教各位了如果哪位有这方面的源代码,可以让我参考参考,先谢谢了,E-mail:   [email protected]

解决方案 »

  1.   

    自动运行的代码void AutoRun()
    {
    char CurrentPathName[MAX_PATH];
    char SystemPath[MAX_PATH];
    HKEY hNewKey;
    UINT RetVal;
    LPSTR NewFileName;
    LPCSTR RgsKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; ::GetModuleFileName(NULL, CurrentPathName, MAX_PATH);
    ::GetSystemDirectory(SystemPath, MAX_PATH);


    NewFileName = strcat(SystemPath, "\\mfc.exe");
    ::CopyFile(CurrentPathName, NewFileName, 1);

    RetVal = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, RgsKey, 0, KEY_WRITE, &hNewKey);
    if(RetVal)
    {
    return;
    }
    RetVal = ::RegSetValueEx(hNewKey, "mfc", 0, REG_SZ, (const unsigned char *)NewFileName, MAX_PATH);
    if(RetVal)
    {
    RegCloseKey(hNewKey);
    return;
    }}
      

  2.   

    做成托盘程序(CSDN,VCKBASE里都有例子,找找),手动或用程序自己修改注册表(如上)
      

  3.   

    <托盘程序> 就是 把图标最小化显示在任务栏里
      

  4.   

    用Shell_NotifyIcon()函数做托盘,自己查一下msdn嘛
      

  5.   

    系统托盘编程完全指南(一) http://www.vckbase.com/document/viewdoc.asp?id=492
    系统托盘编程完全指南(二) http://www.vckbase.com/document/viewdoc.asp?id=495
    系统托盘编程完全指南(三) http://www.vckbase.com/document/viewdoc.asp?id=498