C语言中怎样判断某个特定的程序是不是正在运行(Windows)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中怎样判断某个特定的程序是不是正在运行(Windows)相关的知识,希望对你有一定的参考价值。

参考技术A #include<windows.h>
#include <stdio.h>
#include "PSAPI.H"
#pragma comment( lib, "PSAPI.LIB" )

BOOL EnablePrivilege(HANDLE hToken,LPCSTR szPrivName);

int main(void)

DWORD processid[1024],needed,processcount,i;
HANDLE hProcess;
HMODULE hModule;
char path[MAX_PATH] = "",temp[256];

HANDLE hToken;

printf("ShowProcessPath 2.0 with [Process Status API]\n\n");

if ( OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken) )

if (EnablePrivilege(hToken,SE_DEBUG_NAME))

EnumProcesses(processid, sizeof(processid), &needed);
processcount=needed/sizeof(DWORD);

for (i=0;i<processcount;i++)

hProcess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,false,processid[i]);
if (hProcess)

EnumProcessModules(hProcess, &hModule, sizeof(hModule), &needed);
GetModuleFileNameEx(hProcess, hModule, path, sizeof(path));

>>>>在这里判断是否是你所需要的文件

GetShortPathName(path,path,256);
itoa(processid[i],temp,10);
printf("%s --- %s\n",path,temp);

else
printf("Failed!!!\n");




CloseHandle(hProcess);
CloseHandle(hModule);

itoa(processcount,temp,10);
printf("\nProcess Count:%s\n\n",temp);

return 0;


BOOL EnablePrivilege(HANDLE hToken,LPCSTR szPrivName)


TOKEN_PRIVILEGES tkp;

LookupPrivilegeValue( NULL,szPrivName,&tkp.Privileges[0].Luid );//修改进程权限
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken,FALSE,&tkp,sizeof tkp,NULL,NULL );//通知系统修改进程权限

return( (GetLastError()==ERROR_SUCCESS) );
本回答被提问者采纳

怎样用C语言编写程序判断字符串S1是不是包含字符串S2.(不使用库函数)

1.字符串S2的第一个字母在串S1中查找~若无则不包含
2.若有则取S2的第二个字母在串S1相对第一个找到的位置继续匹配~若不匹配,则回到第一步,和查找到的第二个和S1中匹配的S2的第一个字母
若匹配,则继续第2步
直到串S2的所有字符与串S1的字符完全匹配,则包含~
参考技术A /////////////////没用系统函数 逻辑比较复杂 慢慢理解吧//////////////////
Yes
Press any key to continue
#include "stdio.h"

main()

int i,j,alen=0,blen=0,count;
char aa[]="123aabcefg";
char bb[]="abce";
i=0;
while (aa[i]!='\0')

alen++;
i++;

i=0;
while (bb[i]!='\0')

blen++;
i++;

for (i=0,count=0;i<alen;i++)

for (j=0;j<blen;j++)

if (aa[i]==bb[j++])

count++;
for (i+=2;aa[i]!='\0' && bb[j]!='\0';i++,j++)

if (aa[i]==bb[j])

count++;


if (count==blen)

printf("Yes\n");
break;




if (count!=blen)

printf("No\n");


有问题请追问 满意记得采纳哦本回答被提问者和网友采纳
参考技术B 第一行是要查找的字符串
第二行是被查找句子
输出要查找的字符串在被查找句子的首个位置
#include<stdio.h>
#include<string.h>
void
main()

int
i,j,la,lb,num=0;
char
c,a[120],b[4500];
while((c=getchar())!='\n')
a[num++]=c;a[num]='\0';
num=0;
while((c=getchar())!='\n')
b[num++]=c;b[num]='\0';
la=strlen(a);lb=strlen(b);
for(i=0;(lb-i)>=la;i++)
if(b[i]==a[0])
for(j=0;j<la;j++)
if(b[i+j]!=a[j])
break;
if(j==la)
printf("%d\n",i+1);break;


参考技术C 去看看KMP模式匹配吧,挺难的,不过很有用的 参考技术D 这个要求快的话要用模式匹配算法 要求不高的话直接用for循环就可以了

以上是关于C语言中怎样判断某个特定的程序是不是正在运行(Windows)的主要内容,如果未能解决你的问题,请参考以下文章

运行时判断程序是不是在Wine下运行

C语言里怎样判断数组里的一个元素为空还是为0

C语言 判断一个字符串str是不是包含特定字符c

怎样用C语言编写程序判断字符串S1是不是包含字符串S2.(不使用库函数)

c语言中怎样判断一行中是不是有汉字

C语言中如何判断整数是不是为平方数