当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我是初学者,没多少分 ......
    摘要: 机子配置:c3 1g,128sdram 是我的机子配置低?还是机子的虚拟内存设置不对? 如果是虚拟内存设置不对,如何设置? ......


高手们,这个功能怎么实现谁帮我解决了再给100分

我以前看到过一个程序,如果你试图停止它,它会立即关闭windows。  
   
  现在我急需这个功能,有没有高手能告诉我怎么实现?  
   
  看到这里有些同志可能认为很简单,其实不是,  
  在退出的时候关闭windows并不难,无非就是调个关机函数,  
  这个程序最绝的是能在用vc里的Process   Viewer工具杀掉该进程  
  时它也能立即知道并关闭windows。这一点我研究了很久都不知道  
  如何实现???一个程序怎么能知道自己的进程什么时候被杀掉呢???  
 

NO.1   作者: Mackz

等。

NO.2   作者: masterz

create   a   second   process   to   moniter   your   first   instance,    
  CApp   firstInst:    
  check   its   command   line,   if   no   argument,   it   is   the   first   process,   create   CApp   secondInst;   pass   firstInst.ProcessID   to   secondInst.  
  the   secondInst   waitfor   the   event   of   unexpected   termination   of   firstInst.  
   
  DWORD   CALLBACK   CApp::ListenThreadProc(void   *   para)  
  {  
  HANDLE   hProcessToListen   =   (HANDLE)para;  
  for(;;)  
  {  
  WaitForSingleObject(hProcessToListen,INFINITE);  
  if(gs_CloseApp)  
  {  
  g_Log.Debug("%s:%d     ListenThreadProc()   stop",__FILE__,__LINE__);  
  SetEvent(m_hEvevtCanPopup);  
  return   0;  
  }  
  hProcessToListen   =   CreateBuddy(theApp.IsMonitorProcess());  
  SetEvent(m_hEvevtCanPopup);  
  }  
  return   0;  
  }    
   
  HANDLE   CApp::CreateBuddy(bool   bmonitor)  
  {  
  //   if   bmonitor   =true,   its   budy   is   main   app  
  //   otherwise   its   budy   is   monitor   only  
  STARTUPINFO   StartInfo;  
  PROCESS_INFORMATION   pinfo;  
  char   filename[MAX_PATH];  
  char   para[MAX_PATH]={0};  
   
  GetModuleFileName(NULL,filename,MAX_PATH);  
  if(bmonitor)  
  sprintf(para,"%X",GetCurrentProcessId());  
  else  
  sprintf(para,"%X     %s",GetCurrentProcessId(),monitor_server_param);  
  // g_Log.Debug("%s:%d   parameter   is   %s",__FILE__,__LINE__,para);  
  memset(&StartInfo,0,sizeof(STARTUPINFO));  
  StartInfo.cb   =   sizeof(STARTUPINFO);  
   
  if(   !   CreateProcess(  
  filename,  
  para,  
  NULL,  
  NULL,  
  FALSE,  
  NORMAL_PRIORITY_CLASS,  
  NULL,  
  NULL,  
  &StartInfo,  
  &pinfo)   )//创建进程失败  
   
  return   NULL;  
   
  return   pinfo.hProcess;  
  }  
   
  the   above   code   is   not   exactly   meet   your   requirement,   just   a   referrence.

NO.3   作者: free_card

up

NO.4   作者: NowCan

我怀疑还有别的进程或线程在监视这个程序。  
 

NO.5   作者: shaolunyuan

NO.6   作者: shilong

那我先关   掉你的监视进程  
  再关主进程.............

NO.7   作者: shilong

难道互相监视???

NO.8   作者: o_racle

up

NO.9   作者: BlueSky2008

mark

NO.10   作者: diabloqin

study

NO.11   作者: fbmsf

建几个进程,让他们循环的监视

NO.12   作者: o_racle

up


 ·在mfc中关于文件操作()    »显示摘要«
    摘要: 有一config.txt文件,如下很多行: ........ master 1 server 0 username bluehairgu password gly12459 char 0 .............. 我想就特定一行,比如说,master 1 这一行中。。改变后面的数字。。 需要怎么做?? 注意, 是改变,不是插入一行!! 请说明白点。。谢谢~~~ 我的想法是,用cstdi......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE