• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 505  文章 - 1034  trackbacks - 0
            <2008年12月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910


            子曾經(jīng)曰過(guò):編程無(wú)他,唯手熟爾!

            常用鏈接

            留言簿(94)

            隨筆分類(649)

            隨筆檔案(505)

            相冊(cè)

            BCB

            Crytek

            • crymod
            • Crytek's Offical Modding Portal

            Game Industry

            OGRE

            other

            Programmers

            Qt

            WOW Stuff

            搜索

            •  

            積分與排名

            • 積分 - 914467
            • 排名 - 14

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            FindWindow取得句柄
            GetProcessThreadProcessId 取得進(jìn)程id

            用下面的函數(shù)取得進(jìn)程路徑(網(wǎng)上找的,還未測(cè)試)
              char   *GetProcPath(DWORD   ProcId)  
              {  
              
            static   char   ProcPath[MAX_PATH],*pstr,id[2];  
              HANDLE   hProc;  
              DWORD   dw;  
              unsigned   
            int   offset;  
              pstr
            =ProcPath+1;  
              memset(ProcPath,
            0,MAX_PATH);  
              ProcPath[
            0]='   ';  
              hProc
            =OpenProcess(PROCESS_VM_READ,0,ProcId);  
              
            if(hProc==NULL)return   NULL;  
              ReadProcessMemory(hProc,(LPCVOID)
            0xbffcade4,&offset,4,&dw);  
              ReadProcessMemory(hProc,(LPCVOID)offset,
            &offset,4,&dw);  
              ReadProcessMemory(hProc,(LPCVOID)(offset
            +0x40),&offset,4,&dw);  
              ReadProcessMemory(hProc,(LPCVOID)(offset
            +8),&offset,4,&dw);  
              ReadProcessMemory(hProc,(LPCVOID)offset,pstr,MAX_PATH,
            &dw);  
              
            if(pstr[0]==0)  
                ReadProcessMemory(hProc,(LPCVOID)
            0x620298,pstr,MAX_PATH,&dw);  
                 
              CloseHandle(hProc);  
              
            if(*pstr==0)return   NULL;  
              
            if(*pstr!='\"')pstr--;  
              
            return   pstr;  
              }   

            本exe的路徑
            GetModuleFileName ?
            GetCurrentDirectory ?
            posted on 2008-01-27 02:54 七星重劍 閱讀(811) 評(píng)論(3)  編輯 收藏 引用 所屬分類: IDE -- visual c++

            FeedBack:
            # re: 判斷同目錄下的某個(gè)exe是否在執(zhí)行 2008-01-27 21:48 代李
            #include <Psapi.h>
            CString GetProcessNameByID( DWORD processID )
            {
            TCHAR szProcessName[MAX_PATH] = TEXT("");

            // Get a handle to the process.

            HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
            PROCESS_VM_READ,
            FALSE, processID );

            // Get the process name.

            if (NULL != hProcess )
            {
            HMODULE hMod;
            DWORD cbNeeded;

            if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
            &cbNeeded) )
            {
            //GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(TCHAR) );
            GetModuleFileNameEx(hProcess,hMod,szProcessName,sizeof(szProcessName)/sizeof(TCHAR));
            }
            }

            // Print the process name and identifier.
            TRACE(TEXT("%s (PID: %u)\n"), szProcessName, processID );
            _tprintf( TEXT("%s (PID: %u)\n"), szProcessName, processID );

            CloseHandle( hProcess );
            return CString(szProcessName);
            }
            //************************************
            // Method: CheckProcessIsAlive
            // FullName: CheckProcessIsAlive
            // Access: public
            // Returns: bool
            // Qualifier: 檢查對(duì)應(yīng)路徑的程序是否在進(jìn)程列表中
            // Parameter: CString filePath
            //************************************
            bool CheckProcessIsAlive(CString filePath)
            {
            //////////////////////////////////////////////////////////////////////////
            /*
            * 遍歷所有進(jìn)程 得到進(jìn)程ID 通過(guò)ID 得到模塊名字
            */

            HANDLE Snapshot;
            Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
            //獲得某一時(shí)刻系統(tǒng)的進(jìn)程、堆(heap)、模塊(module)或線程的快照信息
            PROCESSENTRY32 processListStr;
            processListStr.dwSize=sizeof(PROCESSENTRY32);
            BOOL return_value;
            return_value=Process32First(Snapshot,&processListStr);
            //獲得系統(tǒng)進(jìn)程鏈表中第一個(gè)進(jìn)程的信息
            int i=0;//item index
            while (return_value)
            {
            CString sFileName,sGetPath;
            //sGetPath = getFilePath(processListStr.th32ProcessID);
            sGetPath = GetProcessNameByID(processListStr.th32ProcessID);

            sFileName = (sGetPath=="")? processListStr.szExeFile:sGetPath;


            if (filePath.MakeLower() ==sFileName.MakeLower())
            {

            CloseHandle(Snapshot);
            return true;
            }
            return_value=Process32Next(Snapshot,&processListStr);
            //獲得系統(tǒng)進(jìn)程鏈表中下一個(gè)進(jìn)程的信息
            i++;
            }
            CloseHandle(Snapshot);
            return false;
            }
            試試這個(gè)。。。  回復(fù)  更多評(píng)論
              
            # re: 判斷同目錄下的某個(gè)exe是否在執(zhí)行[未登錄] 2008-01-28 18:15 汪江濤
            這是要干什么用啊?如果當(dāng)前進(jìn)程和要判斷的exe都是你寫的,你可以用Mutex來(lái)做,簡(jiǎn)單高效。  回復(fù)  更多評(píng)論
              
            # re: 判斷同目錄下的某個(gè)exe是否在執(zhí)行 2008-01-30 09:56 七星重劍
            @汪江濤
            mutex不分目錄啊
            不同目錄下的允許同時(shí)執(zhí)行  回復(fù)  更多評(píng)論
              
            综合久久精品色| 老色鬼久久亚洲AV综合| 中文字幕无码免费久久| 三级片免费观看久久| 99精品久久精品一区二区| 无码精品久久久天天影视 | 粉嫩小泬无遮挡久久久久久| 国产亚洲精品美女久久久| 色成年激情久久综合| 精品一二三区久久aaa片| 国内精品久久久久久久影视麻豆| 四虎亚洲国产成人久久精品| 亚洲狠狠婷婷综合久久久久| 精品久久久久久无码国产| 亚洲人成伊人成综合网久久久| 成人精品一区二区久久| 久久永久免费人妻精品下载| 国产精品综合久久第一页| 国色天香久久久久久久小说| 国产免费久久久久久无码| 欧美一区二区三区久久综 | 亚洲精品乱码久久久久久蜜桃不卡| 99久久精品午夜一区二区| 久久无码高潮喷水| 久久久久国产精品嫩草影院 | 草草久久久无码国产专区| MM131亚洲国产美女久久| 亚洲国产视频久久| 亚洲人AV永久一区二区三区久久| 国产精品久久久久AV福利动漫| 久久人人爽人人爽人人片AV高清| 久久精品国产精品亚洲人人| 日本久久久精品中文字幕| 99久久中文字幕| 国产精品成人99久久久久| 久久久国产精品福利免费| 国产午夜久久影院| 久久青青国产| 国内精品伊人久久久久妇| 久久久久无码国产精品不卡| 国产日韩久久久精品影院首页|