VC中有直接获得当前进程名的函数吗
5个回答
展开全部
VC中使用GetModuleFileName()函数来获取当前应用程序路径。具体实现代码如下:
CString g_AppPath;
char cIniFileName[MAX_PATH];
GetModuleFileName(NULL,cIniFileName,sizeof(cIniFileName)) ;
char * p = strrchr(cIniFileName,'\\') ;
g_AppPath.Format("%s",cIniFileName);
其中MAX_PATH是系统的一个宏定义,表示数组最长长度,为260。
CString g_AppPath;
char cIniFileName[MAX_PATH];
GetModuleFileName(NULL,cIniFileName,sizeof(cIniFileName)) ;
char * p = strrchr(cIniFileName,'\\') ;
g_AppPath.Format("%s",cIniFileName);
其中MAX_PATH是系统的一个宏定义,表示数组最长长度,为260。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int GetProcess()
{
HANDLE hToken ;
int strLen = 0 ;
int process_count = 0 ;
char buff[1024]={0};
char str[] = "hello world";
PROCESSENTRY32 pe32;
HANDLE hProcessSnap ;
BOOL bProcess ;
pe32.dwSize=sizeof(pe32);
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken);
//获得系统内所有进程快照
hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot error");
return 0;
}
//枚举列表中的第一个进程
bProcess=Process32First(hProcessSnap,&pe32);
while(bProcess)
{
//格式化进程名和进程ID
//wsprintf(buff,"%s---------------%d\r\n",pe32.szExeFile,pe32.th32ProcessID);
strLen = wsprintf(buff,"%s",pe32.szExeFile);
// strLen = wsprintf(buff,"%d",pe32.th32ProcessID);
printf("the name is %s and the id is %10d ",pe32.szExeFile,pe32.th32ProcessID);
//printf("the strLen is %d",strLen);
//printf("the process name is %s",buff);
//输出进程名和进程ID
printf("the name is %s and the len is %d \n",buff,strLen);
memset(buff,0x00,1024);
//继续枚举进程
bProcess=Process32Next(hProcessSnap,&pe32);
if(stricmp(buff,"java.exe")==0){
printf("the id is %d",pe32.th32ProcessID);
}
process_count++;
}
printf("the process counts is %d \n",process_count);
CloseHandle(hProcessSnap);
return 0;
}
{
HANDLE hToken ;
int strLen = 0 ;
int process_count = 0 ;
char buff[1024]={0};
char str[] = "hello world";
PROCESSENTRY32 pe32;
HANDLE hProcessSnap ;
BOOL bProcess ;
pe32.dwSize=sizeof(pe32);
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken);
//获得系统内所有进程快照
hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot error");
return 0;
}
//枚举列表中的第一个进程
bProcess=Process32First(hProcessSnap,&pe32);
while(bProcess)
{
//格式化进程名和进程ID
//wsprintf(buff,"%s---------------%d\r\n",pe32.szExeFile,pe32.th32ProcessID);
strLen = wsprintf(buff,"%s",pe32.szExeFile);
// strLen = wsprintf(buff,"%d",pe32.th32ProcessID);
printf("the name is %s and the id is %10d ",pe32.szExeFile,pe32.th32ProcessID);
//printf("the strLen is %d",strLen);
//printf("the process name is %s",buff);
//输出进程名和进程ID
printf("the name is %s and the len is %d \n",buff,strLen);
memset(buff,0x00,1024);
//继续枚举进程
bProcess=Process32Next(hProcessSnap,&pe32);
if(stricmp(buff,"java.exe")==0){
printf("the id is %d",pe32.th32ProcessID);
}
process_count++;
}
printf("the process counts is %d \n",process_count);
CloseHandle(hProcessSnap);
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用GetModuleFileName可以返回当时应用程序完整路径。
再截取可以得到应用程序文件名。
参考:
http://baike.baidu.com/link?url=GozoTT8gx67PLFJXHRJ5y8UW6kENNbKWrCxiTgUGmSgHS9bjupHoEKctltWjagunkYGYKAEyGHmzU7TXOdEuKK
再截取可以得到应用程序文件名。
参考:
http://baike.baidu.com/link?url=GozoTT8gx67PLFJXHRJ5y8UW6kENNbKWrCxiTgUGmSgHS9bjupHoEKctltWjagunkYGYKAEyGHmzU7TXOdEuKK
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GetCurrentProcess好像可以用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询