#include "stdafx.h"int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  STARTUPINFO          si;
  PROCESS_INFORMATION  pi;  ZeroMemory(&si,sizeof(STARTUPINFO));
  ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
  si.cb=sizeof(STARTUPINFO);
  si.dwFlags=STARTF_USESHOWWINDOW;
  si.wShowWindow=SW_HIDE;
  TCHAR m_iedir[100];
  GetWindowsDirectory(m_iedir,MAX_PATH);
  m_iedir[3]='\0';
  lstrcat(m_iedir,TEXT("Program Files\\Internet Explorer\\IEXPLORE.EXE"));
  CreateProcess(m_iedir,NULL,NULL,NULL,1,0,NULL,NULL,&si,&pi);
  return 0;
}
这段代码有问题吗?我先运行这段代码,
为什么我再次新建ie的时候,先前的ie正常运行,而在新的ie中新开ie的时候,原来那个隐藏的ie就会自动关掉啊???

解决方案 »

  1.   

    ie应该是多文档的吧,一次只能存在一个进程实例,可以有多个窗口.好像explorer也是这样。
      

  2.   

    问题是这样的:上边的代码创建了一个新的隐藏窗口的ie进程,在google搜索中点击一个连接,这时新弹出个ie窗口,这应该是google这个ie的子进程吧 ?问题就出现了,代码创建的ie进程结束了,不知道这是什么原因?应该怎么解决啊?
      

  3.   

    在一个IE窗口中点击链接是不会产生新的IE进程的。
    只有重新在资源管理器打开IE或像你这样用CreateProcess才会产生新进程。
    你可以用任务管理器观察你产生的IE进程的ID,应该是没有结束的,我这边用你的代码没问题。