40楼#
发布于:2010-11-23 10:33
谢谢分享!
|
|
41楼#
发布于:2010-11-23 10:43
回 37楼(lijianhua12) 的帖子
你看一下这个图片,这个是我打开acad.exe(2004)的时候出现的,当用acad.exe2008的时候,进程会打不开。 |
|
42楼#
发布于:2010-11-23 16:19
看起来很不错,看看
|
|
43楼#
发布于:2010-11-23 16:26
感想,下来学习学习
|
|
44楼#
发布于:2010-11-23 17:48
谢谢分享!
|
|
45楼#
发布于:2010-11-23 18:28
回 37楼(lijianhua12) 的帖子
你看一下这个图片,这个是我打开acad.exe(2004)的时候出现的,当用acad.exe2008的时候,进程会打不开。 ======================= 你把你判断acad.exe的代码贴出来 光一个 psi_addprocess("acad.exe",TRUE);是不行的 |
|
46楼#
发布于:2010-11-23 19:34
回 45楼(lijianhua12) 的帖子
可以QQ讨论一下吗?我的QQ是422868860 |
|
47楼#
发布于:2010-11-23 19:38
回 45楼(lijianhua12) 的帖子
我是直接用engine里面的代码,没有改其它的东西。关天auto cad判断的代码也是engine里面的,我没有修改。我现在把它贴出来,还请帮忙看一下BOOLEAN Ps_IsCurrentProcessMonitored( WCHAR* pwszFilePathName, ULONG uLength, BOOLEAN* bIsSystemProcess, BOOLEAN* bIsPPTFile) { BOOLEAN bRet = TRUE ; UCHAR szProcessName[16] = {0} ; PLIST_ENTRY TmpListEntryPtr = NULL ; PiPROCESS_INFO psProcessInfo = NULL ; WCHAR wszFilePathName[MAX_PATH] = {0} ; WCHAR* pwszExt = NULL ; try{ Ps_GetProcessName(szProcessName, NULL) ; // save file path name in local buffer RtlCopyMemory(wszFilePathName, pwszFilePathName, uLength*sizeof(WCHAR)) ; // recognize process name and return to caller if (bIsSystemProcess != NULL) { if ((strlen(szProcessName) == strlen("explorer.exe")) && !_strnicmp(szProcessName, "explorer.exe", strlen(szProcessName))) { *bIsSystemProcess = SYSTEM_PROCESS ; } else { *bIsSystemProcess = NORMAL_PROCESS ; if ((strlen(szProcessName) == strlen("excel.exe")) && !_strnicmp(szProcessName, "excel.exe", strlen(szProcessName))) { *bIsSystemProcess = EXCEL_PROCESS ; } if ((strlen(szProcessName) == strlen("powerpnt.exe")) && !_strnicmp(szProcessName, "powerpnt.exe", strlen(szProcessName))) { *bIsSystemProcess = POWERPNT_PROCESS ; } } } if ((szProcessName == L"acad.exe") && !_wcsnicmp(pwszExt, L".csa", wcslen(L".csa"))) return FALSE; _wcslwr(wszFilePathName) ; if (wcsstr(wszFilePathName, L"\\local settings\\temp\\~wrd")) { bRet = TRUE ; ///__leave ; } // go to end of file path name, save pointer in pwszExt pwszExt = wszFilePathName + uLength - 1 ; // verify file attribute, if directory, return false if (pwszFilePathName[uLength-1] == L'\\') {//if directory, filter it bRet = FALSE ; __leave ; } // redirect to file extension name(including point) while (((pwszExt != wszFilePathName) && (*pwszExt != L'\\')) && ((*pwszExt) != L'.')) //定向至扩展名 {//direct into file extension pwszExt -- ; } // verify this is a file without extension name if ((pwszExt == wszFilePathName) || (*pwszExt == L'\\')) {//no file extension exists in input filepath name, filter it. ///bRet = FALSE ; ///__leave ; pwszExt[0] = L'.' ; pwszExt[1] = L'\0' ; } // verify tmp file if ((bIsPPTFile != NULL) && !_wcsnicmp(pwszExt, L".ppt", wcslen(L".ppt"))) { *bIsPPTFile = TRUE ; } // compare current process name with process info in monitored list // if existing, match file extension name TmpListEntryPtr = g_ProcessListHead.Flink ; while(&g_ProcessListHead != TmpListEntryPtr) { psProcessInfo = CONTAINING_RECORD(TmpListEntryPtr, iPROCESS_INFO, ProcessList) ; if (!_strnicmp(psProcessInfo->szProcessName, szProcessName, strlen(szProcessName))) { int nIndex = 0 ; if (psProcessInfo->wsszRelatedExt[0][0] == L'\0') {//no filter file extension, return monitor flag bRet = psProcessInfo->bMonitor; __leave ; } while (TRUE) {// judge wether current file extension name is matched with monitored file type in list if (psProcessInfo->wsszRelatedExt[nIndex][0] == L'\0') { bRet = FALSE ; break ; } else if ((wcslen(pwszExt) == wcslen(psProcessInfo->wsszRelatedExt[nIndex])) && !_wcsnicmp(pwszExt, psProcessInfo->wsszRelatedExt[nIndex], wcslen(pwszExt))) {// matched, return monitor flag bRet = psProcessInfo->bMonitor ; break ; } nIndex ++ ; } __leave ; } // move to next process info in list TmpListEntryPtr = TmpListEntryPtr->Flink ; } bRet = FALSE ; } finally{ /**/ //Todo some post work here } return bRet ; } |
|
48楼#
发布于:2010-11-23 20:07
if ((bIsPPTFile != NULL) && !_wcsnicmp(pwszExt, L".ppt", wcslen(L".ppt")))
{ *bIsPPTFile = TRUE ; } // pass .csa if ((szProcessName == L"acad.exe") && !_wcsnicmp(pwszExt, L".csa", wcslen(L".csa"))) { bRet = FALSE ; __leave ; } ============== 加在对ppt的判断后面,前面扩展名还没有提取出来 |
|
49楼#
发布于:2010-11-24 00:17
4a0170sdads7c5721800efae9b8646
|
|
50楼#
发布于:2010-11-24 00:31
^_^,看看。
|
|
51楼#
发布于:2010-11-24 14:27
engine.rar
根据你前面所说的,我把判断加进去了,但是还是出现这样的问题,你可以看一下代码 |
|
52楼#
发布于:2010-11-24 16:27
下载看一下,谢谢分享
|
|
53楼#
发布于:2010-11-25 21:33
下来看看研究研究.学习学习.
![]() |
|
54楼#
发布于:2010-11-26 09:28
不知道咋样 看看啦
|
|
|
55楼#
发布于:2010-11-27 09:53
网络好慢
|
|
56楼#
发布于:2010-11-27 14:04
正在研究这个方面的技术,可以看看了。
|
|
57楼#
发布于:2010-11-27 18:26
kankan
|
|
58楼#
发布于:2010-11-29 11:28
baiduyixia
|
|
59楼#
发布于:2010-11-30 15:47
感谢!!
|
|