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

那个网站可以做视频app制作西安网络公司

那个网站可以做视频app制作,西安网络公司,discuz 网站风格,重庆门户网站开发报价在Windows平台上实现一个守护进程,由于与系统有关,所有使用MFC来实现是最合适的,被守护的进程则不限语言。废话不多,直接开整。 目录 1. 开机自启动 2. 进程单例 3. 进程查询 4. 进程等待 5. 重启进程 6. 关闭进程 7、最后…

        在Windows平台上实现一个守护进程,由于与系统有关,所有使用MFC来实现是最合适的,被守护的进程则不限语言。废话不多,直接开整。

目录

1. 开机自启动

2. 进程单例

3. 进程查询

4. 进程等待

5. 重启进程

6. 关闭进程

7、最后的最后


1. 开机自启动

        守护进程自然要开机自启动。

//设置自身开机启动
BOOL SetSelfStart()
{//获取程序完整名称char pName[MAX_PATH] = { 0 };GetModuleFileNameA(NULL, pName, MAX_PATH);//在注册表中写入启动信息HKEY hKey = NULL;LONG lRet = NULL;lRet = RegOpenKeyExA(HKEY_LOCAL_MACHINE, SELFSTART_REGEDIT_PATH, 0, KEY_ALL_ACCESS, &hKey);//判断是否成功if (lRet != ERROR_SUCCESS){return FALSE;}lRet = RegSetValueExA(hKey, "w10_daemon", 0, REG_SZ, (const unsigned char*)pName, strlen(pName) + sizeof(char));//判断是否成功if (lRet != ERROR_SUCCESS){return FALSE;}//关闭注册表RegCloseKey(hKey);return TRUE;
}

2. 进程单例

        也就是防止软件被多次启动,在需要长时间无人值守运行的软件中,不管守护进程或者被守护进程都不希望软件启动多次。

BOOL InitInstance()
{LPCWSTR pszExeName = L"GuardApplication";        //    使用软件自身的名称// 用应用程序名创建信号量HANDLE hSem = CreateSemaphore(NULL, 1, 1, pszExeName);// 信号量已存在?// 信号量存在,则程序已有一个实例运行if (GetLastError() == ERROR_ALREADY_EXISTS){// 关闭信号量句柄CloseHandle(hSem);return FALSE;// 寻找先前实例的主窗口HWND hWndPrevious = ::GetWindow(::GetDesktopWindow(), GW_CHILD);while (::IsWindow(hWndPrevious)){// 检查窗口是否有预设的标记?// 有,则是我们寻找的主窗if (::GetProp(hWndPrevious, pszExeName)){// 主窗口已最小化,则恢复其大小if (::IsIconic(hWndPrevious))::ShowWindow(hWndPrevious, SW_RESTORE);// 将主窗激活::SetForegroundWindow(hWndPrevious);// 将主窗的对话框激活::SetForegroundWindow(::GetLastActivePopup(hWndPrevious));// 退出本实例return FALSE;}// 继续寻找下一个窗口hWndPrevious = ::GetWindow(hWndPrevious, GW_HWNDNEXT);}// 前一实例已存在,但找不到其主窗// 可能出错了// 退出本实例return FALSE;}return TRUE;
}

3. 进程查询

        守护进程,自然需要找到被守护的进程id等信息。

BOOL IsExistProcess(CONST WCHAR* szProcessName, DWORD& ProcessID)
{PROCESSENTRY32 processEntry32;HANDLE toolHelp32Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (((int)toolHelp32Snapshot) != -1){processEntry32.dwSize = sizeof(processEntry32);if (Process32First(toolHelp32Snapshot, &processEntry32)){do{if (wcscmp(szProcessName, processEntry32.szExeFile) == 0){ProcessID = processEntry32.th32ProcessID;return TRUE;}} while (Process32Next(toolHelp32Snapshot, &processEntry32));}CloseHandle(toolHelp32Snapshot);}return FALSE;
}

4. 进程等待

        查寻到进程号之后,最好的办法就是等待它退出,而不是定时重复查询。

HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, processEntry32.th32ProcessID);
if (hProcess != NULL) {WaitForSingleObject(hProcess, INFINITE);CloseHandle(hProcess);
}

5. 重启进程

        被守护的进程消失了怎么办?当然是重启该进程喽。

WCHAR* pCmd = L"cmd /c D:\\test\\abcd.exe";STARTUPINFOW si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW;//进程对象
PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(pi));//创建子进程,判断是否执行成功
if (!CreateProcessW(NULL, pCmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{cout << "守护进程启动失败,程序即将退出" << endl;return 0;
}// 等待进程启动
WaitForInputIdle(pi.hProcess, 10000);// 获取进程窗口句柄
HWND hWnd = FindWindow(NULL, PROCCESS_NAME);
if (hWnd)
{// 将进程窗口置顶SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);// 给予焦点SetForegroundWindow(hWnd);
}

6. 关闭进程

        为什么还要关闭进程呢?当然是需要正常关闭其他进程的时候去做了,比如:被守护的进程不想被守护了,自然需要先杀掉守护进程,再然后自杀。

//利用查找到的进程ID,打开进程:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processEntry32.th32ProcessID);//关闭进程
BOOL bRet = TerminateProcess(hProcess, 0);CloseHandle(hProcess);

7、最后的最后

        当然是附上守护进程软件的源码链接了,开源就要彻底,你都看到这了,还不给我点个赞,加个关注吗?就算白嫖也要自觉一点,不是吗?当然能给我打个赏我就万分感谢了!

这是下载链接

http://www.hkea.cn/news/915870/

相关文章:

  • 实业有限公司网站怎么做百度一下了你就知道官网
  • 企业电子商务网站推广平台有哪些渠道
  • 本地用织梦做网站百度的网站网址
  • 基础展示营销型型网站新闻发稿平台有哪些
  • 做游戏赚钱的网站最新新闻热点事件2022
  • 商务网站建设哪家好推广代理公司
  • 自己做网站是否要买云主机西安百度提升优化
  • 成都注册公司哪个区好分析网站推广和优化的原因
  • 模板建站杭州seo泽成
  • 济南网站建设公司川芎网络怎么注册自己的网址
  • linux下安装wordpress关键词优化排名查询
  • wordpress手机网站怎么做中央电视台一套广告价目表
  • 百家号如何给网站做推广推广方案是什么
  • 西安三网合一网站建设产品线上推广方案
  • 2023年免费b站入口百度网站优化
  • 响应式网站建设有利于seo网站发布与推广方案
  • 网页制作教程课件seo推广排名重要吗
  • 小规模纳税人企业所得税怎么征收广州seo招聘
  • 济南企业自助建站网络营销策划公司
  • iis 新建网站 要登录温州seo推广外包
  • 个人想做企业网站备案惠州seo代理商
  • 做公务员题的网站口红的推广软文
  • 福州网站建设 联系yanktcn 04上海百网优seo优化公司
  • 网站备案号如何获得网站建设营销推广
  • 物流网站开发公司西安 做网站
  • 商务信息网站怎么做网络视频营销策略有哪些
  • 社交做的最好的网站怎么开发一个网站
  • 教育品牌网站建设百度搜索推广和信息流推广
  • 虎门专业做网站对网络营销的认识有哪些
  • 投资理财培训网站建设抖音引流推广一个30元