在我的电脑上面电脑启动的时候有两个软件A,B设置了一个开机启动,A启动比较慢,B启动比较快,在B启动的时候我把所有的软件都设置成最小化,那么B执行完了 B就是当前桌面的软件,但是由于B启动得比较快,以至于B启动执行完了 ,A还没有启动,当过一段时间的时候A开始启动,这个时候A就变成当前的桌面程序了。前面做的B把别的软件都设置成最小化的功能对A就不起作用了。 现在我想把 B的启动放慢点,我想在初始化OninitDialog的时候实现一个延时的操作,这段延时完了,再执行让别的软件最小化的操作。我用了:
             for()
      {
        sleep()
         }
但是软件运行一段时间就会死机!不知道是为什么???还有我要实现延时的操作 ,可以怎么写代码??

解决方案 »

  1.   


    while(1)
    {
        if(CheckApplication("A.exe"))
        {
           HideAllApplication();
           break;
        }
        Sleep(100);
    }
      

  2.   

    在A中创建一个命名的事件对象,A启动完成后设置成有事件状态,
    B自动运行注册表项添加一个命令行参数,表明程序是开机启动的,B检测该参数是否存在,如果是自动运行,则等待该事件对象。
      

  3.   

    需求很独特......
    可以让一个启动另一个
    或者启动了,不显示,过一段时间在显示
    或者加个sleep让其等待
    或者......
      

  4.   

    放在CXXXApp::InitInstance()里Sleep试试看.
      

  5.   

    B先启动,然后使用SetTimer
    每100ms检查一下A是否启动完成(可以使用进程见共享内存,锁等)
    如果A启动完成,在对A操作一次
      

  6.   

    你可以用WaitForSingleObject()逐个启动。
      

  7.   

    用B启动A,并在B中使用WaitForInputIdle来等待A界面就绪,然后再B再完成界面显示工作。
      

  8.   

    上面说的很多方法都可以实现啊。B监测一下A,A起来了,把A给最小话掉。