��不枉费4年青春。”
此时,孙轶民心中唯恐柳荣华对他存在误解,便拍了拍他肩膀,再三跟他重申了一下缘由:“不是我故意不帮你,是有些事我不能做。”
事实上,这确实是他的职业道德底线。他的技术水平完全可以胜任何计算机软件开发以及操作,但他之所以成为了程序员,而不是黑客,正是因为有这条底线存在于心中。
对话不了了之。
临睡前想起柳荣华白天的不情之请,突然心生好奇。尽管他不能答应柳荣华的要求,但职业习惯让他此刻还是在心底构思了一下这个软件功能的实现过程。
思来想去似乎只有一种实现方法,那就是采用一种很久以前听说的API函数,这函数似乎某一本旧书上出现过,但他编了那么多年的程序,从未真正调用过。
孙轶民从床底拖出行李箱,拿出从老家带回来的几本计算机书籍开始翻阅,最终在那本老古董的书籍《Wi
dows程序设计》中找到了这个函数。
这本书的名称看起来极其普通,却是他的珍藏。只因这本书在市面上已经无迹可寻。尽管类似名字的计算机书籍书在市场上俯拾皆是,却唯独只有这一本,因作者讲解思路的细致独到而被孙轶民认可。并且书本内容涉及到了很多比较冷门的知识,是其他很多类似书籍上无法见到的。其中就包括今天他要找的这个“钩子函数”。
他温习了一遍:这个函数的作用其实是为了截获指定一个线程的输入消息,比如键盘鼠标消息,截获之后,程序员可以分析该消息中包含的内容,比如按键消息中包含的键盘上哪一个键被按下的信息。分析完毕你还可以任意处理它:你可以把消息原样返还给原有线程,或者把消息做修改后返还,甚至你也可以拦截该消息——不予返还。【请到①⑦К阅读㊣版】
这令孙轶民疑惑:微软为何要安排这样一个API函数供开发者调用?这似乎完全没有必要,而且引起了一定的安全风险。
做了这么多年的程序员,他还是第一次在构思过程中运用到了这个函数。
作者在举例说明这个函数如何使用的时候,顺便提到了另一个发送虚拟窗口消息的API函数SENDMESSAGE(),这引起了他的一点兴趣。而这个函数,他在多年的编程生涯中,同样一次都没有用过。
看着书上的函数原型与简介,孙轶民脑海突然闪过一丝灵感。这灵感宛如流星划过天幕般,在一瞬间,点亮了他思绪的夜空。
此时,孙轶民心中唯恐柳荣华对他存在误解,便拍了拍他肩膀,再三跟他重申了一下缘由:“不是我故意不帮你,是有些事我不能做。”
事实上,这确实是他的职业道德底线。他的技术水平完全可以胜任何计算机软件开发以及操作,但他之所以成为了程序员,而不是黑客,正是因为有这条底线存在于心中。
对话不了了之。
临睡前想起柳荣华白天的不情之请,突然心生好奇。尽管他不能答应柳荣华的要求,但职业习惯让他此刻还是在心底构思了一下这个软件功能的实现过程。
思来想去似乎只有一种实现方法,那就是采用一种很久以前听说的API函数,这函数似乎某一本旧书上出现过,但他编了那么多年的程序,从未真正调用过。
孙轶民从床底拖出行李箱,拿出从老家带回来的几本计算机书籍开始翻阅,最终在那本老古董的书籍《Wi
dows程序设计》中找到了这个函数。
这本书的名称看起来极其普通,却是他的珍藏。只因这本书在市面上已经无迹可寻。尽管类似名字的计算机书籍书在市场上俯拾皆是,却唯独只有这一本,因作者讲解思路的细致独到而被孙轶民认可。并且书本内容涉及到了很多比较冷门的知识,是其他很多类似书籍上无法见到的。其中就包括今天他要找的这个“钩子函数”。
他温习了一遍:这个函数的作用其实是为了截获指定一个线程的输入消息,比如键盘鼠标消息,截获之后,程序员可以分析该消息中包含的内容,比如按键消息中包含的键盘上哪一个键被按下的信息。分析完毕你还可以任意处理它:你可以把消息原样返还给原有线程,或者把消息做修改后返还,甚至你也可以拦截该消息——不予返还。【请到①⑦К阅读㊣版】
这令孙轶民疑惑:微软为何要安排这样一个API函数供开发者调用?这似乎完全没有必要,而且引起了一定的安全风险。
做了这么多年的程序员,他还是第一次在构思过程中运用到了这个函数。
作者在举例说明这个函数如何使用的时候,顺便提到了另一个发送虚拟窗口消息的API函数SENDMESSAGE(),这引起了他的一点兴趣。而这个函数,他在多年的编程生涯中,同样一次都没有用过。
看着书上的函数原型与简介,孙轶民脑海突然闪过一丝灵感。这灵感宛如流星划过天幕般,在一瞬间,点亮了他思绪的夜空。
本章未完,请点击下一页继续阅读》》