我在一个进程中,创建了一个新进程,新进程是一个对话框,
我想产生这个新进程后就隐藏或者最小化该进程对象?
因为这个进程是个对话框 ,所以不想让他显示出来,产生即隐藏
请问,用哪个函数可以做到这些
谢谢
在线等..........

解决方案 »

  1.   

    在 OnInitDialog 中 ::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, WS_EX_TOOLWINDOW); 

    wp.length=sizeof(WINDOWPLACEMENT); 
    wp.flags=WPF_SETMINPOSITION; 
    wp.showCmd=SW_HIDE; 
    SetWindowPlacement(&wp); 

    return TRUE;  // return TRUE  unless you set the focus to a control
    }
      

  2.   

    我要隐藏或者最小化新产生的新进程对象,这个是隐藏主进程对象。
    主进程不变,产生的新进程最小化或者隐藏,我只有新进程的exe文件。
    所以只在主进程里掉用,然后可以获得HANDLE
    得不到HWND
    不知道怎么隐藏他
    查了一下 所有隐藏窗口的函数都需要HWND
    可我创建新进程时只得到了HANDLE
    谢谢
    等.........
      

  3.   

    PROCESS_INFORMATION pi;
    STARTUPINFO si;
    si.cb = sizeof(STARTUPINFO);
    si.lpReserved = NULL;
    si.lpDesktop = NULL;
    si.dwFlags = 0;
    si.lpReserved2 = NULL;
    si.cbReserved2 = 0;
    si.lpTitle = NULL;
    bool success = CreateProcess("E:\\项目工程代码\\高丽开元\\高丽开元\\IBS-100天demo\\server\\IBSTrailDebuger.exe",
                              NULL,
      NULL,
      NULL,
      FALSE,
      0,
      NULL,
      NULL,
      &si,
      &pi);
        if (!success)
    {
    AfxMessageBox("启动进程有误!!!");
    }
    HANDLE hprocess = pi.hProcess;
    得到了HANDLE ,怎么隐藏他呢
    谢谢
      

  4.   

    你可以使用ShellExecute 带 SW_HIDE 参数来运行
      

  5.   

    ::ShellExecute(this->m_hWnd, "IBSTrailDebuger.exe", "E:\\项目工程代码\\高丽开元\\高丽开元\\IBS-100天demo\\server\\", NULL, NULL, SW_HIDE);
    应该可以
      

  6.   

    HINSTANCE m=::ShellExecute(this->m_hWnd, "open","IBSTrailDebuger.exe", NULL, "E:\\项目工程代码\\高丽开元\\高丽开元\\IBS-100天demo\\server\\", SW_SHOWNORMAL);
    刚才写错了
      

  7.   

    谢谢
    我试了一下
    不能隐藏,用
        HINSTANCE m=::ShellExecute(this->m_hWnd, 
                            NULL,
    "IBSTrailDebuger.exe", 
    NULL, 
    "E:\\项目工程代码\\高丽开元\\高丽开元\\IBS-100天demo\\server\\", 
    SW_HIDE );
    和用SW_SHOW一个效果,窗口正常显示 
    可以达到最小化的功能
    这是什么原因呢?
      

  8.   

    HINSTANCE m=::ShellExecute(this->m_hWnd, 
                            "open",
    "dddddd.exe", 
    NULL, 
    "c:\\", 
     SW_HIDE);
    为什么这样调用窗口会正常显示呢?
    不是应该隐藏么,为什么还是正常显示
    其他的参数都可以完成各自的 功能
    为什么不能隐藏呢?
      

  9.   

    我要做一个系统
    因为是用了别人的中间件
    中间件是一个exe文件
    必须让他启动
    但是中间件的界面是没有用处的
    所以我想让他启动就隐藏
    但是用ShellExecute却隐藏不了
    帮帮忙
    我应该怎么做呢?
      

  10.   

    我用这个来搜索句柄
    为什么还是不行
    {
    PROCESS_INFORMATION pi;
    STARTUPINFO si;
    si.cb = sizeof(STARTUPINFO);
    si.lpReserved = NULL;
    si.lpDesktop = NULL;
    si.dwFlags = 0;
    si.lpReserved2 = NULL;
    si.cbReserved2 = 0;
    si.lpTitle = NULL;
    bool success = CreateProcess("e:\\IBSTrailSet.exe",
                              NULL,
      NULL,
      NULL,
      FALSE,
      0,
      NULL,
      NULL,
      &si,
      &pi);
        if (!success)
    {
    AfxMessageBox("启动进程有误!!!");
    }
       dprocess = pi.dwProcessId;
    EnumWindows((WNDENUMPROC)EnumWindowsProc,NULL);
    }
    BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
    {
    char title[100];
    DWORD procID;GetWindowThreadProcessId(hwnd,&procID);
    if (dprocess == procID)
    {
    AfxMessageBox("founded");
    }
    return TRUE;
    }
    用这些为什么找不到我要找的进程ID呢?
    一直不显示founded
    求助