windows sdk
文章平均质量分 71
l460602540
这个作者很懒,什么都没留下…
展开
-
sendinput函数实现改键
以前写过用钩子拦截按键消息实现改键,最近在论坛上看到下面这种方法,在此总结一下与大家分享。欢迎指正。 //模拟按键,把自定义消息添加到消息队列中。该方法是先借用低级键盘钩子判断按键消息。1,sendinput函数的介绍:UINT SendInput(UINT nInputs,//在消息队列中添加消息的个数【Number of structures in the pInputs ar原创 2011-10-22 18:58:31 · 3752 阅读 · 0 评论 -
dll导出类的实现
首先是在dll中实现类得声明 。添加inc.h头文件class __declspec(dllexport) CPreson{private: char szName[128]; int age;public: CPreson(); ~CPreson(); CPreson(char* lpName,int nAge); friend void CreateObj(int x);原创 2012-03-26 13:07:52 · 14133 阅读 · 1 评论 -
使用内存读写函数实现进程间通信
使用内存读写函数实现进程间通信 自定义消息和内存读写函数(ReadProcessMemory()和WriteProcessMemory())相结合,利用他们各自的长处进行通信。 自定义消息通信只能传递一个长整型数值,而内存读写函数却需要一个内存读写地址,并且缺少一个传递数据指针的方法。 这样他们正好可以“合作”来进行大批量的数据传递工作。发送端的工作:原创 2011-09-29 19:41:42 · 2225 阅读 · 0 评论 -
关于Windows文件读写(提高读写速度)
这几天在研究怎么才能加快windows文件读写速度,搜了很多文章,MSDN也看了不少。稍微给大家分享一下。限制windows文件读写速度的瓶颈其实最终还是来源于我们硬盘的固有特性,磁盘本身的转速和硬盘的串行化工作机制。我们所能做的只是改善软件实现方法去逼近硬盘的极限读写速度。平时我们在拷贝粘贴文件的时候,其实是用的windows本身的实现,其中有一个很大的影响速度的地方就是它们都用了win转载 2011-11-16 15:59:33 · 9446 阅读 · 3 评论 -
用CfileFind递归搜索目录
我们知道CfileFind未提供直接遍历其子目录的功能,而有时候我们却常常要遍历某一目录下的所有文件及其子目录。如我们要删除一个目录,而这个目录下又有子目录,因为Windows不允许删除非空的目录,因此我们必须能够遍历一个目录下的所有子目录,这可以通过简单的递归实现. 下面让我们从一个简单的例子开始:如何删除某一目录?(假设我们通过DeleteDirectory(LPCTSTR DirN转载 2011-11-10 22:01:10 · 812 阅读 · 0 评论 -
正确的加载自己写的dll
怎么能让程序正确的加载自己写的dll(1)把dll放在程序的debug目录下,在进行关联。(2)直接把DLL放在c:\windows\system目录下(3)添加环境变量 a,system(set Path = %Path%d:\\mydll); b,BOOL WINAPI SetDlldirctory(LPCTSTR LpPathName); 顺便给自己补原创 2011-10-25 21:11:43 · 1122 阅读 · 0 评论 -
两种方法枚举进程加载的DLL
两种方法枚举进程加载的DLL枚举进程加载的模块(1)控制台实现方法 命令:tasklist -m >d:\\1.txt 这样就会把系统当前运行的程序所加载的DLL全部打印到1.txt中。 也可以#include void main(){ system("tasklist -m >d:12343.txt");}另外也可以通过 CreateProces原创 2011-10-24 21:27:16 · 2575 阅读 · 0 评论 -
远程注入技术
远程注入技术:BOOL Inject(LPCTSTR szModule, DWORD dwID)//第一参数是注入的Dll的地址,第二参数是想要注入进程的PID{HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROC原创 2011-09-01 18:02:14 · 646 阅读 · 1 评论 -
自定义消息实现进程间的通信
自定义消息实现进程间的通信想要用消息实现进程间的通信,则需要在这两个程序中定义或注册相同的消息,才能保证数据通信的进行消息分为两种:1,系统消息2,用户自定义消息。 系统消息的定义是从0到0x3FF,用户可以使用0x400到0x7FFF定义自己的消息。 windows 已经把0x400定义为 WM_USER。用户在定义自己的消息的时候可以在 WM_USER 上加一个值原创 2011-09-04 17:16:10 · 1247 阅读 · 1 评论 -
VC6升级到VS2008(VC9.0)的变化
1.MessageBox() VC++6.0:MessageBox("Hello,World!"); VS2008:MessageBox(L"Hello,World!"); 或 MessageBox(TEXT("Hello,World!")); 2.Combo box内容添加方法 VC++6.0:Drop-Down List Box Control 的 Prop转载 2011-09-03 21:35:51 · 1649 阅读 · 0 评论 -
在VC++MFC下如何定义全局变量和全局函数
作者:风林 来源:风林的家 --------------------------------------------------------------------------------用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现,这里只介绍转载 2011-09-04 20:21:16 · 4394 阅读 · 0 评论 -
窗口刷新的几个函数:Invalidate UpdateWindow RedrawWindow
一:什么时候才会发生重绘窗口的消息? 当需要更新或重新绘制窗口的外观时,应用程序就会发送WM_PAINT消息。对窗口进行重新绘制。 二:Invalidate() -- RedrawWindow() -- UpdateWindow()三个函数有什么异同? Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()转载 2011-09-05 22:03:38 · 1192 阅读 · 1 评论 -
窗口的枚举和查找
TCHAR titleText[MAX_PATH] = {0};HWND nHwnd = ::GetWindow(::GetDesktopWindow(),GW_CHILD);//获取桌面窗口的子窗口句柄。while (nHwnd != NULL){ ::GetWindowText(nHwnd,titleText,MAX_PATH); nHwnd = ::GetWindow(n原创 2011-09-11 14:38:10 · 778 阅读 · 2 评论 -
提高访问权限
要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作,只要当前进程具有SeDeDebug权限就可以了。要是一个用户是Administrator或是被给予了相应的权限,就可以具有该权限。可是,就算我们用Administrator帐号对一个系统安全进程执行OpenProcess(PROCESS_ALL_ACCESS,FALSE, dwProcessID)还转载 2011-09-01 18:00:40 · 592 阅读 · 0 评论 -
远程注入代码
// InjectCode.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#includetypedef struct _REMOTE_PARAMETER{ CHAR m_msgContent[MAX_PATH]; CHAR m_msgTitle[MAX_PATH]; DWORD m_dwMessageBoxAddr;}Remot原创 2012-03-19 16:42:39 · 1853 阅读 · 0 评论