- 博客(23)
- 资源 (13)
- 收藏
- 关注
原创 调试中的常用函数——log short2wide wide2short wToLower upToLower
<br />写log注意事项: char succnotice[260] = "open progress:"; ZeroMemory(&succnotice[strlen("open progress:")+1],260-strlen("open progress:")-1);//记得清空 strcat(succnotice, protecteProcName); log(succnotice, strlen(succnotice
2011-05-30 11:13:00 1172 1
原创 内网连接检测
<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 1787
原创 外网连接检测
<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 5648
原创 检测USB和SD卡存储设备的接入和移除
<br />方法一:依赖窗口<br />方法二:从注册表入手<br /> <br /> <br />方法一:<br /> <br /> <br />由于USB存储设备和SD卡都是存储设备,<br /> 当设备接入的时候枚举注册表路径"HKEY_LOCAL_MACHINE//Drivers//Active"下的子键,根据 p->dbcp_name;查找自检中与此值匹配的项,查找该项的键项"Key"的值是否包含"Drivers//USB//ClientDrivers//Mass_Storage_Cl
2011-05-30 11:08:00 2780
原创 硬件设备的监控处理之四——SD卡的禁用和启用
思路:与USB设备的禁用启用类似,只是关系的注册表路径不一样,原理是完全一样的禁用: SD卡是存储设备,如果存储设备被打开其它人就没办法使用即可实现禁用效果,并且将"System//StorageManager//Profiles//SDMemory";中写入键项 MountHidden= 1,dismount掉SD卡启用: 将"System//StorageManager//Profiles//SDMemory";中写入键项 MountHidden= 0,mountSD卡
2011-05-30 11:03:00 4370
原创 硬件设备的监控处理之三——(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 4892
原创 硬件设备的监控处理之二——(网卡的禁用和启用)
思路:获取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 2674 2
原创 硬件设备的监控处理之一——(串口的禁用和启用)
监控注册表的通用结构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 8234
原创 注册表处理之(监控注册表的通用结构)
<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 1141
原创 注册表处理之(根据注册表路径获取主键值和子键值)
<br /> <br />根据注册表路径获取主键值和子键值<br /> <br />1.获取主键值<br />HKEY GetMainKeyName(char SubKey[MAX_PATH]){ HKEY hMainKey; char *delim="//"; char *p; p = strtok(SubKey,delim); if(strcmp("HKCU",p) == 0) hMainKey = HKEY_CURRENT_USER; else if(strcmp("H
2011-05-30 10:40:00 2112
原创 注册表处理之(写入DWORD类型或者字符串类型的键项值)
<br />写入DWORD类型或者字符串类型的键项值 HKEY hKey; DWORD dw; RegOpenKeyEx(hMainKey,subKey,0,0,&hKey);//打开子键 if(1 == valueType)//DWORD类型的数据 { //字符串转成DWORD类型的数据 char * value = wide2short(readin_szValue); DWORD dwDat
2011-05-30 10:37:00 3423
原创 注册表处理之注册表结构存储
<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 1486
原创 注册表处理之注册表监控
<br /> <br />需求:<br /> 监控指定的注册表项包括其子项和键项的变化,当变化发生时根据策略进行处理(添加/删除/修改子项, 添加/删除/修改键值)<br />思路:<br /> 1)程序启动,存储需要监控的注册表项包括其子项和键项的值<br /> 2)监控注册表,当变化发生时再次去取注册表项包括其子项和键项的值,将前后两次进行比较,找出不同,根据用户的策略进行处理<br /> 知识点:<br /> 监控注册表<br />
2011-05-30 10:28:00 3511
原创 注册表处理之注册表检查
<br /> <br />需求:<br /> 检查指定的注册表项的键值是否与给定的键值相同,同样是起线程不断检查<br />思路:<br /> 1)打开需要检查的注册表项,查找该项的键值是否与给定的值相等,根据策略进行相应处理(添加,删除,修改键值或者不处理)<br /> 2)监控这些注册表项,有变化发生时再次进行检查,根据策略进行相应处理<br /> <br /> <br />实现步骤:<br /> <br />1.初始化数据<br />2.启动监控<br />3. 检查键值
2011-05-30 10:04:00 2781 1
原创 进程处理之进程监控
<br />用户需求: 对用户自定义进程进行监控,每个进程自己的属性(允许运行,禁止运行和必须运行),当发现进程违规时进行相应处理思路: 每个进程都有一个结构体,自创结构体存储进程名,在系统中获取进程快照,查看用户自定义进程是否运行,然后根据进程属性进行处理(启动,杀死或者不处理进程)。<br /> <br /><br />进程处理:<br /> <br />//杀死违规进程<br />HANDLE hp = OpenProcess(PROCESS_TERMINATE,FALSE,
2011-05-30 09:55:00 1045 1
原创 进程处理之进程保护
<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 1982 2
原创 回顾过去的几个月
<br /> 过去的几个月好像也发生了很多事情,我觉得我是对某某有意思,但是人家对我没感觉。 想想我的本体我觉得很难受,整了10多天了没什么进展 rater得了两颗星太丢脸了,现在看文档看得想吐 英语口语的学习也没多少进步,又懒不知道怎么开口 想出去实习的事情但愿不要泡汤,那我就必须尽快把的我毕设题目做点东西出来 很久以前就说要把做过的工程好好地理清楚,到现在也没有做,今天晚上做!<br /> 今年师兄师姐的工作都找得很好,大家都认为进银行进国企最好,但是我为什么还是想进私企
2011-05-29 16:52:00 961
原创 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 1179
原创 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 1975
原创 创建导出对话框的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 838
原创 用户名密码认证
思路:1.从配置文件中读取合法的用户名和密码信息2.从窗口获取用户输入的用户名密码信息并进行匹配 1.从配置文件中读取合法的用户名和密码信息将从配置文件中读取的信息存入结构体UserInfor * m_userlist;中配置文件的格式如下(@隔开用户名和
2011-05-25 22:38:00 1279
原创 重回toastmaster
<br /> 在toaster消失了5个月以后,今天终于鼓起勇气去了。当然也丢脸了,好多人估计都记得有个叫terry的家伙上去直哆嗦。最重要的是要坚持,那么多人都上班了
2011-05-25 22:27:00 907
原创 今天去了toastermaster
<br /> 在toaster消失了5个月以后,今天终于鼓起勇气去了。当然也丢脸了,好多人估计都记得有个叫terry的家伙上去直哆嗦。最重要的是要坚持,那么多人都上班了还那么积极上进!我也不能落后哦,好好学习英语,好好练习口语,好好锻炼,好好找工作,加油!
2011-05-24 23:26:00 3432
自定义TreeListCtrl
2013-11-27
调试跟踪工具OllyDbg+1.09中文版
2013-02-27
swiEditor相关资料
2011-09-02
程序皮肤文件,使用方法及实例
2011-01-06
托盘图标的制作,双击托盘图标重新打开窗口,点击托盘图标右键可以选择是打开窗口还是退出程序
2010-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人