<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[嗷嗷叫的老马 - 编程]]></title>
<link>http://www.m5home.com/blog/</link>
<description><![CDATA[学习WHY,而不是学习HOW]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[myjian01@126.com(马大哈)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>嗷嗷叫的老马</title>
	<url>http://www.m5home.com/blog/images/logos.gif</url>
	<link>http://www.m5home.com/blog/</link>
	<description>嗷嗷叫的老马</description>
</image>

			<item>
			<link>http://www.m5home.com/blog/article.asp?id=487</link>
			<title><![CDATA[单类模块子类化,无崩溃版,作者为PctGL(VB6.0)]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Tue,31 Aug 2010 15:27:25 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=487</guid>
		<description><![CDATA[又是WS的PctGL.......咳咳.<br/><br/>上次他折腾了一个非常精简的单类模块子类化代码<strong>(详见: <a target="_blank" href="http://www.m5home.com/blog/article.asp?id=370" rel="external">单类模块子类化,更精简的版本,作者为PctGL(VB6.0代码)</a>)</strong>,但那份代码在IDE调试时点了■停止后会像普通的子类化一样崩溃掉.<br/><br/>而现在这个版本,则在这方面加强了,在大部分情况下,即使是点了停止,也不会崩溃,同时兼顾了执行效率.<br/><br/>详细代码.....就不贴了,要看的可以去这小子的站上看:<br/><br/><strong><a target="_blank" href="http://pctgl.cnblogs.com/" rel="external">http://pctgl.cnblogs.com/</a>&nbsp;&nbsp;&lt;---------PctGL的博客</strong><br/><br/>还是直接上压缩包好些,嘿嘿!<br/><br/><span id="down_fzptiaimge"></span><script language="javascript" type="text/javascript">check('Action.asp?action=Antidown&id=53&downurl=download%2Easp%3Fid%3D53&main=%E6%97%A0%E5%B4%A9%E6%BA%83%E5%AD%90%E7%B1%BB%E5%8C%96','down_fzptiaimge','down_fzptiaimge');</script><br/><br/>原文地址:<br/><br/><a target="_blank" href="http://www.cnblogs.com/pctgl/articles/1797692.html" rel="external">http://www.cnblogs.com/pctgl/articles/1797692.html</a>]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=484</link>
			<title><![CDATA[GDI显示缩略图中文路径问题(VB6.0)]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Fri,27 Aug 2010 18:51:59 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=484</guid>
		<description><![CDATA[摘自<a href="http://www.csdn.net/" target="_blank">CSDN</a>.<br/><br/><a target="_blank" href="http://topic.csdn.net/u/20100827/14/61236ebf-9028-4f27-a99d-a357ed3c8796.html" rel="external">http://topic.csdn.net/u/20100827/14/61236ebf-9028-4f27-a99d-a357ed3c8796.html</a><br/><br/>收藏备用.]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=482</link>
			<title><![CDATA[后台程序全局钩子获取鼠标滚轮滚动方向(VB6.0)]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Sat,21 Aug 2010 11:27:24 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=482</guid>
		<description><![CDATA[收集,以防忘记.<br/><br/>原帖:&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://topic.csdn.net/u/20090825/11/d33dfa0a-2c8f-41f3-b78e-c70d352c887c.html" rel="external">http://topic.csdn.net/u/20090825/11/d33dfa0a-2c8f-41f3-b78e-c70d352c887c.html</a><br/><br/>全局鼠标键盘HOOK封装:&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.m5home.com/blog/article.asp?id=245" rel="external">封装了一个键盘鼠标HOOK类,使用方便(VB6.0)</a><br/><br/>需要增加的代码:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code10796);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.m5home.com/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code10796>Private Type MSLLHOOKSTRUCT&nbsp;&nbsp;&nbsp;&nbsp; &#39;鼠标HOOK时lParam指针指向的结构<br/>&nbsp;&nbsp;&nbsp;&nbsp;pt As POINTAPI<br/>&nbsp;&nbsp;&nbsp;&nbsp;dwMouseData As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;dwFlags As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;dwTime As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;dwExtraInfo As Long<br/>End Type<br/>Private Const WM_MOUSEWHEEL As Long = &amp;H20A<br/><br/>Private Sub objHookLL_MouseHook(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long, lRet As Long)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;鼠标HOOK事件.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;要吃了当前消息,把lRet = -1即可.<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Code = HC_ACTION And wParam = WM_MOUSEWHEEL Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim stMLL As MSLLHOOKSTRUCT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call CopyMemory(ByVal VarPtr(stMLL), ByVal lParam, Len(stMLL))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;With stMLL<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print .dwMouseData / 65536&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;输出滚轮状态<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;在这里可以得到鼠标坐标以及其它信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End With<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;txtMCode.Text = Code<br/>&nbsp;&nbsp;&nbsp;&nbsp;txtMwParam.Text = wParam<br/>&nbsp;&nbsp;&nbsp;&nbsp;txtMlParam.Text = lParam<br/>&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print &#34;&nbsp;&nbsp; M = &#34; &amp; Code, wParam, lParam<br/>End Sub</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=478</link>
			<title><![CDATA[DXInput中键码的转换(VB6.0代码)]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Wed,04 Aug 2010 19:39:32 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=478</guid>
		<description><![CDATA[帮朋友做了一个利用DXInput来做的键盘HOOK,但是发现DXInput的DX系列键值与ASCII对不上号.....<br/><br/>想来想去,也只有自己做个表来查了,但是不死心,想想应该还是会有人做这个体力活的吧......于是搜啊搜....<br/><br/>没想到还真找到个,虽然不是很全,哇哈哈,不过正好我要的也就是这些了,收藏一下:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code43797);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.m5home.com/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code43797>Public Function defineDItoAscii()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;<a href="http://www.xtremevbtalk.com/archive/index.php/t-94359.html" target="_blank" rel="external">http://www.xtremevbtalk.com/archive/index.php/t-94359.html</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;This function will setup an existing array called DItoAscii<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;(declared earlier like this: Dim DItoAscii(1 to 211) as Byte).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Each array location represents a Direct Input keypress code thingy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;We set each of these locations to its corresponding Ascii value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;For example, if I press &#39;M&#39; on the keyboard, Direct Input gives<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;me a number 50. But in Ascii, &#39;M&#39; is represented by 77. So we<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;will define our array element 50 as 77. This will, in effect<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;change our Direct Input number into its Ascii equivalent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Please note that these were all hand sel&#101;cted by visually looking<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;at an Ascii chart. For your own unique purposes, you may disagree<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;with some of the choices and need to make changes. For example,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;you may wish to convert Direct Input 50 to &#39;m&#39; (Ascii 109) instead<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;of &#39;M&#39; (Ascii 77).<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Zeros (Ascii for &#39;NULL) have been assigned to all Direct Input<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;values which I either did not understand and/or did not care<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;about using.<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;As a guideline for making this function I used a mapping of the DIs<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;available at: &#39;<a href="http://visualbasicforum.com/showthread.php?t=94359" target="_blank" rel="external">http://visualbasicforum.com/showthread.php?t=94359</a>&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;I also used an ascii chart available at www.asciitable.com<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;This was written and released 1/2/2004<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim X As Integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(1) = 27 &#39;Escape DIK_ESCAPE = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(2) = 49 &#39;1 DIK_1 = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(3) = 50 &#39;2 DIK_2 = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(4) = 51 &#39;3 DIK_3 = 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(5) = 52 &#39;4 DIK_4 = 5<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(6) = 53 &#39;5 DIK_5 = 6<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(7) = 54 &#39;6 DIK_6 = 7<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(8) = 55 &#39;7 DIK_7 = 8<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(9) = 56 &#39;8 DIK_8 = 9<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(10) = 57 &#39;9 DIK_9 = 10<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(11) = 48 &#39;0 DIK_0 = 11<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(12) = 45 &#39;- DIK_MINUS = 12<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(13) = 61 &#39;= DIK_EQUALS = 13<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(14) = 8 &#39;Backspace DIK_BACKSPACE = 14<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(15) = 9 &#39;Tab DIK_TAB = 15<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(16) = 81 &#39;Q DIK_Q = 16<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(17) = 87 &#39;W DIK_W = 17<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(18) = 69 &#39;E DIK_E = 18<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(19) = 82 &#39;R DIK_R = 19<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(20) = 84 &#39;T DIK_T = 20<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(21) = 89 &#39;Y DIK_Y = 21<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(22) = 85 &#39;U DIK_U = 22<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(23) = 73 &#39;I DIK_I = 23<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(24) = 79 &#39;O DIK_O = 24<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(25) = 80 &#39;P DIK_P = 25<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(26) = 91 &#39;[ DIK_LBRACKET = 26<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(27) = 93 &#39;] DIK_RBRACKET = 27<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(28) = 13 &#39;Enter DIK_RETURN = 28<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(29) = 0 &#39;Caps Lock DIK_LCONTROL = 29 &#39;Define ones I&#39;m not sure about o&#114; will not use as 0 (null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(30) = 65 &#39;A DIK_A = 30<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(31) = 83 &#39;S DIK_S = 31<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(32) = 68 &#39;D DIK_D = 32<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(33) = 70 &#39;F DIK_F = 33<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(34) = 71 &#39;G DIK_G = 34<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(35) = 72 &#39;H DIK_H = 35<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(36) = 74 &#39;J DIK_J = 36<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(37) = 75 &#39;K DIK_K = 37<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(38) = 76 &#39;L DIK_L = 38<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(39) = 59 &#39;; DIK_SEMICOLON = 39<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(40) = 39 &#39;&#39; DIK_APOSTROPHE = 40<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(41) = 0 &#39;??? DIK_GRAVE = 41 &#39;Define ones I&#39;m not sure about o&#114; will not use as 0 (null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(42) = 15 &#39;Shift DIK_LSHIFT = 42<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(43) = 92 &#39;\ DIK_BACKSLASH = 43<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(44) = 90 &#39;Z DIK_Z = 44<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(45) = 88 &#39;X DIK_X = 45<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(46) = 67 &#39;C DIK_C = 46<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(47) = 86 &#39;V DIK_V = 47<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(48) = 66 &#39;B DIK_B = 48<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(49) = 78 &#39;N DIK_N = 49<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(50) = 77 &#39;M DIK_M = 50<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(51) = 44 &#39;, DIK_COMMA = 51<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(52) = 46 &#39;. DIK_PERIOD = 52<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(53) = 47 &#39;/ DIK_SLASH = 53<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(54) = 15 &#39;Shift DIK_RSHIFT = 54<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(55) = 42 &#39;* DIK_MULTIPLY = 55<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(56) = 0 &#39;Alt DIK_LALT = 56<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(57) = 32 &#39;Space DIK_SPACE = 57<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(58) = 0 &#39;Caps Lock DIK_CAPSLOCK = 58 &#39;Define ones I&#39;m not sure about o&#114; will not use as 0 (null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(59) = 0 &#39;F1 DIK_F1 = 59<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(60) = 0 &#39;F2 DIK_F2 = 60<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(61) = 0 &#39;F3 DIK_F3 = 61<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(62) = 0 &#39;F4 DIK_F4 = 62<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(63) = 0 &#39;F5 DIK_F5 = 63<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(64) = 0 &#39;F6 DIK_F6 = 64<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(65) = 0 &#39;F7 DIK_F7 = 65<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(66) = 0 &#39;F8 DIK_F8 = 66<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(67) = 0 &#39;F9 DIK_F9 = 67<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(68) = 0 &#39;F10 DIK_F10 = 68<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(69) = 0 &#39;Number Lock DIK_NUMLOCK = 69<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(70) = 0 &#39;Scroll Lock DIK_SCROLL = 70<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(71) = 55 &#39;7 DIK_NUMPAD7 = 71<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(72) = 56 &#39;8 DIK_NUMPAD8 = 72<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(73) = 57 &#39;9 DIK_NUMPAD9 = 73<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(74) = 45 &#39;- DIK_SUBTRACT = 74<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(75) = 52 &#39;4 DIK_NUMPAD4 = 75<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(76) = 53 &#39;5 DIK_NUMPAD5 = 76<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(77) = 54 &#39;6 DIK_NUMPAD6 = 77<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(78) = 43 &#39;+ DIK_ADD = 78<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(79) = 49 &#39;1 DIK_NUMPAD1 = 79<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(80) = 50 &#39;2 DIK_NUMPAD2 = 80<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(81) = 51 &#39;3 DIK_NUMPAD3 = 81<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(82) = 48 &#39;0 DIK_NUMPAD0 = 82<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(83) = 46 &#39;. DIK_DECIMAL = 83<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(84) = 0 &#39;F11 DIK_F11 = 87 &#39;Define ones I&#39;m not sure about o&#114; will not use as 0 (null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(85) = 0 &#39;F12 DIK_F12 = 88<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(86) = 13 &#39;Enter DIK_NUMPADENTER = 156<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(87) = 0 &#39;Ctrl DIK_RCONTROL = 157<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(88) = 47 &#39;/ DIK_DIVIDE = 181<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(89) = 0 &#39;Alt DIK_RALT = 184 &#39;Define ones I&#39;m not sure about o&#114; will not use as 0 (null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(90) = 0 &#39;Home DIK_HOME = 199<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(91) = 0 &#39;Up DIK_UP = 200<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(92) = 0 &#39;Page Up DIK_PAGEUP = 201<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(93) = 0 &#39;Left DIK_LEFT = 203<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(94) = 0 &#39;Right DIK_RIGHT = 205<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(95) = 0 &#39;End DIK_END = 207<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(96) = 0 &#39;Down DIK_DOWN = 208<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(97) = 0 &#39;Page Down DIK_PAGEDOWN = 209<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(98) = 0 &#39;Ins&#101;rt DIK_Ins&#101;rt = 210<br/>&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(99) = 0 &#39;Del&#101;te DIK_Del&#101;te = 211<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Define ones I&#39;m not sure about o&#114; will not use as 0 (null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Define all the rest as 0 (null).<br/>&nbsp;&nbsp;&nbsp;&nbsp;For X = 100 To UBound(DItoAscii)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DItoAscii(X) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>End Function<br/></div></div><br/><br/>原帖地址:<br/><br/><a target="_blank" href="http://www.xtremevbtalk.com/archive/index.php/t-94359.html" rel="external">http://www.xtremevbtalk.com/archive/index.php/t-94359.html</a>]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=474</link>
			<title><![CDATA[从一个防火墙代码里拆了一个零件出来,不错的多样式多外观按钮控件(VB6.0代码)]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Mon,26 Jul 2010 11:39:22 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=474</guid>
		<description><![CDATA[先上图片:<br/><br/><img src="http://www.m5home.com/blog/download.asp?id=47" border="0" alt=""/><br/><br/>朋友发来了一个防火墙代码,里面使用了一个DLL来实现<a href="http://www.m5home.com/blog/article.asp?id=54" target="_blank">多线程</a>,但是无论如何我这里都非法操作,无语就翻了一下代码,发现了这个按钮,马上拆出来了,HOHO.<br/><br/>下载:<br/><br/><span id="down_lt4tn5wbhs"></span><script language="javascript" type="text/javascript">check('Action.asp?action=Antidown&id=48&downurl=download%2Easp%3Fid%3D48&main=%E7%82%B9%E5%87%BB%E4%B8%8B%E8%BD%BD%E6%AD%A4%E6%96%87%E4%BB%B6','down_lt4tn5wbhs','down_lt4tn5wbhs');</script>]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=437</link>
			<title><![CDATA[桌面Shell图标管理助手--写了个删除桌面上无法删除的图标的小工具]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Thu,29 Apr 2010 22:15:54 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=437</guid>
		<description><![CDATA[不记得是下载了个啥东东,安装了后在桌面出现了两个无法删除的IE图标,烦得很.<br/><br/>双击后是它绑定的一个网站,右击有属性,有删除----当然删除不了.<br/><br/>属性是直接出来IE属性,应该是直接调用系统接口的.<br/><br/>由于无法直接删除,那就应该不是一个文件,看来是一个SHELL扩展一类的东东.....<br/><br/>在注册表里搜索了一下那个绑定的网站,找到了几个关键键,如下:<br/><br/>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID<br/>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace<br/><br/>这两个地方里的东西,除了系统的CLSID外,多半就是那些垃圾了.<br/><br/>手工删除比较麻烦,我就写了一个小工具,方便点:<br/><br/><span id="down_512s7g23sn"></span><script language="javascript" type="text/javascript">check('Action.asp?action=Antidown&id=26&downurl=download%2Easp%3Fid%3D26&main=%E7%82%B9%E5%87%BB%E4%B8%8B%E8%BD%BD%E6%AD%A4%E6%96%87%E4%BB%B6','down_512s7g23sn','down_512s7g23sn');</script><br/><br/>要注意的是,这只是自动删除注册表里的键值,并不处理生成那些图标的流氓软件或病毒,所以要是删除后又出来或者删除不掉,多半是流氓软件与病毒还未清除造成的,用杀毒软件吧.....]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=436</link>
			<title><![CDATA[从书林那里搞到了Matthew Curland大师的高级VB编程英文版]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Wed,28 Apr 2010 14:21:09 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=436</guid>
		<description><![CDATA[上传上来先,感谢书林!<br/><br/><span id="down_ep62e7krts"></span><script language="javascript" type="text/javascript">check('Action.asp?action=Antidown&id=25&downurl=download%2Easp%3Fid%3D25&main=%E7%82%B9%E5%87%BB%E4%B8%8B%E8%BD%BD%E6%AD%A4%E6%96%87%E4%BB%B6','down_ep62e7krts','down_ep62e7krts');</script><br/><br/>包里包含PDF版的&lt;&lt;高级VB编程&gt;&gt;(Advanced Visual Basic),以及勘误表.<br/><br/>有需要的同学就下载吧.....]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=434</link>
			<title><![CDATA[收藏个函数,PctGL那里搞来的,还不清楚啥作用.....]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Wed,21 Apr 2010 00:34:14 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=434</guid>
		<description><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code78597);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.m5home.com/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code78597>Declare Function GetIDsOfNames Lib &#34;msvbvm60.dll&#34; Alias &#34;BASIC_CLASS_GetIDsOfNames&#34; (ByVal ThisInterface As Long, Optional ByVal RIID As Long = &amp;H733AAE58, Optional ByVal VarptrStringMethodNames As Long, Optional ByVal CountNames As Long = 1, Optional ByVal LCID As Long = &amp;H409&amp;, Optional ResultDispID As Integer) As Long</div></div><br/><br/>收着先.<br/><br/>***************** 补充 ******************<br/><br/>这个函数是根据方法名称取方法地址的,示例:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code30126);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.m5home.com/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code30126>If (GetIDsOfNames(ObjPtr(Me), &amp;H733AAE58, ByVal VarPtr(cName), 1, &amp;H409&amp;, IDs)) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim mePtr As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim jmpAddress As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;mePtr = ObjPtr(Me)<br/>&nbsp;&nbsp;&nbsp;&nbsp;CopyMemory jmpAddress, ByVal mePtr, 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;CopyMemory jmpAddress, ByVal jmpAddress + IDs * 4 + &amp;H1C, 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;MsgBox Hex(jmpAddress)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If</div></div><br/>cName是方法名称,jmpAddress是cName地址.]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=424</link>
			<title><![CDATA[参数中使用公共类型或枚举时报错BC30909的原因(VB.NET)]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Wed,31 Mar 2010 13:58:28 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=424</guid>
		<description><![CDATA[我的枚举与类都是声明在模块里的,全是Public形式:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code75652);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.m5home.com/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code75652>Module ModDef<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Declare Function GetTickCount Lib &#34;kernel32.dll&#34; () As UInteger<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Declare Sub Sleep Lib &#34;kernel32.dll&#34; (ByVal dwMilliseconds As Int32)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Enum AxisEnum<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AXIS_X = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AXIS_Y<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AXIS_Z<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AXIS_U<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Enum</div></div><br/><br/>使用到枚举的一个方法:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code92078);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.m5home.com/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code92078>Public Sub AxisStop(ByVal AxisIndex As <strong>AxisEnum</strong>)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;单轴停止<br/>End Sub</div></div><br/><br/>编译时提示As AxisEnum处:<br/><br/><a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/90htzsex(VS.80).aspx" rel="external">http://msdn.microsoft.com/zh-cn/library/90htzsex(VS.80).aspx</a><br/><br/>而其中的API又是确实可以全局使用的!奇了怪了,已经是Public了呀!!<br/><br/>不得其解,上GOOGLE搜索,发现了一篇<a href="http://www.csdn.net/" target="_blank">CSDN</a>的已结帖子:<br/><br/><a target="_blank" href="http://topic.csdn.net/u/20100322/19/dbd74639-faf9-4e5a-91bc-2e7a0bef0ac4.html" rel="external">http://topic.csdn.net/u/20100322/19/dbd74639-faf9-4e5a-91bc-2e7a0bef0ac4.html</a><br/><br/>咋一看,好象没啥不同,也是把类型改为了Public解决问题的,为啥我这里就不行?难道是因为原帖主用的不是VS2008?<br/><br/>仔细再看,发现他那个类型定义在类定义之外,即Public Class Form1以上的范围,则不属于类的内部.....难道...?<br/><br/>马上把枚举提到模块外部:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code16241);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.m5home.com/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code16241>Public Enum AxisEnum<br/>&nbsp;&nbsp;&nbsp;&nbsp;AXIS_X = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;AXIS_Y<br/>&nbsp;&nbsp;&nbsp;&nbsp;AXIS_Z<br/>&nbsp;&nbsp;&nbsp;&nbsp;AXIS_U<br/>End Enum<br/><br/>Module ModDef<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Declare Function GetTickCount Lib &#34;kernel32.dll&#34; () As UInteger<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Declare Sub Sleep Lib &#34;kernel32.dll&#34; (ByVal dwMilliseconds As Int32)<br/></div></div><br/>再看,就OK了......汗一个.<br/><br/>然后又想了一下,难道VB.NET里的模块并不像VB6里那样是完全全局范围么?<br/><br/>又把枚举拖回来(可怜的枚举....),在Module前面加个Public看看....<br/><br/>我倒,果然是这样,就正确了!<br/><br/>不明白为什么模块要有这种区别呢?<br/><br/>有待以后了解.....完全面向对象,还有很多不习惯 <img src="http://www.m5home.com/blog/images/smilies/Face_12.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.m5home.com/blog/article.asp?id=419</link>
			<title><![CDATA[VB.NET中使用自定义控件的方法(VB.NET)]]></title>
			<author>myjian01@126.com(admin)</author>
			<category><![CDATA[编程]]></category>
			<pubDate>Mon,29 Mar 2010 10:41:15 +0800</pubDate>
			<guid>http://www.m5home.com/blog/default.asp?id=419</guid>
		<description><![CDATA[由于图片框与文本框都有特殊要求,需要定制,就各自继承了一个.<br/><br/>但是.NET里不像VB6里那样添加了自定义控件后就自动出现在工具栏上,于是之前我还是采用在控件工程中写控件再编译为DLL由主工程引用的办法....<br/><br/>在这一点上,真怀念VB6...<br/><br/>话说回来,这问题也麻烦,就去找了找资料,最后发现还是要编译再引用......只不过,是编译自己工程,然后引用编译自己之后的EXE......汗一滴.<br/><br/>现在倒是可以使用了,不知道发布时会不会又遇到啥问题......先这么着吧.....]]></description>
		</item>
		
</channel>
</rss>
