WinExec("c:\\Program Files\\Ethereal\\tethereal.exe -a duration:5 -w dd2.pcap -S -V ",1);
这句话的意思是VC调用一个抓包程序,抓50秒,抓完后保存在dd2.pcap文件中,但是在VC中调用这句话,程序没有结束,所以也就无法保存文件。我在DOS下直接执行c:\Program Files\Ethereal\tethereal.exe -a duration:5 -w dd2.pcap -S -V
是可以抓包,并且保存的请问各位高手这是什么原因啊??

解决方案 »

  1.   

    CreateProcess怎么玩,举个例子,小弟不懂啊
      

  2.   

    看你WinExec是否传递正确的参数进去...
      

  3.   


    PROCESS_INFORMATION pi;
    STARTUPINFO si;
    ZeroMemory(&si,sizeof(si)); si.cb=sizeof(si);
    si.wShowWindow=SW_SHOW;
    si.dwX=si.dwY=0;
    si.dwFlags=STARTF_USEPOSITION|STARTF_USEFILLATTRIBUTE;
    CreateProcess("c:\\Program Files\\Ethereal\\tethereal.exe","-a duration:5 -w dd2.pcap -S -V",NULL,FALSE,NULL,
    DEBUG_ONLY_THIS_PROCESS,NULL,NULL,&si,&pi);
      

  4.   

    Tr0j4n你好
    现在的问题是
    我调用WinExec("c:\\Program Files\\Ethereal\\tethereal.exe -a duration:5 -w dd2.pcap -S -V ",1);程序就开始执行抓包,但无法结束我调用你的代码
     PROCESS_INFORMATION pi;
            STARTUPINFO si;
            ZeroMemory(&si,sizeof(si));        si.cb=sizeof(si);
            si.wShowWindow=SW_SHOW;
            si.dwX=si.dwY=0;
            si.dwFlags=STARTF_USEPOSITION|STARTF_USEFILLATTRIBUTE;
            CreateProcess("c:\\Program Files\\Ethereal\\tethereal.exe","-a duration:5 -w dd2.pcap -S -V",NULL,FALSE,NULL,
                DEBUG_ONLY_THIS_PROCESS,NULL,NULL,&si,&pi);
    程序没有开始执行抓包啊??
      

  5.   

    我现在通过调用WinExec("c:\\Program Files\\Ethereal\\tethereal.exe -a duration:5 -w dd2.pcap -S -V ",1);可以抓包了,并且可以保存报文了。
    但是有一个问题,运行完后DOS窗口停留在那边,敲任意键才能退出,有没有什么办法,运行完成后,自动关闭DOS窗口啊请各位高手指教啊!!!
      

  6.   

    FindWindow找到CMD的窗口,然后SendMessage发送一个字符过去
      

  7.   

    ok了,抓包文件直接保存在VC目录下了,没注意看,谢谢大家了