首页

解密:WPARAM和LPARAM中的W和L分别代表什么意思

Windows消息的两个参数 曾经有那么一段时间,Windows还是一个16位的操作系统。 每一个Windows消息会携带两个参数,它们分别被叫做WPARAM和LPARAM。第一个参数是一个16位的数据(Word),所以它被称之为W。 第二个参数是一个32位的数据(Long),所有它被称之为L。 你可以使用W参数来传递诸如句柄和整数这一类的数据,对于指针数据来说,你可以使用L参数来传递它。当Win...

打开运行窗口的一种快捷方式

下面是一个用来打开”运行”的小脚本,你可以将它保存为”Run.js”并双击它,就可以打开”运行”窗口: (new ActiveXObject(“Shell.Application”)).FileRun(); 这种方法的一个好处在于它实际上是已经正式被文档化的,也即,不太可能因为操作系统的版本变迁而改变。...

你可以在命令提示符下使用拖放

命令提示符也是一个拖放目标(Drop Target):所以,当你将一个文件拖放到命令提示符下的时候,系统会自动在命令提示符下插入文件的全路径。

为什么在域环境下不能进行快速用户切换?

快速用户切换 Windows XP系统引入一项新的特性叫做快速用户切换(Fast User Switching),这个特性可以在不注销的情况下进行用户账号切换。但是,如果当前系统在域环境下,则这个特性将被禁用,这是为啥呢? 我们禁用FUS的原因有很多,其实这些个原因单独看来,都是可以解决的,但是当它们加在一起的时候,就会给IT管理员带来他们意想不到的困难。 具体的原因 > 在域环境下,如何在...

神秘的System Volume Information目录

你所熟悉的”System Volume Information” 在Windows系统的每个磁盘的根目录下,我们经常会看到一个叫做”System Volume Information”的目录。如果你的磁盘的文件格式是NTFS,就算你当前是以管理员权限登录的,点击这个目录,也会提示”拒绝访问”。 那么,这个目录到底隐藏了什么&#...

小技法:防止对话框中的编辑框内容自动被选中  

在默认情况下,当用户在对话框界面按下Tab按键将输入焦点切换到一个编辑框时,编辑框中的文本内容会被自动选中。 为什么会有这样的行为呢? 因为当焦点切换到编辑框时,编辑框窗口会收到WM_GETDLGCODE消息,如果我们在处理这个消息时候,将DLGC_HASSETSEL这个标志去掉,则可以阻止这个默认行为。 那么,如何去掉这个标志呢?如下图所示: 在上面的代码中,我们在WM_GTTDLGCODE消...

如何判断我安装了一个64位的Windows?

答案:主要是看你的钱包。 开玩笑的啊。 实际上,一般人不会无意中就买了一台安腾(Itanium)机器。这些机器都是十分贵的:HP(曾经和Intel联合开发安腾系列)生产的入门级工作站都需要3000美元,入门级的服务器都超过13000美元。除了支付机器本身的价钱之外,你可能还需要安装一套空调冷却系统来确保工作温度适合机器的运行。噢,我的老天,赶紧打住吧。 如果你还是不能确定当前安装的系统版本,可以打...

对话框窗口过程的另外一种实现方法  

蝎子 在之前的一篇关于对话框返回值的文章中,有人建议说可以使用另外一种不同的搞法:也即直接调用DefDlgProc这个API函数(就类似于窗口消息过程中调用默认的消息处理函数DefWindowProc一样,而不是直接返回TRUE或者FALSE。 那,让我们试试呗 实际上,我们准备试它两次。 今天我会使用上述所说的方法,过几天,我还会演示另外一种完全不一样的做法。这两种做法中,都包含同一个的内部理念...

关于窗口子类化需要注意的地方  

看看有啥问题 Windows的窗口子类化(Subclassing)是一个比你想象的复杂的一种技术。我们先看看下面的代码有啥问题没有: 我想大部分人应该可以看着里面的问题来。 如果在”…do stuff…”阶段,其他人又一次进行了窗口子类化,将会发生什么呢? 当我们恢复窗口过程的时候,我们会重复执行两次解除子类化(Unsubclassing)操作。第...

谈谈开发框架的稳定性

开发框架背后的事 如果某个开发框架向它的客户暴露了一些由底层提供的功能,那么,将客户从底层代码中那些”脏活”和”隐藏限制”的部分隔离开来,到底有多难呢? 你可能凭直觉说,”框架本来就应该将客户完全从底层细节隔离开嘛!这不正是框架应该做的事情吗?” 但是,事情可能没这么美好,特别是当你知道你正在提出的是一个什么样的要求的时候。 ...