当前位置: 首页 > news >正文

南京建设主管部门网站广告公司寮步网站建设价钱

南京建设主管部门网站,广告公司寮步网站建设价钱,免费做明信片的网站,网站可以改内链结构吗进程状态的判断包括验证进程是否存在,实现方法是通过枚举系统内的所有进程信息,并将该进程名通过CharLowerBuff转换为小写,当转换为小写模式后则就可以通过使用strcmp函数对比,如果发现继承存在则返回该进程的PID信息,…

进程状态的判断包括验证进程是否存在,实现方法是通过枚举系统内的所有进程信息,并将该进程名通过CharLowerBuff转换为小写,当转换为小写模式后则就可以通过使用strcmp函数对比,如果发现继承存在则返回该进程的PID信息,否则返回-1。

int GetProcessStatus(const char *procressName)
{char pName[MAX_PATH];strcpy(pName, procressName);                           // 拷贝数组CharLowerBuff(pName, MAX_PATH);                        // 将名称转换为小写PROCESSENTRY32 currentProcess;                                    // 存放快照进程信息的一个结构体currentProcess.dwSize = sizeof(currentProcess);                   // 在使用这个结构之前,先设置它的大小HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); // 给系统内的所有进程拍一个快照if (INVALID_HANDLE_VALUE != hProcess){BOOL bMore = Process32First(hProcess, &currentProcess);while (bMore){CharLowerBuff(currentProcess.szExeFile, MAX_PATH);        // 将进程名转换为小写if (strcmp(currentProcess.szExeFile, pName) == 0)         // 比较是否存在此进程{CloseHandle(hProcess);return currentProcess.th32ProcessID;}bMore = Process32Next(hProcess, &currentProcess);}CloseHandle(hProcess);}return -1;
}

有时候我们需要判断自身进程是否被重复运行了,这种需求在软件开发中经常会遇到,通常该需求可以使用CreateMutex创建或打开一个互斥量对象(Mutex Object),在多线程/进程的环境下,互斥量可用于控制对某个共享资源的访问。其函数声明如下:

HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL                  bInitialOwner,LPCTSTR               lpName
);

其中,lpMutexAttributes 是用于指定新创建的互斥量的安全描述符的指针;bInitialOwner 表示一个布尔值,指定初始所有权标记,为 TRUE 表示调用线程将拥有该互斥量,否则表示它不属于调用线程;lpName 是可选的,用于命名互斥体,以使得其他线程或者进程可以通过这个名字来打开该互斥量对象。

CreateMutex 函数会返回一个内核对象句柄,用于在之后对该互斥体进行引用和操作,通过使用互斥体可以很容易的实现对进程运行状态的判断。

#include <Windows.h>
#include <stdio.h>// 判断是否重复运行
BOOL IsAlreadyRun()
{HANDLE hMutex = NULL;hMutex = CreateMutex(NULL, FALSE, "RUN");if (hMutex){if (ERROR_ALREADY_EXISTS == GetLastError())return TRUE;}return FALSE;
}int main(int argc, const char * argv[])
{if (IsAlreadyRun() == TRUE)printf("重复运行 \n");elseprintf("没有重复运行 \n");system("pause");return 0;
}

对进程位数的判断也是有必要的,通常在Windows系统下进程位数的有多种方法实现,第一种方式GetNativeSystemInfo调用该函数并判断函数内的特定成员,即可得到当前系统是否为64位,当然通过使用Is64BitPorcess函数也可实现对特定进程的判断,此方式实现原理是通过调用IsWow64Process函数实现;

#include <stdio.h>
#include <Windows.h>
#include <tlhelp32.h>// 判断自身系统是否为64位
BOOL IsSelf64bitSystem()
{SYSTEM_INFO si;GetNativeSystemInfo(&si);if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64)return TRUE;elsereturn FALSE;
}// 判断指定进程是否为64位进程
BOOL Is64BitPorcess(DWORD dwProcessID)
{HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcessID);if (hProcess){typedef BOOL(WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandleW(L"kernel32"), "IsWow64Process");if (NULL != fnIsWow64Process){BOOL bIsWow64 = FALSE;fnIsWow64Process(hProcess, &bIsWow64);CloseHandle(hProcess);if (bIsWow64)return FALSE;elsereturn TRUE;}}return FALSE;
}int main(int argc, char *argv[])
{PROCESSENTRY32 pe32;pe32.dwSize = sizeof(pe32);HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);BOOL bMore = Process32First(hProcessSnap, &pe32);while (bMore){printf("进程PID: %5d 是否64位: %d 进程名称: %s\n",pe32.th32ProcessID, Is64BitPorcess(pe32.th32ProcessID), pe32.szExeFile);bMore = Process32Next(hProcessSnap, &pe32);}system("pause");return 0;
}

本文作者: 王瑞
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

http://www.yayakq.cn/news/474600/

相关文章:

  • 找做模型方案去哪个网站软件界面设计用什么软件
  • 做网站最小的字体是多少像素长沙旅游网站制作
  • 自己网站上做支付宝怎么收费的怎么在ps里做网站设计
  • 外贸营销网站建设工程泾川县门户网站留言
  • hulu网站在中国做内容吗百度用户服务中心电话
  • 找工作哪个网站好智联招聘网站模块建设中
  • 做黄金理财的网站做旅游信息的网站能赚钱吗
  • 做矢量图的网站网站制作的地方
  • 网站未备案做经营被罚款北京服饰电商网站建设
  • 网站首页顶部图片尺寸做网站不带优化的吗
  • 网站运营培训学校wordpress 无法登陆 后台
  • 微信网站建设方案线上宣传渠道有哪些
  • 兰州网站建设公司未备案网站加速
  • 网站开发工作室wordpress优秀模板
  • 住房和城乡建设部网站监理合同建设网站要多长时间
  • 网页建站的费用信息行业网站建设
  • 做字幕网站有哪些大背景类型的网站设计
  • 最新网站建设哪家公司好电子商务网站系统的开发设计
  • ftp上传php网站wordpress添加新功能
  • 国内网站 专做国外视频杭州做企业网址的公司
  • 贵州省建设局网站公司注册费用多少
  • 网页设计与网站建设区别2345查询网
  • 华建设计网站重庆seo按天收费
  • 建设网站查询余额国外优秀网页设计网站
  • 济南网站制作运营信阳网站建设的费用
  • 廊坊网站建设廊坊百度刷排名seo软件
  • 网站备案表深圳网站建设.-方维网络
  • 班级网站做哪些方面qq登录wordpress
  • 免费空间自助建站模板如何分析竞争对手的网站
  • 网站建设与经营招聘系统推广哪家好