ZKX's LAB

VC 判断当前进程是否为本进程 vc 判断服务进程中

2021-04-25知识5

VC++ 判断进程是否存在 问题 那段代码就是一个现成的函数,你直接用就行了,例如:if(GetProcessidFromName(\"qq.exe\"))AfxMessageBox(\"存在\");

VC判断进程是否存在?比如我想知道记事本是否运行,要用到哪些函数? const char DESTPROC[19]=\"cmd.exe;DWORD pid=ProcessToPID(DESTPROC);返回为0就是没有 DWORD ProcessToPID(const char*InputProcessName){ DWORD aProcesses[1024],cbNeeded,cProcesses;unsigned int i;HANDLE hProcess=NULL;HMODULE hMod=NULL;char szProcessName[MAX_PATH]=\"UnknownProcess;AddPrivilege(SE_DEBUG_NAME);计算目前有多少进程,aProcesses[]用来存放有效的进程PIDs if。EnumProcesses(aProcesses,sizeof(aProcesses),&cbNeeded)){ return 0;} cProcesses=cbNeeded/sizeof(DWORD);按有效的PID遍历所有的进程 for(i=0;i;i+){/打开特定PID的进程 hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,aProcesses[i]);取得特定PID的进程名 if(hProcess){ if(EnumProcessModules(hProcess,&hMod,sizeof(hMod),&cbNeeded)){ GetModuleBaseName(hProcess,hMod,szProcessName,sizeof(szProcessName));将取得的进程名与输入的进程名比较,如相同则返回进程PID if。stricmp(szProcessName,InputProcessName)){ CloseHandle(hProcess);return aProcesses[i];} } }/end of if(hProcess)}/end of for/没有找到相应的进程名,返回0 CloseHandle。

vc中判断检测当前文件被进程访问的方法 利用 api函数复GlobalAlloc分配的内存实际上就是一个互斥资源。HGLOBAL hgMem=GlobalAlloc(0,sizeof(xxxx));分配制全局内存资百源void*p=(void*)GlobalLock(hgMem);操作…这时hgMem所表示的内存资源将度不可被其他进程所访问GlobalUnlock(hgMem);解除锁定接下来其他进程可以访问该内存资源。实现互斥资源访问,还问可以利用CreateMutex,EnterCriticalSection,一般用于多线程中。我所知道的就这么多。同步的问题,答我也不了解。

#vc 判断服务进程中

随机阅读

qrcode
访问手机版