摘要:
今天很高兴,得一哥们指点,C#实现键盘钩子功能。这一个也可以使用hardwareButton组建实现。参考:http://msdn.microsoft.com/zh-cn/library/ms172536(VS.80).aspxhttp://edu.cnzz.cn/NewsInfo/25976.aspxhttp://download.csdn.net/source/1062596 阅读全文
摘要:
http://www.cnblogs.com/huaping-audio/archive/2009/12/10/1620836.htmlhttp://blog.csdn.net/tonxi/archive/2006/08/30/1142893.aspx1.1DMO的工程创建过程DMO其实就是一个COM组件,是一个加了微软一种媒体处理解决方案的特殊的COM。因此你可以使用Visual C++的ATL来实现,此次创建的工程是以Visual C++2003+WinxpSp2为开发平台。下面说明如何使用ATL创建一个工程:1)启动Visual C++20032)点击“文件”->“新建”-> 阅读全文
摘要:
A number of Windows Mobile 5.0 APIs (for example, SHCameraCapture) make it trivial for a mobile application developer to access a camera, but their ease of use comes at a price—flexibility. Most of the time, using the API directly would offer a solution, but sometimes you need more control and flexi 阅读全文
摘要:
我在编译SDK自带的Cameracapture的例子时,出现========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========1> ------ 已启动生成: 项目: CameraCapture, 配置: Release Windows Mobile 5.0 Pocket PC SDK (ARMV4I) ------1> 正在链接...1> graphmanager.obj : error LNK2001: 无法解析的外部符号 IID_IMediaEvent1> graphmanager.obj : ... 阅读全文
摘要:
1.WinMain进入循环之前,通常会有UpdateWindow来向窗口过程投放WM_PAINT消息。2.触发WM_PAINT消息的事件:之前隐藏的窗口部分重新可见;改变窗口的大小;ScrollWindow或ScrollDC滚动客户区;InvalidRect或者InvalidRgn显示产生WM_PAINT消息;而Validate则会将WM_PAINT取消掉。3.程序应该组织成可以保留绘制客户区需要的所有信息。4.客户区无效区域、有效区域的理解,处理WM_PAINT时,窗口过程可以通过GetUpdateRect获取无效区域的坐标。5.设备描述表总是与显示器上的特定窗口相关。6.WM_ERASEB 阅读全文
摘要:
Note:1.Windows程序员开始时总是复制一段代码然后做相应修改(重点是深刻体会过程)2.常量前缀注记:CS —— Class Stye 类风格选项 CW —— Create Window创建窗体选项 DT —— Draw Text 绘制文本选项IDI —— ID of Icon 图标ID号IDC —— ID of Cursor 光标ID号 MB —— MessageBox 消息框选项SND —— Sound 声音选项 WM —— Window Message 窗口消息WS —— Window Style 窗口风格WParam——WcharParam(16bit)LParam—— Lon 阅读全文
摘要:
1. Unicode vs ASCII typedef unsigned short wchar_t:char-一个字节位,wchar_t-两个字节,仅此而已2. wchar下的字符函数wchar_t szWchar[3]=L“ab”;strlen(szWchar); 输出1 ? wchar_t类型的'a'内存中为6100, 结果可以理解 相应的调用wstrlen(szWchar) 输出2。字符串长度不变,只是字节数改变。类似的其他函数在wchar.h头文件中可参阅。3.TCHAR的引入 通过宏定义统一管理char、wchar_t两种类型。 #define _t(x) L##x 阅读全文
摘要:
BaseClasses中实现COM的部分源代码分析[combase.h/combase.cpp]classCBaseObject是BaseClasses中的基类,它只维护一个m_cObjects的计数信息。同时它只支持输入名称的Constructor。CUnknown是实现了COM的基类,它从INonDelegationUnknown接口继承支持Aggregation。同时它使用Member作为Delegation Unknown接口:constLPUNKNOWNm_pUnknown;同时它维护了COM的Reference Count-volatileLONG m_cRef;它的Constru 阅读全文
摘要:
Window程序设计, 类比到C程序设计。1.int WINAPI WinMain(HINTSTANCE,HINSTANCE,LPSTR,int ) int main(int argc, char[] argv) Note:a.#define WINAPI __stdcallstdcall: 约定编译器的代码生成方式,主要涉及函数参数压栈即销毁方式,具体可参考文章“__stdcall,__cdecl和__fastcall的作用” b.参数:两个HINSTANCE分别为程序实例标志,第一个为当前句柄,第二个为已运行的本程序实例句柄,32位windows已 抛弃第二个,因此全设为NULL,LPS. 阅读全文
摘要:
说明: 这篇文章简单介绍Windows Moble 自定义DirectShow SampleGrabber 过滤器。背景: 在我目前的.NET CF项目中需要做一些实时视频分析。但是.NET API仅仅可以取得静态照片或者录音,他不能够访问视频流,这样我可以分析视频流。所以我选择了DirectShow API,它提供了对对视频流更好的控制,但是他还缺少ISampleGrabber接口,这个接口能使DirectShow库完全在Windows运行。接下来的是自定义一个实现ISampleGrabber接口并能允许开发者进入视频缓冲数据的DirectShow过滤器。设置你的Visual Studio 阅读全文
摘要:
CameraCaptureDialog 后必须手动按“确定”然后“退出”,才能拍照, 怎样使用 CameraCaptureDialog 实现自动、定时拍照呢?可以使用System.Windows.Forms.Timer 、SendMessage方法实现,Timer方法必须在主线程中。实现代码:public partial class Form1 : Form { /* [DllImport("CoreDll")] public static extern IntPtr FindWindow( string lpClassName, // class name string 阅读全文
摘要:
1、XML 适合快速只进方式查询数据book和医药项目都曾用到。2、SQLitebook项目中用到 阅读全文
摘要:
1、九宫格参考:http://blog.csdn.net/xyz_lmn/archive/2009/11/11/4797902.aspx2、自定义listview参考:http://blog.csdn.net/xyz_lmn/archive/2009/11/13/4808277.aspx 阅读全文
摘要:
1、web service 其实就是HTTP+XML,调用就是添加一个web引用,调用其方法,详细了解可参考: http://www.devdiv.net/blog/space-14682-do-blog-classid-97-view-me.html2、HTTP (1)HTTP post数据 参考:http://www.devdiv.net/blog/space-14682-do-blog-id-402.html(2)Http 下载 http://www.devdiv.net/bbs/thread-20727-1-1.html (3)http上传 参考PBookOn服务端、客户端。 3、so 阅读全文
摘要:
今天总工在群里找人写一下会议纪要呢,本来想表现一下,自己主动提出来写,自己也在群里说了,找资料,看笔记,刚打了个草稿。群里有人发了,而且写得还很详细。弄得我那个郁闷啊。自己都不知道说什么了。 自己从这件事还是学到点东西: 1、事情干好再说,不要没做呢就说出来,也不要干了半截就给人说,一定要做完。 2、低调做事。 阅读全文
摘要:
Windows CE设备并不总是有鼠标的。作为替代,许多Windows CE设备都有触摸屏和手写笔。鼠标消息鼠标光标无论在什么时候移过屏幕,光标下的最顶层窗口都会收到一个WM_MOUSEMOVE消息。如果用户点鼠标左键或者右键,窗口会收到WM_LBUTTONDOWN或WM_RBUTTONDOWN消息;而当用户释放按键时,窗口则会收到WM_LBUTTONUP或WM_RBUTTONUP消息。如果用户按下并释放鼠标滚轮,窗口会收到WM_MBUTTONDOWN及WM_MBUTTONUP消息。对所有这些消息,wParam和lParam都具有相同的值。wParam包含一个标志位集合,用来指出当前键盘上Ct 阅读全文
摘要:
线条和形状同Windows其它版本相比,Windows CE提供相当少的功能的领域之一就是基本线条绘制和形状绘制功能。用来创建复杂环形的Chord, Arc, 和Pie函数被去掉了。大部分使用"当前点[current point]"概念的函数也被去掉了。除了MoveToEx, LineTo和GetCurrentPositionEx外,处理当前点的其它GDI函数都不被Windows CE支持。因此想用 ArcTo、PolyBezierTo等函数来绘制一系列连接的直线和曲线是不可能了。不过即使在缺少很多图形函数的情况下,Windows CE依然提供了绘制直线和形状所需要的基本函 阅读全文
摘要:
在上一节中给出了如下方法绘制文本 DrawText (hdc, TEXT ("Hello Windows CE!"), -1, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE); DrawText是一个相当高级的函数,允许由程序显示文本,而由Windows处理大部分细节。DrawText的头几个参数几乎是不言而喻,很直观。当前正在使用的设备环境句柄被传入,同时传入的还有被TEXT宏包围的用来显示的文本,声明成Unicode字符串是为了符合Windows CE的需要。第三个参数是要输出的字符个数,当为-1,则表示传入的是以N 阅读全文
摘要:
程序中创建了主窗口,所以它必须为主窗口注册一个窗口类,创建窗口并且提供一个消息循环来为窗口处理消息。注册窗口类ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass){WNDCLASS wc;wc.style = CS_HREDRAW | CS_VREDRAW;wc.lpfnWndProc = WndProc;wc.cbClsExtra = 0;wc.cbWndExtra = 0;wc.hInstance = hInstance;wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(I 阅读全文
摘要:
我也不免俗的设计了HelloCE程序,用VS2008设计了三次win32项目,第一次选择了项结果生成了一个空项目,项目中除了三个空文件夹,再什么也没有;第二次是一步一步执行下去,生成了应用程序的基本框架,窗口设计、窗口过程都有了,基本就是做个填空题就能生成一个小程序。自动生成的程序中,饱受责难的地方就是在窗口过程中总是使用巨大的switch语句。switch语句分析传给窗口过程的消息,这样每个消息可以被独立的处理。这种标准结果的优势之一是强制把一个类似的结构加到几乎所有Windows应用程序中,这使一个程序员可以更容易理解另一个人的代码。劣势是 整个窗口过程的所有的变量通常会比较杂乱的出现在过 阅读全文
摘要:
基于Windows的编程远不同于基于MS-DOS或Unix的编程。只要是程序需要,任何时候基于MS-DOS或Unix的程序都可以使用getc-或putc风格的函数从键盘读取字符并写到屏幕上。这是MS-DOS或Unix程序所使用的典型的"Pull"(拉)风格,这种风格是面向过程的,而一个Windows程序,则使用"Push"(推)模式。在这种模式下,必须编写程序来响应来自操作系统的通知,比如一个键被压下去了或者收到一个重绘屏幕的命令。Windows应用程序并不从操作系统请求输入,而是由操作系统通知应用程序输入产生了。操作系统通过发送消息(messages) 阅读全文
摘要:
MessageBox (NULL, TEXT ("Hello World"), TEXT ("Hello2"), MB_OK);MessageBox函数原型如下:int MessageBox (HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);第1个参数是顶层窗口的句柄,它是消息窗口的父窗口。目前我们把这个参数置为NULL,因为Hello2还没有任何其它窗口。第2个参数是准备显示在窗口里的文字。注意传入的字符串是用TEXT宏包裹的,确保它能够编译成Unicode版本。第3个参数lpCapt 阅读全文
摘要:
我们知道钩子编程是DESKTOP当中相当常见的方式,不过WINCE下实现很麻烦。我前一段做了个这方面的小应用,给大家分享一下! 参看WinCE的winbase.h,wince下可以使用以下三种: #define WH_JOURNALRECORD 0#define WH_JOURNALPLAYBACK 1 #define WH_KEYBOARD_LL 20wince并不支持钩子。但是是不是不支持呢?只能说不直接支持钩子,用别的方法也是可以使用钩子函数的,那就是直接获取钩子函数地址,然后调用的方法。g_hHookApiDLL = LoadLibrary(_T("coredll.dll&q 阅读全文
摘要:
wince下支持三种钩子:1.#define WH_JOURNALRECORD 0使应用程序可以监视输入事件。典型地,应用程序使用该HOOK记录鼠标、键盘输入事件以供以后回放。该HOOK是全局HOOK,并且不能在指定线程中使用。2.#define WH_JOURNALPLAYBACK 1使应用程序可以向系统消息队列中插入消息。该HOOK可以回放以前由WH_JOURNALRECORD HOOK录制的鼠标、键盘输入事件。在WH_JOURNALPLAYBACK Hook安装到系统时,鼠标、键盘输入事件将被屏蔽。该HOOK同样是一个全局HOOK,不能在指定线程中使用。WH_JOURNALPLAYBAC 阅读全文
摘要:
Hook(钩子)是一种在消息到达目标窗口前进行截获的技术。使用钩子主要使用以下三个函数SetWindowsHookEx:创建钩子CallNextHookEx:将消息传给钩子链中的下一个钩子UnhookWindowsHookEx:释放钩子对于创建钩子的函数SetWindowsHookEx,MSDN给出其原形如下:HHOOK SetWindowsHookEx(int idHook, // type of hook to installHOOKPROC lpfn, // address of hook procedureHINSTANCE hMod, // handle to application 阅读全文