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

设计微信公众号的网站吗怎么做网站免费的

设计微信公众号的网站吗,怎么做网站免费的,公众号怎么进入,什么游戏不用登录直接玩驱动程序加载工具有许多,最常用的当属KmdManager工具,如果驱动程序需要对外发布那我们必须自己编写实现一个驱动加载工具,当需要使用驱动时可以拉起自己的驱动,如下将实现一个简单的驱动加载工具,该工具可以实现基本的…

驱动程序加载工具有许多,最常用的当属KmdManager工具,如果驱动程序需要对外发布那我们必须自己编写实现一个驱动加载工具,当需要使用驱动时可以拉起自己的驱动,如下将实现一个简单的驱动加载工具,该工具可以实现基本的,安装,加载,关闭,卸载等操作日常使用完全没问题。

installDvr 驱动安装

#include <iostream>
#include <Windows.h>using namespace std;// 安装驱动
BOOL installDvr(CONST WCHAR drvPath[50], CONST WCHAR serviceName[20])
{// 打开服务控制管理器数据库SC_HANDLE schSCManager = OpenSCManager(NULL,                   // 目标计算机的名称,NULL:连接本地计算机上的服务控制管理器NULL,                   // 服务控制管理器数据库的名称,NULL:打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS   // 所有权限);if (schSCManager == NULL){CloseServiceHandle(schSCManager);return FALSE;}// 创建服务对象,添加至服务控制管理器数据库SC_HANDLE schService = CreateService(schSCManager,               // 服务控件管理器数据库的句柄serviceName,                // 要安装的服务的名称serviceName,                // 用户界面程序用来标识服务的显示名称SERVICE_ALL_ACCESS,         // 对服务的访问权限:所有全权限SERVICE_KERNEL_DRIVER,      // 服务类型:驱动服务SERVICE_DEMAND_START,       // 服务启动选项:进程调用 StartService 时启动SERVICE_ERROR_IGNORE,       // 如果无法启动:忽略错误继续运行drvPath,                    // 驱动文件绝对路径,如果包含空格需要多加双引号NULL,                       // 服务所属的负载订购组:服务不属于某个组NULL,                       // 接收订购组唯一标记值:不接收NULL,                       // 服务加载顺序数组:服务没有依赖项NULL,                       // 运行服务的账户名:使用 LocalSystem 账户NULL                        // LocalSystem 账户密码);if (schService == NULL){CloseServiceHandle(schService);CloseServiceHandle(schSCManager);return FALSE;}CloseServiceHandle(schService);CloseServiceHandle(schSCManager);return TRUE;
}int main(int argc, char *argv[])
{if (installDvr(L"C:\\WinDDK.sys", L"service") == TRUE){cout << "驱动已安装" << endl;}getchar();return 0;
}
 

startDvr 启动驱动

#include <iostream>
#include <Windows.h>using namespace std;// 启动服务
BOOL startDvr(CONST WCHAR serviceName[20])
{// 打开服务控制管理器数据库SC_HANDLE schSCManager = OpenSCManager(NULL,                   // 目标计算机的名称,NULL:连接本地计算机上的服务控制管理器NULL,                   // 服务控制管理器数据库的名称,NULL:打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS   // 所有权限);if (schSCManager == NULL){CloseServiceHandle(schSCManager);return FALSE;}// 打开服务SC_HANDLE hs = OpenService(schSCManager,           // 服务控件管理器数据库的句柄serviceName,            // 要打开的服务名SERVICE_ALL_ACCESS      // 服务访问权限:所有权限);if (hs == NULL){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}if (StartService(hs, 0, 0) == 0){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return TRUE;
}int main(int argc, char *argv[])
{if (startDvr(L"service") == TRUE){cout << "驱动服务" << endl;}getchar();return 0;
}
 

stopDvr 停止驱动

#include <iostream>
#include <Windows.h>using namespace std;// 停止服务
BOOL stopDvr(CONST WCHAR serviceName[20])
{// 打开服务控制管理器数据库SC_HANDLE schSCManager = OpenSCManager(NULL,                   // 目标计算机的名称,NULL:连接本地计算机上的服务控制管理器NULL,                   // 服务控制管理器数据库的名称,NULL:打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS   // 所有权限);if (schSCManager == NULL){CloseServiceHandle(schSCManager);return FALSE;}// 打开服务SC_HANDLE hs = OpenService(schSCManager,           // 服务控件管理器数据库的句柄serviceName,            // 要打开的服务名SERVICE_ALL_ACCESS      // 服务访问权限:所有权限);if (hs == NULL){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}// 如果服务正在运行SERVICE_STATUS status;if (QueryServiceStatus(hs, &status) == 0){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}if (status.dwCurrentState != SERVICE_STOPPED &&status.dwCurrentState != SERVICE_STOP_PENDING){// 发送关闭服务请求if (ControlService(hs,                         // 服务句柄SERVICE_CONTROL_STOP,       // 控制码:通知服务应该停止&status                     // 接收最新的服务状态信息) == 0) {CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}// 判断超时INT timeOut = 0;while (status.dwCurrentState != SERVICE_STOPPED){timeOut++;QueryServiceStatus(hs, &status);Sleep(50);}if (timeOut > 80){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}}CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return TRUE;
}int main(int argc, char *argv[])
{if (stopDvr(L"service") == TRUE){cout << "停止驱动服务" << endl;}getchar();return 0;
}
 

unloadDvr 卸载驱动

#include <iostream>
#include <Windows.h>using namespace std;// 卸载驱动
BOOL unloadDvr(CONST WCHAR serviceName[20])
{// 打开服务控制管理器数据库SC_HANDLE schSCManager = OpenSCManager(NULL,                   // 目标计算机的名称,NULL:连接本地计算机上的服务控制管理器NULL,                   // 服务控制管理器数据库的名称,NULL:打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS   // 所有权限);if (schSCManager == NULL){CloseServiceHandle(schSCManager);return FALSE;}// 打开服务SC_HANDLE hs = OpenService(schSCManager,           // 服务控件管理器数据库的句柄serviceName,            // 要打开的服务名SERVICE_ALL_ACCESS      // 服务访问权限:所有权限);if (hs == NULL){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}// 删除服务if (DeleteService(hs) == 0){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return TRUE;
}int main(int argc, char *argv[])
{if (unloadDvr(L"service") == TRUE){cout << "卸载驱动服务" << endl;}getchar();return 0;
}
 

封装cDrvCtrl通信类

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>#pragma comment(lib,"user32.lib")
#pragma comment(lib,"advapi32.lib")// ------------------------------------------------------------------------------
// 驱动控制类
// ------------------------------------------------------------------------------class cDrvCtrl
{
public:cDrvCtrl(){m_pSysPath = NULL;m_pServiceName = NULL;m_pDisplayName = NULL;m_hSCManager = NULL;m_hService = NULL;m_hDriver = INVALID_HANDLE_VALUE;}~cDrvCtrl(){CloseServiceHandle(m_hService);CloseServiceHandle(m_hSCManager);CloseHandle(m_hDriver);}// 安装驱动BOOL Install(PCHAR pSysPath, PCHAR pServiceName, PCHAR pDisplayName){m_pSysPath = pSysPath;m_pServiceName = pServiceName;m_pDisplayName = pDisplayName;m_hSCManager = OpenSCManagerA(NULL, NULL, SC_MANAGER_ALL_ACCESS);if (NULL == m_hSCManager){m_dwLastError = GetLastError();return FALSE;}m_hService = CreateServiceA(m_hSCManager, m_pServiceName, m_pDisplayName,SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,m_pSysPath, NULL, NULL, NULL, NULL, NULL);if (NULL == m_hService){m_dwLastError = GetLastError();if (ERROR_SERVICE_EXISTS == m_dwLastError){m_hService = OpenServiceA(m_hSCManager, m_pServiceName, SERVICE_ALL_ACCESS);if (NULL == m_hService){CloseServiceHandle(m_hSCManager);return FALSE;}}else{CloseServiceHandle(m_hSCManager);return FALSE;}}return TRUE;}// 启动驱动BOOL Start(){if (!StartServiceA(m_hService, NULL, NULL)){m_dwLastError = GetLastError();return FALSE;}return TRUE;}// 关闭驱动BOOL Stop(){SERVICE_STATUS ss;GetSvcHandle(m_pServiceName);if (!ControlService(m_hService, SERVICE_CONTROL_STOP, &ss)){m_dwLastError = GetLastError();return FALSE;}return TRUE;}// 移除驱动BOOL Remove(){GetSvcHandle(m_pServiceName);if (!DeleteService(m_hService)){m_dwLastError = GetLastError();return FALSE;}return TRUE;}// 打开驱动BOOL Open(PCHAR pLinkName){if (m_hDriver != INVALID_HANDLE_VALUE)return TRUE;m_hDriver = CreateFileA(pLinkName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);if (m_hDriver != INVALID_HANDLE_VALUE)return TRUE;elsereturn FALSE;}// 安装并运行驱动VOID InstallAndRun(){char szSysFile[MAX_PATH] = { 0 };char szSvcLnkName[] = "LyInject";;GetAppPath(szSysFile);strcat(szSysFile, "LyInject.sys");Install(szSysFile, szSvcLnkName, szSvcLnkName);Start();Open("\\\\.\\LyInject");}// 移除并关闭驱动VOID RemoveAndStop(){Stop();Remove();CloseHandle(m_hDriver);}// 发送控制信号BOOL IoControl(DWORD dwIoCode, PVOID InBuff, DWORD InBuffLen, PVOID OutBuff, DWORD OutBuffLen, DWORD *RealRetBytes){DWORD dw;BOOL b = DeviceIoControl(m_hDriver, CTL_CODE_GEN(dwIoCode), InBuff, InBuffLen, OutBuff, OutBuffLen, &dw, NULL);if (RealRetBytes)*RealRetBytes = dw;return b;}
private:// 获取服务句柄BOOL GetSvcHandle(PCHAR pServiceName){m_pServiceName = pServiceName;m_hSCManager = OpenSCManagerA(NULL, NULL, SC_MANAGER_ALL_ACCESS);if (NULL == m_hSCManager){m_dwLastError = GetLastError();return FALSE;}m_hService = OpenServiceA(m_hSCManager, m_pServiceName, SERVICE_ALL_ACCESS);if (NULL == m_hService){CloseServiceHandle(m_hSCManager);return FALSE;}else{return TRUE;}}// 获取控制信号对应字符串DWORD CTL_CODE_GEN(DWORD lngFunction){return (FILE_DEVICE_UNKNOWN * 65536) | (FILE_ANY_ACCESS * 16384) | (lngFunction * 4) | METHOD_BUFFERED;}// 获取完整路径void GetAppPath(char *szCurFile){GetModuleFileNameA(0, szCurFile, MAX_PATH);for (SIZE_T i = strlen(szCurFile) - 1; i >= 0; i--){if (szCurFile[i] == '\\'){szCurFile[i + 1] = '\0';break;}}}public:DWORD m_dwLastError;PCHAR m_pSysPath;PCHAR m_pServiceName;PCHAR m_pDisplayName;HANDLE m_hDriver;SC_HANDLE m_hSCManager;SC_HANDLE m_hService;
};int main(int argc, char *argv[])
{cDrvCtrl DriveControl;DriveControl.InstallAndRun();DriveControl.RemoveAndStop();system("pause");return 0;
}
 

文章出处:https://www.cnblogs.com/LyShark/p/15019049.html
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

http://www.shuangfujiaoyu.com/news/55396.html

相关文章:

  • 淘宝网站如何在邮件里做超链接永久免费域名注册
  • 广州萝岗区网站建设下载百度app最新版到桌面
  • 化学产品在哪个网站做推广最好今天重大新闻事件
  • 做棋牌游戏网站犯法吗品牌咨询
  • 自动化科技产品网站建设青岛seo网络优化公司
  • 设计网站名称百度推广总部客服投诉电话
  • 微信手机版网站建设专业推广公司
  • 2023近期舆情热点事件seo工具优化软件
  • 做任务刷王者皮肤网站360社区app
  • 网站建设中怎样设置背景中国seo高手排行榜
  • 跨境电商自建站是什么意思域名注册商
  • 中海外城市建设有限公司网站品牌营销策略包括哪些内容
  • win7网站服务器制作软件哪个软件可以自动排名
  • 网站建设论文摘要如何设计与制作网页
  • 做付费动漫网站b站2023年免费入口
  • 制作一个购物网站百度网盘电脑版登录入口
  • 计算机科学与技术 开题报告 网站建设万物识别扫一扫
  • 个人网站可以做资讯小说类百度百科官网首页
  • 深圳网站建设seo优化武汉网站推广公司排名
  • 盘锦如何做百度的网站运营培训班学费大概多少
  • 个人做网站花多少钱网站如何做推广
  • 北京市政府网站首都之窗百度网站管理员工具
  • sfda的网站的建设特点做企业推广的公司
  • 咸阳市城乡建设规划局网站如何在百度发布广告
  • 杭州电商网站策划设计seo智能优化软件
  • wordpress 摘要 回车手机流畅优化软件
  • 苍南做网站哪里找公司网站建设哪个好
  • 男女做羞羞羞的网站软文代写服务
  • 百度收录动态网站是不是比静态难seo专员招聘
  • 靠谱的建站团队典型的口碑营销案例