![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Wince 开发笔记
Huaerge
这个作者很懒,什么都没留下…
展开
-
wince键盘钩子的实现
<br /> wince不是不支持,是间接支持<br /> <br /> dll中仅提供实际的钩子函数,安装和卸载钩子都在应用程序中进行<br /> 导出钩子实现回调函数:KeyProc<br />HOOKCE32_API LRESULT CALLBACK KeyProc(int nCode, WPARAM wParam, LPARAM lParam);#include <windows.h>#include <commctrl.h>//#include "pwinuser.h原创 2011-05-25 23:19:00 · 1971 阅读 · 0 评论 -
内网连接检测
<br />思路:ping网关,若能ping通则与内网连接,否则认为没有与内网连接。<br />实现如下:<br />bool ping() { // 目的IP地址,即要Ping的IP地址 //char szDestIp[] = "119.147.15.13"; // 127.0.0.1 const char * szDestIp = getGateway(); //if(szDestIp == NULL) if(strlen(szDestIp) ==原创 2011-05-30 11:11:00 · 1782 阅读 · 0 评论 -
硬件设备的监控处理之三——(USB设备的禁用和启用)
<br />两种方法,<br />方法一 查找注册表<br /> <br /> <br />思路:首先枚举注册表路径"HKEY_LOCAL_MACHINE//Drivers//Active"下的子键,从子键中查找键项"Key"的值是否包含"Drivers//USB//ClientDrivers//Mass_Storage_Class"字段,如果包含再取该键的键项"Name"的值,获取名字devName后调用如下代码,实现禁用<br /> <br />HANDLE hnd = OpenStore(devNam原创 2011-05-30 11:00:00 · 4871 阅读 · 0 评论 -
硬件设备的监控处理之二——(网卡的禁用和启用)
思路:获取IfTable表,得到设备当前的状态是MIB_IF_ADMIN_STATUS_UP还是MIB_IF_ADMIN_STATUS_DOWN实现: 1)先检测网卡的状态checkNetStatus() 2)根据网卡的当前状态来决定启用和禁用检测网卡的状态checkNetStatus()包含头文件和库#include #include #pragma comment(lib, "iphlpapi.lib") bool checkNetStatus()原创 2011-05-30 10:51:00 · 2670 阅读 · 2 评论 -
进程处理之进程监控
<br />用户需求: 对用户自定义进程进行监控,每个进程自己的属性(允许运行,禁止运行和必须运行),当发现进程违规时进行相应处理思路: 每个进程都有一个结构体,自创结构体存储进程名,在系统中获取进程快照,查看用户自定义进程是否运行,然后根据进程属性进行处理(启动,杀死或者不处理进程)。<br /> <br /><br />进程处理:<br /> <br />//杀死违规进程<br />HANDLE hp = OpenProcess(PROCESS_TERMINATE,FALSE,原创 2011-05-30 09:55:00 · 1043 阅读 · 1 评论 -
注册表处理之(监控注册表的通用结构)
<br /> <br />监控注册表的通用结构<br />1、变量定义<br />2、初始化<br />3、创建监控线程<br />4、线程函数<br />5.线程结束<br /> <br />1、变量定义<br />HANDLE hStopEvent;<br />HKEY *hkDriversList;<br />HANDLE m_hdmonitorthread;//注册表改变监控线程<br />HANDLE *hFindList; <br /> <br />//监控线程相关的变量和函数<br />BOO原创 2011-05-30 10:42:00 · 1138 阅读 · 0 评论 -
注册表处理之注册表结构存储
<br />注册表是一个树形结构,树形结构可根据递归来存储<br />实现步骤:<br />1. 首先自定义存储注册表信息的结构体<br />2.构造函数GetRegValueStruct根据主键和子键存储键项值<br />3.构造函数GetRegStruct根据主键和子键存储整个注册表结构<br />具体实现如下:<br /> <br /> <br />1. 首先自定义存储注册表信息的结构体<br />自定义存储结构体typedef struct __REG_VALUE_CTRL //存储键值的原创 2011-05-30 10:33:00 · 1484 阅读 · 0 评论 -
注册表处理之注册表监控
<br /> <br />需求:<br /> 监控指定的注册表项包括其子项和键项的变化,当变化发生时根据策略进行处理(添加/删除/修改子项, 添加/删除/修改键值)<br />思路:<br /> 1)程序启动,存储需要监控的注册表项包括其子项和键项的值<br /> 2)监控注册表,当变化发生时再次去取注册表项包括其子项和键项的值,将前后两次进行比较,找出不同,根据用户的策略进行处理<br /> 知识点:<br /> 监控注册表<br />原创 2011-05-30 10:28:00 · 3500 阅读 · 0 评论 -
注册表处理之注册表检查
<br /> <br />需求:<br /> 检查指定的注册表项的键值是否与给定的键值相同,同样是起线程不断检查<br />思路:<br /> 1)打开需要检查的注册表项,查找该项的键值是否与给定的值相等,根据策略进行相应处理(添加,删除,修改键值或者不处理)<br /> 2)监控这些注册表项,有变化发生时再次进行检查,根据策略进行相应处理<br /> <br /> <br />实现步骤:<br /> <br />1.初始化数据<br />2.启动监控<br />3. 检查键值原创 2011-05-30 10:04:00 · 2748 阅读 · 1 评论 -
外网连接检测
<br /> <br />思路:<br /> <br />1.首先查看当前网卡状态,如果网卡状态为down,没有必要进行下面的测试,直接判定为没有与外网连接bool checkNetStatus()<br />2.若网卡状态为up,再检测是否能访问某个网址int checkNET(char* url,char * keystr)<br /> <br /> <br /> <br />查看当前网卡状态,如果网卡状态为down,没有必要进行下面的测试,直接判定为没有与外网连接<br /> <br />bool c原创 2011-05-30 11:10:00 · 5640 阅读 · 0 评论 -
硬件设备的监控处理之一——(串口的禁用和启用)
监控注册表的通用结构1、变量定义2、初始化3、创建监控线程4、线程函数5.线程结束1、变量定义HANDLE hStopEvent;HKEY *hkDriversList;HANDLE m_hdmonitorthread;//注册表改变监控线程HANDLE *hFindList; //监控线程相关的变量和函数BOOL g_bReturn = FALSE;DWORD g_dwThreadID;void WINAPI user_regmonitor();2、初始化void InitialData()//对结原创 2011-05-30 10:44:00 · 8222 阅读 · 0 评论 -
进程处理之进程保护
<br /> <br />思路:查询当前系统中运行的进程的快照,如果欲保护的进程在快照中则表示进程处于运行状态,如果欲保护进程不在快照中,则启动进程。<br />步骤:<br /> 创建线程函数<br />{<br /> 检查进程是否运行<br /> 若未运行启用进程<br />}<br /> <br />步骤一:<br /> <br />检查某进程是否处于运行状态,实现代码如下:<br />运行:返回1<br />未运行或加载toolhelp.dll失败:返回-1<br />int DetectPr原创 2011-05-30 09:51:00 · 1977 阅读 · 2 评论 -
硬件设备的监控处理之四——SD卡的禁用和启用
思路:与USB设备的禁用启用类似,只是关系的注册表路径不一样,原理是完全一样的禁用: SD卡是存储设备,如果存储设备被打开其它人就没办法使用即可实现禁用效果,并且将"System//StorageManager//Profiles//SDMemory";中写入键项 MountHidden= 1,dismount掉SD卡启用: 将"System//StorageManager//Profiles//SDMemory";中写入键项 MountHidden= 0,mountSD卡原创 2011-05-30 11:03:00 · 4363 阅读 · 0 评论 -
创建导出对话框的dll
<br /> <br />注意:项目属性中<br />1) 链接器->输入的模块定义文件加入def文件名 Authentication.def<br />2)常规中MFC的使用选择:在静态库中使用MFC<br />否则会出现问题(LoadLibrary 加载的DLL,要加载这个dll所使用的所有模块 你这个DLL是使用MFC动态编译的 在这个路径下他没找到MFC的动态库模块 所以就加载失败了)<br />def文件; Authentication.def : 声明DLL 的模块参数。LIBRARY原创 2011-05-25 23:14:00 · 835 阅读 · 0 评论 -
CE下对话框程序全屏与隐藏对话框
<br />CE下对话框全屏<br /> <br />1. 将dialog属性中的styles的title bar去掉<br />2. 在dialog初始化时加入:<br /> //对话框全屏显示 int iFullWidth = GetSystemMetrics(SM_CXSCREEN); int iFullHeight = GetSystemMetrics(SM_CYSCREEN); ::SetWindowPos(this->m_hWnd, HWND_TOPMOST, 0, 0, iFull原创 2011-05-25 23:23:00 · 1172 阅读 · 0 评论 -
用户名密码认证
思路:1.从配置文件中读取合法的用户名和密码信息2.从窗口获取用户输入的用户名密码信息并进行匹配 1.从配置文件中读取合法的用户名和密码信息将从配置文件中读取的信息存入结构体UserInfor * m_userlist;中配置文件的格式如下(@隔开用户名和原创 2011-05-25 22:38:00 · 1276 阅读 · 0 评论