2009-08 归档
共 36 篇
WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过"钩挂",您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做"钩子函数",当每次发生您感兴趣的事件时,WINDOWS都将调用该函数。一共有两种类型的钩子:局部的和远程的。 ·局部钩子仅钩挂您自己进程的事件。 ·远程的钩子还可以将钩挂其它进程发生的事件。 远程的钩子又有两种: ·基于线程的 它将捕获其它进程中某一特定线程的事件。简言之,就是可以用来观察其它进程中的某一特定线程将发生的事件。 ·系统范围的 将捕捉系统中所有进程将发生的事件消息。 当您创建一个钩子时,WINDOWS会先在内存中创建一个数据结构,该数据结构包含了钩子的相关信息,然后把该结构体加到已经存在的钩子链表中去。新的钩子将加到老的前面。当一个事件发生时,如果您安装的是一个局部钩子,您进程中的钩子函数将被调用。如果是一个远程钩子,系统就必须把钩子函数插入到其它进程的地址空间,要做到这一点要求钩子函数必须在一个动态链接库中,所以如果您想要使用远程钩子,就必须把该钩子函数放到动态链接库中去。当然有两个例外:工作日志钩子和工作日志回放钩子。这两个钩子的钩子函数必须在安装钩子的线程中。原因是:这两个钩子是用来监控比较底层的硬件事件的,既然是记录和回放,所有的事件就当然都是有先后次序的。所以如果把回调函数放在DLL中,输入的事件被放在几个线程中记录,所以我们无法保证得到正确的次序。故解决的办法是:把钩子函数放到单个的线程中,譬如安装钩子的线程。…
👤 博主
📅 2009-08-29
📂 Win编程
👁 4615
👍 0
🔄 来源:福建省邮电学校
阅读全文 →
InterceptKeys.cs: 监视示例: 参考资料 .C# 键盘监视+剪切板编程:http://www.cnblogs.com/over140/archive/2007/11/05/934452.html .看看C# Hook 如何实现:http://developer.51cto.com/art/200908/147057.htm .如何在C#中使用全局鼠标、键盘Hook:http://www.cnblogs.com/michaelxu/archive/2006/09/22/511557.html .SetWindowsHookEx:http://msdn.microsoft.com/zh-cn/library/ms644990(v=vs.85).aspx
👤 博主
📅 2009-08-28
📂 Win编程
👁 11906
👍 0
🔄 来源:cnblogs.com
阅读全文 →
Hotkey.cs: Form1.cs:
👤 博主
📅 2009-08-28
📂 Win编程
👁 6179
👍 0
🔄 来源:cnblogs.com
阅读全文 →
6.2.1 简介 GIF(Graphics Interchange Format)是CompuServe公司开发的图像文件存储格式,1987年开发的GIF文件格式版本号是GIF87a,1989年进行了扩充,扩充后的版本号定义为GIF89a。 GFI图像文件以数据块(block)为单位来存储图像的相关信息。一个GIF文件由表示图形/图像的数据块、数据子块以及显示图形/图像的控制信息块组成,称为GIF数据流(Data Stream)。数据流中的所有控制信息块和数据块都必须在文件头(Header)和文件结束块(Trailer)之间。 GIF文件格式采用了LZW(Lempel-Ziv Walch)压缩算法来存储图像数据,定义了允许用户为图像设置背景的透明(transparency)属性。此外,GIF文件格式可在一个文件中存放多幅彩色图形/图像。如果在GIF文件中存放有多幅图,它们可以像演幻灯片那样显示或者像动画那样演示。…
👤 博主
📅 2009-08-28
📂 其他
👁 5100
👍 0
🔄 来源:qqread.com
阅读全文 →
广告商那边提供了一些swf素材让我们制作广告代码,在代码中点击swf时需打开一个页面,由于广告商未提供fla格式文件,我们只能想办法在页面代码中给swf添加链接,最开始想到的是在swf外添加一个: 结果链接并不起作用,应该是swf在浏览器中具有很高的优先级,页面中的元素都被遮挡住了。Google了下,据说将改为有用,测试了下: 在IE6、IE7、IE8、FF3.0、Opera9.6、Chrome2.0下均能打开链接,但在IE8、Opera9.6、Chrome2.0中显示有些问题: 修改了下button的padding属性,IE8、Opera9.6、Chrome2.0显示总算正常了: 美中不足的是页面上点击swf时会有个下沉的动作,有人建议禁用button,在button外再加个链接:…
👤 博主
📅 2009-08-20
📂 HTML/CSS
👁 11318
👍 0
🔄 来源:本站原创
阅读全文 →
Unix时间戳是指从1970-01-01 00:00:00开始到某个时间所经历的秒数,C#没有相关方法直接获取,网上搜了两个相关方法:
👤 博主
📅 2009-08-19
📂 Web编程
👁 8709
👍 0
🔄 来源:本站原创
阅读全文 →
Windows服务中有一全局变量,Windows服务停止、启动对全局变量会有什么影响?重新初始化?还是仍保持原先的值?做个测试: Windows服务代码: 说明:Windows服务中声明了一全局变量status,初始值为true,定时器启动后将status值更改为false,测试停止、启动服务后,status值的变化情况。 测试日志: 17:05:11:启动服务 17:05:21:TODO... status:True 17:05:31:TODO... status:False 17:05:41:TODO... status:False 17:05:51:TODO... status:False…
👤 博主
📅 2009-08-18
📂 Win编程
👁 5562
👍 0
🔄 来源:本站原创
阅读全文 →
下边两个属性都可以获取应用程序路径: ·System.AppDomain.CurrentDomain.BaseDirectory ·System.Windows.Forms.Application.StartupPath 两个属性值有一点区别:第一个属性最后边有"\",第二个没有。不推荐使用下边方法: ·System.Environment.CurrentDirectory ·System.IO.Directory.GetCurrentDirectory() 这些值会受Windows对话框的影响而改变,见《OpenFileDialog影响Environment.CurrentDirectory解决方法》
👤 博主
📅 2009-08-18
📂 Win编程
👁 4572
👍 0
🔄 来源:本站原创
阅读全文 →
在数据集(xsd)中有时我们要进行in查询: vs自动为我们生成了方法: 注意,这边id是int类型,虽然在属性面板中我们可以将id改为string类型,但最终仍是不能查询: 变通下,使用charindex代替in可实现要求: ACCESS版:
👤 博主
📅 2009-08-18
📂 Web编程
👁 5657
👍 0
🔄 来源:本站原创
阅读全文 →
例如有这么一张表: 有时我们需要根据名字进行查询; 有时我们需要根据年龄进行查询; 有时又需要根据名字和年龄进行查询; 以前都是通过拼接sql语句完成: 今天发现不用拼接sql语句,一句话就能完成sql多条件查询: MSSQL版: ACCESS版:
👤 博主
📅 2009-08-17
📂 Web编程
👁 4865
👍 0
🔄 来源:本站原创
阅读全文 →