已知打开文件的名字和相关信息,如何取得打开这个文件的进程名或者PID?高手指点!
解决方案 »
- 等腰直角三角形,经过view和projection变换,怎么长度不一样了?
- 怎么让我接收数据的线程正常返回,我用的是阻塞套接字,谢谢!
- (求助)VC++.Net(2005)环境下如何自动弹出优盘或移动硬盘?(在线等)
- 在加载DLL到Rundll32.exe过程中,出现这样的问题,请问为什么? 有没有解决办法?
- 请教如何保存和读取数据方便一点?
- 请告知在哪里可以下载到csdn客户端?多谢!
- 新手问题:如果得到一个文件的属性 ?
- 请问用vc进行数据库开发时ado比odbc好在哪里?如果进行远程数据库访问该用哪一个?
- 用ADO怎样取得表中主键的信息
- 急!!:如何查出除已知栏位外的所有栏位的数据
- 如何枚举文件夹窗口?
- CListCtrl的刷新问题
#include<iostream>
#include<windows.h>
#include<Tlhelp32.h>
using namespace std;
DWORD GetProcessID(char *FileName)
{
HANDLE myhProcess;
PROCESSENTRY32 mype;
BOOL mybRet;
//进行进程快照
myhProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //TH32CS_SNAPPROCESS快照所有进程
//开始进程查找
mybRet=Process32First(myhProcess,&mype);
//循环比较,得出ProcessID
while(mybRet)
{
if(strcmp(FileName,mype.szExeFile)==0)
return mype.th32ProcessID;
else
mybRet=Process32Next(myhProcess,&mype);
}
return 0;
}int main(){
cout<<GetProcessID("MyTest.exe"); //通过进程名比较
return 0;
}
我也想到了这样,但是比如EDITPLUS当他再打开文件时,没有进程名称和PID的增加啊?