程序开机自动启动,我是把写程序写到启动,并在程序OnInitDialog()中
PostMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0);这样做是可以达到目的。但是存在问题是,如果我退出程序,然后点程序,程序也是最小化到任务栏
现在想做的,点程序启动的话,不要最小化到任务栏,除了开机自动启动,不然就要点程序最小化按钮才可以。
这有办法做吗?

解决方案 »

  1.   

    开机启动写入注册表HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RUN里面,在键值EXE路径后面跟上命令行参数,就类似于在CMD窗口中运行EXE后面跟上命令行参数一样。在程序中解析命令行参数,如果有命令行参数就说明是开机运行的,就执行PostMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0);如果没有就说明是双击执行的,就不执行上面这句最小化。
      

  2.   

    Let the programs put the Start menu submenu -"运行"
      

  3.   


    你能再详细说下吗?在键值EXE路径后面跟上命令行参数,这是什么意思?
      

  4.   

    带命令参数是可以实现的,注册表中exe路径后跟上参数,然后在你程序中判断,如果有参数就最小化运行,否则正常运行
      

  5.   


    就比如你的EXE是c:\\test.exe,那么键值你就写成"c:\\test.exe startup" 在程序中判断命令行参数是否有值。获得命令行参数可以用::GetCommandLine()
      

  6.   

    在你App中的InitInstance()
    CWinApp的类成员变量m_lpCmdLine就是命令参数
      

  7.   


    在OnInitDialog中
    if(lstrcmp(GetCommandLine(), _T("startup"))==0)
    {
        PostMessage;
    }
      

  8.   

    前面发送帖子竟然失败了,悲剧啊.楼主用INI配置文件来做吧,很容易的.写一个INI配置程序放在启动项里面.然后程序启动后,你再初始化的时候做修改即可.逻辑顺序很简单.楼主整理下,缺点是要多写个50行代码的程序.好处是方便的很