`
mamacmm
  • 浏览: 200554 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

电脑基础知识

阅读更多

1 . cmd解决乱码

       

      cmd解决乱码.reg(附件).rar

2.  句柄无效

    句柄
句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:<<Microsoft Windows 3 Developer's Workshop>>(Microsoft Press,by Richard Wilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的,这些项目包括:

*.模块(module)

*.任务(task)

*.实例(instance)

*.文件(file)

*.内存块(block of memory)

*.菜单(menu)

*.控制(control)

*.字体(font)

*.资源(resource),包括图标(icon),光标(cursor),字符串(string)等

*.GDI对象(GDI object),包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画笔(pen),区域(region),以及设备描述表(device context)。

WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

在<<WINDOWS编程短平快>>(南京大学出版社)一书中是这么说的:句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。

从上面的2个定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。在WINDOWS编程中会用到大量的句柄,比如:HINSTANCE(实例句柄),HBITMAP(位图句柄),HDC(设备描述表句柄),HICON(图标句柄)等等,这当中还有一个通用的句柄,就是HANDLE,比如下面的语句:

HINSTANCE hInstance;

可以改成:

HANDLE hInstance;

上面的2句语句都是对的。

一个WINDOWS应用程序可以用不同的方法获得一个特定项的句柄。许多API函数,诸如CreateWindow,GlobalAlloc,OpenFile的返回值都是一个句柄值。另外,WINDOWS也能通过应用程序的引出函数将一个句柄作为参数传送给应用程序,应用程序一旦获得了一个确定项的句柄,便可在WINDOWS环境下的任何地方对这个句柄进行操作。其实句柄的大量使用已经影响到了每一个WINDOWS的程序设计。

句柄只有当唯一的确定了一个项目的时候,它才开始有意义。句柄对应着项目表中的一项,而只有WINDOWS本身才能直接存取这个表,应用程序只能通过API函数来处理不同的句柄,举个例子来说吧!比如:我们可以为我们的应用程序申请一块内存块,通过调用API函数GlobalAlloc,来返回一个句柄值:

hMem=GlobalAlloc(......);

其实现在hMem的值只是一个索引值,不是物理地址,应用程序还不能直接存取这块内存。这儿还有一个话外题,就是,一般情况下我们在编程的时候,给应用程序分配的内存都是可以移动的或者是可以丢弃的,这样能使有限的内存资源充分利用,所以,在某一个时候我们分配的那块内存的地址是不确定的,因为他是可以移动的,所以得先锁定那块内存块,这儿应用程序需要调用API函数GlobalLock函数来锁定句柄。如下:

lpMem=GlobalLock(hMem);

这样应用程序才能存取这块内存。

我想现在大家已经能对句柄概念有所了解了,我希望我的文章能对大家有所帮助。其实如果你学过SDK编程,那对句柄的概念理解会更好,更深。如果你是直接学VC6的MFC编程的,建议你看一下SDK编程,这会对你大有好处。

所谓句柄实际上是一个数据,是一个Long (整长型)的数据。

句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。

从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。

如果想更透彻一点地认识句柄,我可以告诉大家,句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找该对象呢?

为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不变的。Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存。这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置。这个地址是在对象装载(Load)时由系统分配给的,当系统卸载时(Unload)又释放给系统。


句柄地址(稳定)→记载着对象在内存中的地址————→对象在内存中的地址(不稳定)→实际对象


本质:WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

 

   3.键盘键码值

字母和数字键的键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
A 65 J 74 S 83 1 49
B 66 K 75 T 84 2 50
C 67 L 76 U 85 3 51
D 68 M 77 V 86 4 52
E 69 N 78 W 87 5 53
F 70 O 79 X 88 6 54
G 71 P 80 Y 89 7 55
H 72 Q 81 Z 90 8 56
I 73 R 82 0 48 9 57


数字键盘上的键的键码值(keyCode) 功能键键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
0 96 8 104 F1 112 F7 118
1 97 9 105 F2 113 F8 119
2 98 * 106 F3 114 F9 120
3 99 + 107 F4 115 F10 121
4 100 Enter 108 F5 116 F11 122
5 101 - 109 F6 117 F12 123
6 102 . 110        
7 103 / 111        


控制键键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
BackSpace 8 Esc 27 Right Arrow 39 -_ 189
Tab 9 Spacebar 32 Dw Arrow 40 .> 190
Clear 12 Page Up 33 Insert 45 /? 191
Enter 13 Page Down 34 Delete 46 `~ 192
Shift 16 End 35 Num Lock 144 [{ 219
Control 17 Home 36 ;: 186 \| 220
Alt 18 Left Arrow 37 =+ 187 ]} 221
Cape Lock 20 Up Arrow 38 ,< 188 '" 222


多媒体键码值(keyCode)
按键 键码
音量加 175
音量减 174
停止 179
静音 173
浏览器 172
邮件 180
搜索 170
收藏 171


keycode   0 =
keycode   1 =
keycode   2 =
keycode   3 =
keycode   4 =
keycode   5 =
keycode   6 =
keycode   7 =
keycode   8 = BackSpace
keycode   9 = Tab
keycode  10 =
keycode  11 =
keycode  12 = Clear
keycode  13 = Enter
keycode  14 =
keycode  15 =
keycode  16 = Shift_L
keycode  17 = Control_L
keycode  18 = Alt_L
keycode  19 = Pause
keycode  20 = Caps_Lock
keycode  21 =
keycode  22 =
keycode  23 =
keycode  24 =
keycode  25 =
keycode  26 =
keycode  27 = Esc Escape
keycode  28 =
keycode  29 =
keycode  30 =
keycode  31 =
keycode  32 = Space
keycode  33 = Page Up
keycode  34 = Page Down
keycode  35 = End
keycode  36 = Home
keycode  37 = Left Arrow
keycode  38 = Up Arrow
keycode  39 = Right Arrow
keycode  40 = Down Arrow
keycode  41 = Select
keycode  42 = Print
keycode  43 = Execute
keycode  44 =
keycode  45 = Insert
keycode  46 = Delete
keycode  47 = Help
keycode  48 = 0 )
keycode  49 = 1 !
keycode  50 = 2 @
keycode  51 = 3 #
keycode  52 = 4 $
keycode  53 = 5 %
keycode  54 = 6 ^
keycode  55 = 7 &
keycode  56 = 8 *
keycode  57 = 9 (
keycode  58 =
keycode  59 =
keycode  60 =
keycode  61 =
keycode  62 =
keycode  63 =
keycode  64 =
keycode  65 = a A
keycode  66 = b B
keycode  67 = c C
keycode  68 = d D
keycode  69 = e E
keycode  70 = f F
keycode  71 = g G
keycode  72 = h H
keycode  73 = i I
keycode  74 = j J
keycode  75 = k K
keycode  76 = l L
keycode  77 = m M
keycode  78 = n N
keycode  79 = o O
keycode  80 = p P
keycode  81 = q Q
keycode  82 = r R
keycode  83 = s S
keycode  84 = t T
keycode  85 = u U
keycode  86 = v V
keycode  87 = w W
keycode  88 = x X
keycode  89 = y Y
keycode  90 = z Z
keycode  91 =
keycode  92 =
keycode  93 =
keycode  94 =
keycode  95 =
keycode  96 = KP_0
keycode  97 = KP_1
keycode  98 = KP_2
keycode  99 = KP_3
keycode 100 = KP_4
keycode 101 = KP_5
keycode 102 = KP_6
keycode 103 = KP_7
keycode 104 = KP_8
keycode 105 = KP_9
keycode 106 = KP_* KP_Multiply
keycode 107 = KP_+ KP_Add
keycode 108 = KP_Enter KP_Separator
keycode 109 = KP_- KP_Subtract
keycode 110 = KP_. KP_Decimal
keycode 111 = KP_/ KP_Divide
keycode 112 = F1
keycode 113 = F2
keycode 114 = F3
keycode 115 = F4
keycode 116 = F5
keycode 117 = F6
keycode 118 = F7
keycode 119 = F8
keycode 120 = F9
keycode 121 = F10
keycode 122 = F11
keycode 123 = F12
keycode 124 = F13
keycode 125 = F14
keycode 126 = F15
keycode 127 = F16
keycode 128 = F17
keycode 129 = F18
keycode 130 = F19
keycode 131 = F20
keycode 132 = F21
keycode 133 = F22
keycode 134 = F23
keycode 135 = F24
keycode 136 = Num_Lock
keycode 137 = Scroll_Lock
keycode 138 =
keycode 139 =
keycode 140 =
keycode 141 =
keycode 142 =
keycode 143 =
keycode 144 =
keycode 145 =
keycode 146 =
keycode 147 =
keycode 148 =
keycode 149 =
keycode 150 =
keycode 151 =
keycode 152 =
keycode 153 =
keycode 154 =
keycode 155 =
keycode 156 =
keycode 157 =
keycode 158 =
keycode 159 =
keycode 160 =
keycode 161 =
keycode 162 =
keycode 163 =
keycode 164 =
keycode 165 =
keycode 166 =
keycode 167 =
keycode 168 =
keycode 169 =
keycode 170 =
keycode 171 =
keycode 172 =
keycode 173 =
keycode 174 =
keycode 175 =
keycode 176 =
keycode 177 =
keycode 178 =
keycode 179 =
keycode 180 =
keycode 181 =
keycode 182 =
keycode 183 =
keycode 184 =
keycode 185 =
keycode 186 =
keycode 187 = =+
keycode 188 = ,<
keycode 189 = -_
keycode 190 = .>
keycode 191 = /?
keycode 192 = `~
keycode 193 =
keycode 194 =
keycode 195 =
keycode 196 =
keycode 197 =
keycode 198 =
keycode 199 =
keycode 200 =
keycode 201 =
keycode 202 =
keycode 203 =
keycode 204 =
keycode 205 =
keycode 206 =
keycode 207 =
keycode 208 =
keycode 209 =
keycode 210 = plusminus hyphen macron
keycode 211 =
keycode 212 = copyright registered
keycode 213 = guillemotleft guillemotright
keycode 214 = masculine ordfeminine
keycode 215 = ae AE
keycode 216 = cent yen
keycode 217 = questiondown exclamdown
keycode 218 = onequarter onehalf threequarters
keycode 219 = [{
keycode 220 = \|
keycode 221 = ]}
keycode 222 = '"
keycode 223 =
keycode 224 =
keycode 225 =
keycode 226 =
keycode 227 = multiply division
keycode 228 = acircumflex Acircumflex
keycode 229 = ecircumflex Ecircumflex
keycode 230 = icircumflex Icircumflex
keycode 231 = ocircumflex Ocircumflex
keycode 232 = ucircumflex Ucircumflex
keycode 233 = ntilde Ntilde
keycode 234 = yacute Yacute
keycode 235 = oslash Ooblique
keycode 236 = aring Aring
keycode 237 = ccedilla Ccedilla
keycode 238 = thorn THORN
keycode 239 = eth ETH
keycode 240 = diaeresis cedilla currency
keycode 241 = agrave Agrave atilde Atilde
keycode 242 = egrave Egrave
keycode 243 = igrave Igrave
keycode 244 = ograve Ograve otilde Otilde
keycode 245 = ugrave Ugrave
keycode 246 = adiaeresis Adiaeresis
keycode 247 = ediaeresis Ediaeresis
keycode 248 = idiaeresis Idiaeresis
keycode 249 = odiaeresis Odiaeresis
keycode 250 = udiaeresis Udiaeresis
keycode 251 = ssharp question backslash
keycode 252 = asciicircum degree
keycode 253 = 3 sterling
keycode 254 = Mode_switch

 

 

 

分享到:
评论

相关推荐

    电脑基础知识讲座课件

    【电脑基础知识讲座】\n\n本讲座主要涵盖了计算机的基础知识,包括计算机的概述、发展历史、未来趋势,以及计算机系统的组成。江西师范大学IT爱好者协会提供了这份详细的课件,旨在帮助学习者了解和掌握电脑的基本...

    电脑基础知识入门教程.pdf

    电脑基础知识入门教程.pdf

    电脑基础知识文本知识文本知识文本

    【电脑基础知识】 电脑基础知识是理解并操作计算机系统的基础,涵盖了硬件、软件、网络和安全等多个方面。在当今数字化时代,掌握这些基本知识对于日常生活和工作至关重要。 【硬件知识】 1. CPU(中央处理器):...

    笔记本电脑基础知识

    笔记本电脑基础知识

    办公室电脑基础知识PPT

    办公室电脑基础知识PPT,大家可以看看,用于培训办公室文员!

    电脑基础知识入门

    电脑基础知识入门 在这个信息时代,电脑已经成为我们日常生活和工作中不可或缺的工具。对于初学者而言,掌握电脑基础知识是入门的第一步。本文将引导您从打开电脑的那一刻开始,逐步了解电脑的基本组件,认识程序的...

    笔记本电脑基础知识.pdf

    ### 笔记本电脑基础知识——显卡关键技术解析 #### 显存类型 显存作为显卡中的关键组件之一,对于图形处理能力有着重要的影响。不同的显存类型在速度、带宽以及能耗方面都有所差异。 - **SDR SDRAM**:这是一种...

    电脑基础知识 各种操作 的用法

    【电脑基础知识 各种操作 的用法】 计算机基础知识是学习和使用电脑的基石,涵盖了从计算机的起源、发展、特点到计算机系统的核心组件,以及数据的表示和存储、计算机安全等多个方面。本部分将深入探讨这些关键知识...

    很实用的电脑基础知识

    在“很实用的电脑基础知识”这个主题中,我们涵盖了广泛的电脑知识,旨在帮助用户深入了解计算机操作及维护的一些关键点,并提供一些实用的小技巧,让电脑使用体验更加顺畅。以下是根据提供的压缩包文件名称,整理出...

    电脑基础知识入门(world文件)

    【电脑基础知识入门】 电脑基础知识是每一个使用计算机的人都需要掌握的基本技能,无论你是学生、上班族还是退休人士,了解这些基础知识都将使你在日常生活中更加得心应手。本篇将深入浅出地介绍电脑的基础概念、...

    电脑基础知识,电脑的常识。

    【电脑基础知识】 电脑基础知识是理解并有效使用个人计算机的基础,涵盖了操作系统、硬件配置、软件安装等多个方面。本文主要以Windows系统为例,介绍其基础知识。 【Windows系统】 Windows是微软公司开发的一系列...

    电脑基础知识电脑保养电脑部件的维护.avi

    电脑基础知识电脑保养电脑部件的维护

    电脑基础知识.swf

    电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识电脑基础知识

    电脑基础知识.rar

    【电脑基础知识】是涵盖计算机操作、硬件组成、操作系统、网络应用和软件安装等多个方面的综合性概念。对于每一个初入IT领域的用户来说,掌握这些基础知识至关重要,因为它们构成了我们日常使用电脑的基础。 1. ...

    电脑基础知识课件模板.ppt

    【电脑基础知识】 电脑基础知识是每个现代工作者必备的技能,尤其对于行政事业单位的工作人员来说,了解电脑的基础操作和术语能够极大地提升工作效率。本课件旨在介绍电脑的基本概念、组成、操作以及使用常识。 1. ...

    电脑基础知识培训

    适合于企业对员工进行电脑使用方面普及 网络 IP 局域网 打印机

    电脑基础知识入门.pdf

    【电脑基础知识入门】 1. 开机关机:电脑的开机步骤包括开启显示器和主机。显示器的电源开关通常位于屏幕右下角,按下后指示灯亮起,颜色变化表明电源已接通。主机的电源按钮通常在机箱正面,按下后指示灯同样亮起...

    电脑基础知识应用精华

    【电脑基础知识应用精华】 在数字化时代,掌握基本的电脑知识是每个人都应该具备的技能。"电脑基础知识应用精华"涵盖了从操作系统使用、软件安装到网络浏览、文档编辑等多方面的核心内容,旨在帮助用户提高电脑操作...

Global site tag (gtag.js) - Google Analytics