²Ä 31 ³¹¡@µn¿ý¸ê®Æ®w ( Registry )


¾÷½X¡B¤l¾÷½X»P¼Æ­È

µn¿ý¸ê®Æ®w­^¤åºÙ¬° registry¡A¥¦¬O Windows §@·~¨t²Îùؤ@­Ó«Ü½ÆÂøªº¸ê®Æ®w¡A¥¦©Ò«O¦sªº¸ê®Æ¥]§tµwÅé³]³Æ¸ê®Æ¡BÀ³¥Î³nÅé©Ò³]©wªº¸ê®Æ¡B¨Ï¥ÎªÌ¨Ï¥Î°¾¦nªº¸ê®Æ¡B§@·~¨t²Î³]©wªº¸ê®Æµ¥µ¥¡C¨Ò¦p·í¨Ï¥ÎªÌ¦w¸Ë·s³nÅé®É¡A³o­Ó·s³nÅé´N¦³¥i¯à¦bµn¿ý¸ê®Æ®wùØ¥[¤W¦w¸Ëªº¥Ø¿ý¡B¹w³]ªºµ{¦¡¡B¦p¦ó²¾°£µ¥¸ê®Æ¡C·í¨Ï¥ÎªÌ§ïÅܾާ@³]©w¡A¨Ò¦p¦b¥úºÐ¾÷¤¤©ñ¤J¥úºÐ¤ù¤£¦Û°Ê¼½©ñ¡C³o¨Ç³£·|°O¿ý¦bµn¿ý¸ê®Æ®wùØ¡CÆ[¹îµn¿ý¸ê®Æ®w³Ì±`¥Îªº¤èªk´N¬O¨Ï¥Î¡uRegEdit¡vµ{¦¡ ( RegEdit ºÙ¬°µn¿ý½s¿èµ{¦¡ )¡A±z¥i¥H¦bÁä½L¤W¥ý«ö¤U¡uWin¡vÁ䤣©ñ¡AµM«á«ö¤U¡uR¡vÁä¡A¦A©ó¸õ¥X¨Óªº¹ï¸Ü²°¤¤¿é¤J¡uRegEdit¡v( ¤£¤À¤j¤p¼g¡A¤]¥i¥H¦b¡u©R¥O´£¥Ü¦r¤¸¡v¤º¿é¤J RegEdit )¡A´N¯à¬Ý¨£¤U­±ªºµøµ¡¡A¤p¤ì°¸¬O¦b Windows XP ¨t²Î¤º°õ¦æªº¡A¨ä¥Lª©ªº Windows¡A¤]À³¸Ó¬O¤j¦P¤p²§¡C

µn¿ý½s¿èµ{¦¡

±z¥J²ÓÆ[¹î¡A¥i¥Hµo²{µn¿ý¸ê®Æ®wªºµ²ºcÄÝ©ó¾ðª¬µ²ºc¡A³Ì¤W¤@¼h¦³¤­­Ó¶µ¥Ø¡A¤À§O¬O HKEY_CLASSES_ROOT¡BHKEY_CURRENT_USER¡BHKEY_LOCAL_MACHINE¡BHKEY_USERS¡BHKEY_CURRENT_CONFIG¡AºÙ¤§¬°¡u¾÷½X¡v( key¡A¤j³°Â½¦¨¡uÁä¡v)¡A´«¥y¸Ü»¡¡A³Ì¤W­±¤@¼h¦³¤­­Ó¾÷½X¡C¤£¹L³o¬O¦]¬° Windows XP ¥u¦³¤­­Ó¾÷½X¡A¨ä¥L¨t²Î¥¼¥²¦p¦¹¡A¦Ó³o³Ì¤W¤@¼hªº¾÷½X¤S³£¦³ÁY¼g¡A¥H¤Î©T©wªº¥N½X¡C¤Uªí¬O Windows ¨t²Î¨Ï¥Îªº³Ì¤W¼h¾÷½X¤Î¨ä¥Î³~¡G

¾÷½XÁY¼g¾÷½X¥N½X³Æµù
HKEY_CLASSES_ROOTHKCR80000000H HKEY_CLASSES_ROOT ùØ­±ªº¤l¾÷½X¡A°O¸üµÛ¦UºØÀÉ®×Ãþ«¬¤£¦Pªº°ÆÀɦW¡A¨Ò¦p°ÆÀɦW¬°¡u.txt¡vªºÀɮסA´N³Q©w¸q¦¨¡u¤å¦r¤å¥ó¡v¡A¨Ã¥B°O¿ýµÛ¥Î­þºØÀ³¥Îµ{¦¡¨Ó¶}±Ò¦¹ÃþÀɮסA·í¨Ï¥ÎªÌ¥H·Æ¹«ÂùÀ»³oÃþÀɮ׮ɡA´N·|ª½±µ¥Î¸ÓºØÀ³µ{¦¡¨Ó¶}±Ò¡C
HKEY_CURRENT_USERHKCU80000001H HKEY_CURRENT_USER ¾÷½X¬O±q HKEY_USERS ­l¦ù¥X¨Óªº¡A¥¦°O¸üµÛ¥Ø«e¨Ï¥ÎªÌªº¸ê®Æ¡B¹ï§@·~¨t²Îªº³]©w­È¡C¤]¥]§t­Ó¤H¤Æ§@·~Àô¹Òªº³]©w¸ê®Æ¡A¦]¦¹³\¦h³]©w³£·|¸¨¦b³o­Ó¾÷½X¤¤¡C
HKEY_LOCAL_MACHINEHKLM80000002H HKEY_LOCAL_MACHlNE °O¸ü¨t²Î¤¤¦UºØµwÅé³]©wªº¸ê®Æ¡C¥]¬A BIOS¡AµwÅé©PÃä¡B¦Lªí¾÷¡B¥úºÐ¾÷µ¥µ¥ªºµwÅé¬ÛÃö¸ê®Æ³]©w¡C
HKEY_USERSHKU80000003H HKEY_USERS ¾÷½X°O¸üµÛ¨C­Ó¨Ï¥ÎªÌªº³]©w¸ê®Æ¡C
HKEY_PERFORMANCE_DATAHKPD80000004H Windows NT/2000/XP µ¥¨t²Î¤~¦³¡A¥\¯à©M Windows 9x ªº HKEY_DYN_DATA Ãþ¦ü¡A¦ý¥Î RegEdit µLªkÆ[¹î¨ì¡C
HKEY_CURRENT_CONFIGHKCC80000005H HKEY_CURRENT_CONFIG ¾÷½X¬O°O¸ü¥Ø«e¨Ï¥ÎªÌ¹ï©óµwÅ骺³]©wÀÉ¡C
HKEY_DYN_DATAHKDD80000006H ¦¹¾÷½X¥u¦³ Windows 95/98/98 SE/ME ¨t²Î¤~¦³¡A¥Î©óÀx¦s§@·~¨t²Îªº°ÊºA¸ê®Æ¡A¨Ò¦p®Ä¯à²Î­pµ¥¡C©³¤U¦³¨â­Ó¤l¾÷½X¡GConfigManager ©M PerfStats¡C

³Ì¤W­±¤@¼hªº¾÷½X¡A³£¥i¥H«ö¤U«e­±ªº®i¶}¨Ó¡A®i¶}«áªº¤U¤@¼hºÙ¬°¡u¤l¾÷½X¡v( subkey¡A¤j³°Â½¦¨¡u¤lÁä¡v)¡C¦³¨Ç¤l¾÷½X¤§«e¦³«ö¶sªº¡AÁÙ¥i¥H¦A®i¶}¨Ó¡A¬Æ¦Ü¦³³\¦h¼h¡A¬°¤F³æ¯Â¡A³o¨Ç¦A®i¶}¤Î¨ä¥H«á®i¶}ªº¶µ¥Ø¤]³£ºÙ¬°¤l¾÷½X¡C¨Ò¦p HKEY_CURRENT_CONFIG ¾÷½X®i¶}«á¡A¦³¨â­Ó¤l¾÷½X¡A¤À§O¬O¡uSoftware¡v¡B¡uSystem¡v¡A¦Ó Software ¤l¾÷½X¦A®i¶}«á¥u¦³¤@­Ó¤l¾÷½X¡AFonts¡C¦³¨Ç¤l¾÷½X¤£¯à¦A®i¶}¡A¹³ Fonts ´N¬O¤£¯à®i¶}ªº¤l¾÷½X¡A¨ä«e­±¨S¦³«ö¶s¡C²ßºD¤W¡A¤l¾÷½Xªºªí¥Üªk±Ä¥ÎÃþ¦ü¤l¥Ø¿ýªº¤è¦¡ªí¥Ü¡A¨Ò¦p¤W­±ªº Fonts ¥i¥Hªí¥Ü¦¨¡uHKEY_CURRENT_CONFIG\Software\Fonts¡v¡A­nª`·N HKEY_CURRENT_CONFIG «e¤£­n¥[¤W¡u\¡v¡A¦]¬° HKEY_CURRENT_CONFIG ¤w¸g¬O³Ì¤W¼h¤F¡C·íµM¡A¤]¦³¾÷½X¤£¯à®i¶}¡A¨º´Nªí¥Ü¸Ó¾÷½X¬O³Ì¤U¤@¼hªº¾÷½X¡A³o¨Ç¾÷½X©M¤l¾÷½Xªº¤W¡B¤U¼hÃö«Y¡A³£·|¦bµn¿ý½s¿èµ{¦¡¥ªÃ䪺¤lµøµ¡¡A¥H¾ðª¬µ²ºcÅã¥Ü¡C

¨C­Ó¾÷½X©Î¤l¾÷½X¡A¤£¶È¶È¥i¯à¦³¼Æ¶q¤£¦Pªº¤l¾÷½X¡AÁÙ·|¦³¤@¨Ç¼Æ­È ( value¡A¤j³°Â½¦¨¡uÁä­È¡v )¡A¦Ü¤Ö¡A¨C­Ó¾÷½X©Î¤l¾÷½X³£·|¦Ü¤Ö¦³¤@­ÓºÙ¬°¡u¹w³]­È¡vªº¡u¼Æ­È¡v¡C¦³¨Ç¤l¾÷½X¥i¯à¤£¥u¤@­Ó¼Æ­È¡A³o¨Ç¼Æ­È³£·|¦bµn¿ý½s¿èµ{¦¡¥kÃ䪺¤lµøµ¡Åã¥Ü¥X¨Ó¡C¨C­Ó¼Æ­È³£¥]§t¡u¦WºÙ¡v»P¡u¸ê®Æ¡v¨â³¡¥÷¡C¨Ò¦p¤W­±ªº Fonts ¤l¾÷½X´N¦³¨â­Ó¼Æ­È¡A¤@¬O¥H¡u¹w³]­È¡v¬°¦WºÙ¡B¥H¡u¼Æ­È¥¼³]©w¡v¬°¸ê®Æªº¼Æ­È¡F¥t¤@­Ó¬O¥H¡uLogPixels¡v¬°¦WºÙ¡B¥H¡u60H¡v¬°¸ê®Æªº¼Æ­È¡C¼Æ­ÈÁö¦W¤ê¼Æ­È¡A¦ý¨ä¸ê®Æ«o¤£¤@©w¬O¼Æ¦r¡A¦³¥i¯à¬O¦r¦ê¡A¤]¦³¥i¯à¬O¨ä¥LÃþ«¬¡C©³¤Uªºªí®æ¡A¬O¼Æ­Èªº¸ê®ÆÃþ«¬¡A½Ð°Ñ¦Ò¡G

Áä­Èªº¸ê®ÆÃþ«¬¼Æ­È»¡©ú
REG_NONE0¤£§t¯S©wÃþ«¬ªº¸ê®Æ
REG_SZ1¥H 0 µ²§Àªº¦r¦ê
REG_EXPAND_SZ2 ¥i®i¶}ªº¦r¦ê¡Aªí¥Ü¦¹Ãþ¦r¦ê¥]§t¦³Ãþ¦ü¡u%WinDis%¡v¤§Ãþªº¦r¦ê¡C¸I¨ì REG_EXPAND_SZ ®É¡A¥i¥H©I¥s ExpandEnvironmentStrings API ®i¶}³o¨Ç¦r¦ê¡C( µù¤@ )
REG_BINARY3 ¤G¶i¦ì¸ê®Æ¡A¤j¦h¼ÆªºµwÅ餸¥ó¸ê®Æ·|Àx¦s¬°¤G¶i¦ì¸ê®Æ¡A¨Ã¦b¡uµn¿ý½s¿èµ{¦¡¡v¤¤¥H¤Q¤»¶i¦ìªº®æ¦¡Åã¥Ü
REG_DWORD432 ¦ì¤¸¾ã¼Æ¡A³\¦h¸Ë¸mÅX°Êµ{¦¡¤ÎªA°Èªº°Ñ¼Æ³£ÄÝ©ó³o­ÓÃþ«¬¡A¨Ã¥B·|¦b¡uµn¿ý½s¿èµ{¦¡¡v¤¤¥H¤G¶i¦ì¡B¤Q¤»¶i¦ì©Î¤Q¶i¦ìªº®æ¦¡Åã¥Ü
REG_DWORD_BIG_ENDIAN532 ¦ì¤¸ªº Big Endian ªø¾ã¼Æ
REG_LINK6¥i¥H¨Ï¬Y­Ó¾÷½X«ü¦V¥t¤@­Ó¾÷½X¡A³o¨â­Ó¾÷½X¦n¹³¬O³s±µ°_¨Ó¡AMSDN «Øij¤@¯ëµ{¦¡¤£À³¸Ó¨Ï¥Î³oºØ¸ê®ÆÃþ«¬
REG_MULTI_SZ7¦h­«¦r¦ê¡A¨â¦r¦ê¤§¶¡¥H 0 ¤À¶}¡A³Ì«á¤@­Ó¦r¦ê¤§«á¦³¨â­Ó 0
REG_RESOURCE_LIST8 ¥Î©óµwÅéÅX°Êµ{¦¡©Î±±¨î¬Y­Ó©PÃä³]³Æ©Ò¨Ï¥Îªº¸ê·½¦Cªí¡A³q±`¬O¤@¦ê¤G¶i¦ì¼Æ­È

¼Æ­È¦WºÙªºªø«×¬O¦³­­¨îªº¡A©M Windows ªºª©¥»¦³Ãö¡C¥t¥~¡A¾÷½X¤¤©Ò¦³¼Æ­È¦WºÙªø«×Á`©M¡A¤£¥i¶W¹L 64K ¦ì¤¸²Õ¡C¦Uª©¥»ªº Windows ¼Æ­Èªø«×­­¨î¨£¤Uªí¡G

µn¿ý¸ê®Æ®w©ÒÀx¦sªº¸ê®Æ¡A¨Ã«D¶È¶È¤@­ÓÀɮסA¦Ó¬O³\¦hÀɮפÀªù§OÃþÀx¦s°_¨Ó¡A³o¨ÇÀɮ׺٬°¡uregistry hive files¡v¡C¥H Windows 95 ¬°®Ö¤ßªº Windows 95/98/98SE/Me ©M¥H Windows NT ¬°®Ö¤ßªº Windows 2000/XP/Vista/8/8.1/10 Àx¦s¤è¦¡¤£¦P¡C¦b Windows 98 ¤¤¡Aµn¿ýÀÉ®×·|¦s¦b User.dat ¤Î System.dat ùØ¡F¦b Windows Me ¤¤¡Aµn¿ýÀɮ׫h¬O©R¦W¬° Classes.dat¡BUser.dat ¤Î System.dat¡C¥H NT ¬°®Ö¤ßªº¨t²Î¡A¤j³¡¤À¾÷½X³£¦s¦b %SystemRoot%\System32\config ¤l¥Ø¿ýùØ¡A¥u¦³ HKEY_CURRENT_USER ªº¸ê®ÆÀx¦s¦b %Userprofile%\NTUSER.DAT ÀÉ®×ùØ¡C

64 ¦ì¤¸ Windows ¨t²Îªºµn¿ý¸ê®Æ®w

¦Û·L³n±À¥X Windows XP ¨t²Î«á¡A­Ó¤H¥Î³~ªº Windos Vista/7/8/8.1/10¡A³£¥i¤À¬° 32 ¦ì¤¸ª©»P 64 ¦ì¤¸ª©¡C·Ó²z¨Ó»¡¡A32 ¦ì¤¸ªº Windows ¥u¯à°õ¦æ 32 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡F¦Ó 64 ¦ì¤¸ªº Windows ¥u¯à°õ¦æ 64 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡C¦ý¬O¹ê»Ú±¡§Î¨Ã«D¦p¦¹¡A32 ¦ì¤¸ªº Windows ªº½T¥u¯à°õ¦æ 32 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡A¦Ó 64 ¦ì¤¸ªº Windows «o¯à°õ¦æ 32 ¦ì¤¸»P 64 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡C³o¬O¦]¬° 64 ¦ì¤¸ªº Windows ¦³¤@­ÓºÙ¬° WOW64 ( Windows 32-bit on Windows 64-bit ) ªº¤l¨t²Î¡A¥i¥H§â¥¦·Q¹³¦¨¼ÒÀÀ¾¹¡A¥¦±Mªù­t³d¦¹¨Æ¡C·í 32 ¦ì¤¸ªºÀ³¥Îµ{¦¡¦b 64 ¦ì¤¸ªº Windows °õ¦æ®É¡A¦p­n©I¥s DLL ®É¡A¥»¨ÓÀ³¸Ó¨ì¡u%SystemRoot%\system32¡v( µù¤G ) ¥Ø¿ýùØ¥h´M§ä¡A¦ý¦b 64 ¦ì¤¸ªº Windows ¤¤¡A³o¨àªº DLL ³£¬O 64 ¦ì¤¸ªºµ{¦¡½X¡A¬G¨t²Î·|®¨®¨ªº§â¥¦­«·s¾É¦V¨ì¦s©ñ 32 ¦ì¤¸ªº DLL ©Ò¦b¥Ø¿ý¡A¡u%SystemRoot%\SysWOW64¡v¡A¦]¦¹Åܦ¨©I¥s¦b¡u%SystemRoot%\SysWOW64¡v¤l¥Ø¿ýùتº¡B¬Û¹ïÀ³ªº DLL¡A¦Ó©I¥sªÌ ( 32 ¦ì¤¸ªºÀ³¥Îµ{¦¡ ) «o·|¥H¬°¯uªº¬O¦b 32 ¦ì¤¸ªº Windows ¤U°õ¦æ¡C¬G¦Ó 64 ¦ì¤¸ªº Windows ¯à°õ¦æ 32 ¦ì¤¸©M 64 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡C

¦Ó¦b 64 ¦ì¤¸ªº Windows ùØ¡Aµn¿ý½s¿èµ{¦¡ ( RegEdit.EXE ) ¤]¦³ 32 ¦ì¤¸»P 64 ¦ì¤¸¨âºØª©¥»¡A¤À§O¦ì©ó¡u%SystemRoot%\SysWOW64\RegEdit.exe¡v»P¡u%SystemRoot%\RegEdit.exe¡v¨â¤l¥Ø¿ýùØ¡A¦Ó¥B¦WºÙ³£¥s¡uRegEdit¡v¡C¥¦­Ì³£¯à°÷¦b 64 ¦ì¤¸ªº Windows ¨t²Î¤¤°õ¦æ¡A¦ý¤£¯à¦P®É°õ¦æ¡A°£«D¨ä¤¤¤@­Ó¥[¤W¡u-m¡v°Ñ¼Æ¡C¦ý¬O 32 ¦ì¤¸ªº RegEdit ¥u¯àŪ¨ú©Î¼g¤J 32 ¦ì¤¸ªº¾÷½X¡F64 ¦ì¤¸ªº RegEdit ¯à¦P®ÉŪ¨ú©Î¼g¤J 32 ¦ì¤¸¤Î 64 ¦ì¤¸ªº¾÷½X¡C³oºØ±¡§Î¡A¤]¬O¦]¬°¨t²Î¦b 32 ¦ì¤¸ªºµ{¦¡Åª¨ú©Î¼g¤J¾÷½X®É¡A§@·~¨t²Î·|°½°½¦a±N¥Ø¼ÐÂà¦V¨ì 32 ¦ì¤¸ªº¾÷½X¤º¡C

©³¤U¡A¤p¤ì°¸­n½Í½Í 32 ¦ì¤¸ªº¾÷½X»P 64 ¦ì¤¸ªº¾÷½X¡C

¨Æ¹ê¤W¡A¦b 64 ¦ì¤¸ª©¥»ªº Windows ¨t²Î¤¤¡Aµn¿ý¸ê®Æ®w¤]¤À¦¨ 32 ¦ì¤¸»P 64 ¦ì¤¸ªº¾÷½X¡C³\¦h 32 ¦ì¤¸¾÷½X¨ã¦³»P 64 ¦ì¤¸ªº¹ïÀ³¾÷½X¬Û¦Pªº¦WºÙ¡AÁöµM¾÷½X¦WºÙ¬Û¦P¡A¦ý¨ä¼Æ­È¥i¯à¤£¦P¡C³o¬O¦]¬°³\¦hÀ³¥Îµ{¦¡¦³ 32 ¦ì¤¸»P 64 ¦ì¤¸ª©ªº¤À§O¡A¦Ó¨Ï¥ÎªÌ¦³¥i¯à¦P®É¦w¸Ë©Î¨Ï¥Î¡A¦ý¨ä³]©wªº¸ê®Æ¥i¯à¤£¦P¡A¦]¦¹¤~·|¦b 64 ¦ì¤¸ªº Windows ¤¤¡A¦P®É¾Ö¦³ 32 ¦ì¤¸»P 64 ¦ì¤¸ªº¾÷½X¡CÁ|¨â­Ó¨Ò¤l¨Ó»¡©ú¡A¦b 64 ¦ì¤¸ªº Windows ªºµn¿ý¸ê®Æ®wùØ¡G

  1. ¡uHKEY_LOCAL_MACHINE\SOFTWARE\¡v¬O«O¯dµ¹ 64 ¦ì¤¸ªºÀ³¥Îµ{¦¡µn¿ý¸ê®Æ¤§¥Î¡A¦pªG¬O 32 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡A·|³Q§ï¼g¨ì¡uHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\¡vùØ¡C
  2. ¡uHKEY_CURRENT_USER\Software\¡v¬O«O¯dµ¹ 64 ¦ì¤¸ªºÀ³¥Îµ{¦¡µn¿ý¸ê®Æ¤§¥Î¡A¦pªG¬O 32 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡A·|³Q§ï¼g¨ì¡uHKEY_CURRENT_USER\Software\Wow6432Node\¡vùØ¡C

¦]¦¹¡A¡uHKEY_LOCAL_MACHINE\SOFTWARE\¡v¡B¡uHKEY_CURRENT_USER\Software\¡v¬O­ì¥» 64 ¦ì¤¸À³¥Îµ{¦¡©Ò¦s¨úªº¾÷½X©Ò¦b¦a¡AºÙ¬° 64 ¦ì¤¸¾÷½X¡F¦Ó¨ä¤Uªº¤l¾÷½X¡A¡uWow6432Node¡v¡A¬O 32 ¦ì¤¸À³¥Îµ{¦¡©Ò¦s¨úªº¾÷½X©Ò¦b¦a¡AºÙ¬° 32 ¦ì¤¸¾÷½X¡C­n§âµn¿ýªº¸ê®Æ¼g¦b­þùØ¡A¨Ã¤£»Ý­nÀ³¥Îµ{¦¡¾á¤ß¡CWindows ¨t²Î·|¦Û¦æ§PÂ_À³¥Îµ{¦¡¬O 32 ¦ì¤¸ÁÙ¬O 64 ¦ì¤¸¡A´N¯à°÷¦Û°Ê§âµn¿ýªº¸ê®Æ¼g¦b¥¿½Tªº¾÷½X¤U­±¡C


´X­Ó¦³Ãöµn¿ý¸ê®Æ®wªº¥Î³~

①¶}¾÷¦Û°Ê°õ¦æªºµ{¦¡

¬Y¨Çµ{¦¡¦b Windows ¤@¶}¾÷¡A´N·|¦Û°Ê°õ¦æ¡A¨Ò¦p¡uÆF®æ´µÂ½Ä¶®a¡v¡B¡uAvast¡v¡B¡uLotus QuickStart¡vµ¥³nÅé¡C¾Ú¤p¤ì°¸©Òª¾¡A¦Ü¤Ö¦³¤T­Ó¤èªk¥i¥H°µ¨ì¡G

  1. ¤u§@±Æ©w¡G
  2. ±Ò°Ê¸ê®Æ§¨¡G§â­n¤@¶}¾÷´N°õ¦æªºµ{¦¡¡A«Ø¤@±¶®|¡A¦A¥H·Æ¹«§â­è«Ø¦nªº±¶®|©ì¤J¡u¶}©l¡v«ö¶sªº±Ò°Ê¸ê®Æ§¨ùØ¡C
  3. ­×§ïµn¿ý¸ê®Æ®w¡G

②¹w³]¿é¤Jªk

¹w³]¿é¤Jªk¬O«ü Windows ¤@±Ò°Ê¡A®à­±¤@¥X²{®Éªº¿é¤Jªk¡F¤]¬O·í¨Ï¥ÎªÌ°õ¦æ WORD µ¥À³¥Îµ{¦¡«á¡A¤@¶i¤J¸Óµ{¦¡ªº¿é¤Jªk¡C³o­Ó¿é¤Jªk¬O¥i¥H¦Û¥Ñ¿ï¾Üªº¡A±z¥i¥H¨ì¡u¶}©l¡v¡÷¡u±±¨î¥x¡v¡÷¡u¤é´Á¡B®É°Ï¡B»y¨¥©M°Ï°ì¿ï¶µ¡v¡÷¡u¦a°Ï¤Î»y¨¥¿ï¶µ¡v¡÷¡u»y¨¥¡v¼ÐÅÒ¡÷¡u¸Ô²Ó¸ê®Æ¡v«ö¶s¡A´N·|¥X²{¤U¹Ï¥k¤Uªºµøµ¡¡A±z¥i¥HÝ®¤U¡u¹w³]¿é¤J»y¨¥¡v¤ºªº½Æ¦X±±¨î¶µ ( ¼Ð¥Ü③ªº¦a¤è )¡A¿ï¾Ü±z·Q­nªº¹w³]¿é¤Jªk¡C

·íµM³o¶µ¿ï¾Üªºµ²ªG¡A¤]·|«O¦s¦b¸ê®Æµn¿ý®wùØ¡C±z¥i¥H¦b¡uHKEY_CURRENT_USER\Keyboard Layout\Preload¡v¾÷½X¤¤¬Ý¨£¦n´X­Ó¼Æ­È¡C¦W¬°¡u1¡vªº¼Æ­È©Ò¥Nªíªº¸ê®Æ¡A´N¬O¹w³]ªº¿é¤Jªk¡C¥u¤£¹L³o¨Ç¸ê®Æ¡A¨Ã«D¥H¤@¥Ø¤FµMªº¤è¦¡ªí¥Ü¡A¬Ý°_¨Ó¦n¹³¥N½X¡A©³¤U¬O³o¨Ç¥N½Xªº·N¸q¡G

¿é¤Jªk¥N½X¿é¤Jªk¦WºÙ¤Î·N¸q
00000404¬ü¦¡Áä½L
E0010404ª`­µ¿é¤Jªk
E0020404­Ü¾e¿é¤Jªk
E0050404¦æ¦C¿é¤Jªk
E0080404·L³n·sª`­µ¿é¤Jªk
E0090404·L³n·s­Ü¾e¿é¤Jªk
E0200404¦ÛµM¿é¤J/·s»Å­µ/º~­µ¿é¤Jªk
E0200404 åF½¼¦Ì E0210404 ¦ÛµM¿é¤Jªk E0010411 ¤é¤å¿é¤J¨t²Î

③ÀɮתºÃöÁp©Ê

¦pªG±z¦b Windows ªºÀÉ®×Á`ºÞ¡A¥H·Æ¹«ÂùÀ»°ÆÀɦW¬° .docx ªºÀɮסA´N·|°õ¦æ Word¡A¨Ã§â¸ÓÀɮ׸ü¤J¡A¥H¨Ñ±z½s¿è¡F¦pªG±zÂùÀ»°ÆÀɦW¬O .txt ªºÀɮסA´N·|°õ¦æ¤p§@®a¡A¨Ã§â¸ü¤J¸ÓÀɮסA¥H¨Ñ±z½s¿è¡F¦pªG±zÂùÀ»°ÆÀɦW¬° .mp3 ªºÀɮסA´N·|°õ¦æ¡uWindows Media Player¡v¡A¨Ã¼½©ñ¸Ó­µ¼ÖÀÉ¡CWindows ¬O«ç»ò°µ¨ì³o¨Çªº¡H³o·íµM»Pµn¿ý¸ê®Æ®w¦³Ãö¡C

¦pªG®i¶} HKEY_CLASSES_ROOT ¾÷½X¡A´N·|µo²{©³¤U¦³³\¦hÃþ¦ü¡u.docx¡v¡B¡u.txt¡v¡B¡u.mp3¡v¡K¡Kªº¤l¾÷½X¡A¦Ó³o¨Ç¤l¾÷½X¤S¸ò°ÆÀɦW¤@¼Ë¡A·Q¥²©M³o¨Æ²æÂ÷¤£¤FÃö«Y¡C¤p¤ì°¸·Q¥H°ÆÀɦW¬°¡u.txt¡v¬°¨Ò¤l¨Ó»¡©ú¡A¦pªG±zÂI¿ï¡u.txt¡v¤l¾÷½X¡AÀ³¸Ó·|¬Ý¨£¨ä¹w³]­È¬°¡utxtfile¡v¡CµM«á±z¥i¥H¦b¡uHKEY_CLASSES_ROOT¡v§ä¨ì¡utxtfile¡v¤l¾÷½X¡A³o­Ó¤l¾÷½Xªº¹w³]­È¬°¡u¤å¦r¤å¥ó¡v¡C³o­Ó¹w³]­È·|¥X²{¦b¡A¨Ï¥ÎªÌ§â·Æ¹«²¾¨ì°ÆÀɦW¬°¡u.txt¡vªºÀɮפW¤@¬q®É¶¡«á©Ò¥X²{ªº¡u¤u¨ã´£¥Ü¡vªºÃþ«¬Äæ¦ìùØ¡C¦p¤U¹Ï©Ò¥Ü¡C( °£¤F¹w³]­È¥~¡A.txt ¥i¯àÁÙ·|¦³¨ä¥L¼Æ­È¡A½Ð°Ñ¦Òµù¤T )

¡utxtfile¡vùØ°£¤F¹w³]­È¥~¡AÁÙ¦³¨â­Ó¼Æ­È¡AEditFlags¡BFriendlyTypeName¡C

À³¥Îµ{¦¡¥i¥H¥Î EditFlags ªº¸ê®Æ¨Ó­­¨î¨Ï¥ÎªÌ¹ï¸ÓºØ°ÆÀɦWªºÀÉ®×°µ¬YºØ­­¨î©Î³B¸m¡AEditFlags ªº¸ê®ÆÃþ«¬¥i¥H¬O REG_DWORD ©Î REG_BINARY¡A©Ò¥Nªíªº·N¸q¦p¤Uªí¡G

±`¼Æ¼Æ­È»¡©ú
FTA_Exclude1H¥i°õ¦æÀÉ
FTA_Show2H³oÃþ¯àÅã¥ÜÀɮתºÃþ§O¡A¨Ò¦p¸ê®Æ§¨¡A¨ä¹ê¥¦¤£¬OÀÉ®×Ãö³sªºÃþ«¬
FTA_HasExtension4H¦³°ÆÀɦW
FTA_NoEdit8H¸T¤î½s¿è³oÃþÀÉ®×
FTA_NoRemove10H¸T¤î§R°£³oÃþÀÉ®×
FTA_NoNewVerb20H¸T¤î·s¼W¼u¥X¿ï³æ¤ºªº¿ï¶µ
FTA_NoEditVerb40H¸T¤îÅܧó¼u¥X¿ï³æ¤ºªº¿ï¶µ
FTA_NoRemoveVerb80H¸T¤î§R°£¼u¥X¿ï³æ¤ºªº¿ï¶µ
FTA_NoEditDesc100H¸T¤îÅܧóÀÉ®×Ãþ«¬
FTA_NoEditIcon200H¸T¤îÅܧóÀɮ׹ϥÜ
FTA_NoEditDflt400H¸T¤îÅܧó¹w³]ªº¼u¥X¿ï³æ
FTA_NoEditVerbCmd800H
FTA_NoEditVerbExe1000H¸T¤î§ó§ï¼u¥X¿ï³æ
FTA_NoDDE2000H¸T¤îÅܧó DDE ( Dynamic Data Exchange ) ¬ÛÃö³]©w
FTA_NoEditMIME8000H
FTA_OpenIsSafe10000H¶}±Ò¦¹ÃþÀɮפ£·|³y¦¨¦MÀI¡A¥ç§Y¦¹ÃþÀɮפ£¥i¯àÄâ±a¯f¬r
FTA_AlwaysUnsafe20000H¤U¸ü®É¡A¸ß°Ý§A¦p¦ó³B²zªº¼u¥Xµøµ¡¤¤¡A¡u¤£­n¦A°Ý§Ú¡vÀËÅç²°¤£¥iÃö³¬
FTA_AlwaysShowExt40000H¦¹ÃþÀÉ®×·|Åã¥Ü°ÆÀɦW
FTA_NoRecentDocs100000H¦¹ÃþÀɮפ£¥[¤J¡u§Ú³Ìªñªº¤å¥ó¡v( Windows XP ) ©Î¡u³Ìªñªº¶µ¥Ø¡v( Windows 7¡A¦b Win 7 ùØ¡A³Ìªñªº¶µ¥Ø¹w³]¤£¶}±Ò ) ùØ

FriendlyTypeName ©M¡utxtfile¡vªº¹w³]­È¤@¼Ë¡A³£¬O¥Î¨Ó°O¿ýÀÉ®×Ãþ«¬¡A¸Ó¸ê®Æ·|¥X²{¦b¨Ï¥ÎªÌ§â·Æ¹«°±¯d¦b°ÆÀɦW¬O¡u.txt¡vªºÀɮפW®É¡A¥X²{¦b¤u¨ã´£¥Ü¤¤ªºÃþ«¬ÄæùØ¡C«o¦³¨âÂI¤£¦P¡G¤@¬O¡uFriendlyTypeName¡v¥i¥H¥Î¥i°õ¦æÀÉ©Î DLL ùتº¦r¦ê¸ê·½ ( ºÙ¬°¶¡±µ¦r¦ê )¡A¤]¥i¥Hª½±µ¥H¦r¦êªí¥Ü ( ºÙ¬°ª½±µ¦r¦ê )¡A¦Ó¡utxtfile¡vªº¹w³]­È¥u¯à¥H«áªÌªí¥Ü¡C¤G¬O¡uFriendlyTypeName¡v¸û¡utxtfile¡vªº¹w³]­ÈÀu¥ý¡A¤]´N¬O¦pªG¨S¦³¡uFriendlyTypeName¡v¾÷½X¡A¨t²Î¤~·|¥hŪ¨ú¡utxtfile¡vªº¹w³]­È¡C¬Æ¦Ü¡A¦pªG¨Ï¥ÎªÌ¸ü¤J§t¦³¡uFriendlyTypeName¡vªº¸ê®Æªº .reg Àɮ׮ɡARegEdit ¤]·|­×§ï¡utxtfile¡vªº¹w³]­È¡A¨Ï¨ä»P¡uFriendlyTypeName¡v©Ò¥Nªíªº¸ê®Æ¬Û¦P¡C

¦b¡utxtfile¡v¾÷½X¤§¤U¡AÁÙ¦³¨â­Ó¤l¾÷½X¡A¡uDefaultIcon¡v¡B¡ushell¡v¡A¤À§O¥Nªí¦bÀÉ®×Á`ºÞªº¹Ï¥Ü¡B¦bÀÉ®×Á`ºÞ«ö·Æ¹«¥kÁä¥X²{ªº¿ï³æ¡C¦pªG±zÄ~Äò¶}±Ò¡ushell¡v¤l¾÷½X¡AÁÙ·|µo²{¤U­±¨ä¹êÁÙ¦³¤@¨Ç¤l¾÷½X¡A¨Ò¦p¡uopen¡v¡B¡uprint¡v¡B¡uprintto¡v¡A³o¨Ç·|¦b¨Ï¥ÎªÌ¹ï¡u.txt¡vÀÉ«ö¤U·Æ¹«¥kÁä¥X²{ªº¡u¼u¥X¦¡¿ï³æ¡vùØ¡A½Ð°Ñ¦Ò¤W¹Ï¡C©Î³\±z·|°Ý¡AWindows «ç»òª¾¹D¡A¨Ï¥ÎªÌÂùÀ»¡u.txt¡vÀɮɡA­n¶}±ÒÀɮשάO¦C¦LÀɮשO¡H³o¥²¶·¬Ý¡ushell¡v¤§¹w³]­È¡A¦pªG¬O¼Æ­È¥¼³]©w¡A¨º»ò´N¥H²Ä¤@­Ó¤l¾÷½X¬°ÂùÀ»«á°Ê§@¡F¦pªG¡ushell¡v¤§¹w³]­È¬°¬Y­Ó¤l¾÷½X¦WºÙ¡A¨º»ò´N¥H¸Ó¤l¾÷½X¬°ÂùÀ»«áªº°Ê§@¡C°õ¦æªº°Ê§@¥i¥H¦b¤l¾÷½Xªº¹w³]­È§ä¨ì¡C¥H¤W¹Ï¬°¨Ò¡A¡ushell¡v¤§¹w³]­È¨Ã¥¼³]©w¡A¦]¦¹¨Ï¥ÎªÌÂùÀ»¡u.txt¡vÀɮ׮ɡA´N·|°õ¦æ¡unotepad.exe¡v¡A¨Ã¶}±ÒÂùÀ»ªºÀɮסC

³Ì«á¾ã²z¤@¤U¡AWindows ³B²z°ÆÀɦWªº¤èªk¬O¦b HKEY_CLASSES_ROOT «Ø¥ß¨â­Ó¤l¾÷½X¡A²Ä¤@­Ó¤l¾÷½X¬O°ÆÀɦWªº¦WºÙ¡A¦A¥H¨ä¹w³]­È¬°¦W¡A«Ø¥ß¥t¤@­Ó¤l¾÷½X¡A³o­Ó¤l¾÷½X¥]§t¡uDefaultIcon¡v¡B¡ushell¡v¨â­Ó¤l¾÷½X¡C½Ð°Ñ¦Ò¥k¹Ï¡A¤p¤ì°¸¥H Windows ­n³B²z¡u.asm¡v°ÆÀɦW¬°¨Ò¤l¨Ó»¡©ú¡C¦b HKEY_CLASSES_ROOT ©³¤U«Ø¨â­Ó¤l¾÷½X¡A¡u.asm¡v¡B¡uasmfile¡v¡A¨ä¹w³]­È¤À§O¬O¡uasmfile¡v¤Î¡u²Õ¦X»y¨¥­ì©l½X¡v¡F¤]¥i¥H¦b¡u.asm¡v©³¤U¦A«Ø¥ß¤@¦W¬°¡uPerceivedType¡vªº¼Æ­È¡A¨ä¸ê®Æ¬°¡uText¡v¡A¦ý¦¹Á|¨Ã«D¤@©w­n°µ¡CµM«á¦b¡uasmfile¡v©³¤U¦A«Ø¨â­Ó¤l¾÷½X¡A¡uDefaultIcon¡v¡B¡ushell¡v¡A«eªÌ¹w³]­È¬°¥Nªí¡u.asm¡v¬°°ÆÀɦWªºÀɮ׹ϥܡA«áªÌ¹w³]­È¥i¥H¤£³]©w¡C¦A©ó¡ushell¡v©³¤U«Ø¤@¦W¬°¡uedit¡vªº¤l¾÷½X¡A¨ä¹w³]­È¥i¥H¤£³]©w¡CµM«á¦b¡uedit¡v©³¤U¦A³]¤@¤l¾÷½X¡A¡ucommand¡v¡A¦Ó¨ä¹w³]­È¬O½s¿è¡u.asm¡vÀɩһݪºµ{¦¡¡A¨Ò¦p¡uC:\Program Files\UltraEdit-32\uedit32.exe %1¡v¡C

¦³Ãö HKEY_CLASSES_ROOT ªº¸É¥R»¡©ú

¨Æ¹ê¤W¡A«e­±©Ò»¡ªº¡A³£¬O¦b Windows 9x/Me ¤¤ªº±¡§Î¡C¦b Windows 9x/Me ¨t²ÎùØ¡AHKEY_LOCAL_MACHINE\Software\Classes ©³¤U¤]¦³¤@¥÷©M HKEY_CLASSES_ROOT ©³¤U¤@¼Ò¤@¼Ëªº¤l¾÷½X¡C±q Windows 2000 ¶}©l¡AWindows ¨t²ÎÅܦ¨¬O¦h¤H¦h¤uªº¨t²Î¡A¦]¦¹¦b HKEY_CURRENT_USER\Software\Classes ¾÷½X¤¤¡A¥]§t¤F¤@¨Ç¥i¥H§ó§ïªº³]©w¡A¥u¾A¥Î©ó·í«e¨Ï¥ÎªÌªº³]©w¡F¦Ó¦b HKEY_LOCAL_MACHINE\Software\Classes ¾÷½X§t¦³¾A¥Î©ó¥»¾÷¹q¸£¤W©Ò¦³¨Ï¥ÎªÌªº¹w³]³]©w¡FHKEY_CLASSES_ROOT §t¦³ªº¤l¾÷½X«h¬O³o¨â­Ó¤l¾÷½X©Ò¦X¨Öªºµn¿ý¸ê®Æ®w¡C¦]¦¹¡A§Ú­Ì¥i¥H³o¼Ë·Q¹³¡A¦b Windows 2000 ¤Î¨ä¥H«áªº¨t²Î¡A¦³Ãö°ÆÀɦW³]Ãö³s³]©w¡A¥i¥H¦b¤T­Ó¦a¤è§ä¨ì¡G

  1. HKEY_LOCAL_MACHINE\Software\Classes¡G³o¥x¾÷¾¹¤W©Ò¦³¨Ï¥ÎªÌªº¹w³]³]©w¡A·N«ä¬O·í·s¥[¤J¨Ï¥ÎªÌ®É¡A¸Ó¦W·s¶iªº¨Ï¥ÎªÌ©Ò¨Ï¥ÎªºÀÉ®×ÃöÁp´N¬O±q³oùØ«þ¨©¨ì HKEY_CURRENT_USER\Software\Classes ªº¡C¦pªG¹ï¦¹³Bªº¾÷½X­×§ï¡A·|¼vÅT³o¥x¾÷¾¹¤W©Ò¦³·s¶i¨Ï¥ÎªÌªº¹w³]³]©w¡C
  2. HKEY_CURRENT_USER\Software\Classes¡G³oùئs©ñµÛ·í«e¨Ï¥ÎªÌ©Ò³]©wªºÀÉ®×ÃöÁp¡C¨C­Ó¨Ï¥ÎªÌ¨Ï¥Î²ßºD¤£¦P¡A¦]¦¹·¥¦³¥i¯à¬Y­Ó¨Ï¥ÎªÌ¥Î¡u°O¨Æ¥»¡v½s¿è .txt ÀÉ¡A¦Ó¥t¤@­Ó¨Ï¥ÎªÌ«o¥Î UltraEdit-32¡A©Ò¥H»¡¦¹³Bªº³]©w¬O·|³Q§ó§ïªº¡C¦pªG¹ï¦¹³Bªº¾÷½X­×§ï¡A¥u·|¼vÅT·í«e¨Ï¥ÎªÌªº³]©w¡C
  3. HKEY_CLASSES_ROOT¡G¦¹³BªºÀÉ®×ÃöÁp³]©w¡A¬O¤W­±¨â³B«þ¨©¦Ó¨Óªº¡A¤@¯ë¥u¨ÑŪ¨ú¡A¦]¦¹³Ì¦n¤£­nª½±µ­×§ï¦¹³Bªº¾÷½X¡A°£«D¬O Windows 9x ¨t²Î¡C

¦pªG±z±N¾÷½X¼g¤J HKEY_CLASSES_ROOT ¤Uªº¾÷½X¡A¨t²Î´N·|¦P¨B§ó§ï HKEY_LOCAL_MACHINE\Software\Classes¡C¦pªG±z±N¼Æ­È¼g¤J HKEY_CLASSES_ROOT ¤Uªº¾÷½X¡A¨Ã¥B HKEY_CURRENT_USER\Software\Classes ©³¤U¤w¦s¦³¾÷½X¡A¨t²Î±N¥u·|§ó§ï HKEY_CLASSES_ROOT ªº¸ê°T¡A¦Ó¤£·|§ó§ï HKEY_LOCAL_MACHINE\Software\Classes ¤Uªº¸ê®Æ¡C

·í¨Ï¥ÎªÌ¦b¡uÀÉ®×Á`ºÞ¡v¤¤¡A¥H·Æ¹«ÂùÀ»¬Y­ÓÀɮ׮ɡAWindows ·|


¦³Ãöµn¿ý¸ê®Æ®wªº API

¦pªG­n³B²zµn¿ý¸ê®Æ®w¤ºªº¸ê®Æ¡A¨Ò¦pŪ¨ú¡B­×§ï¡B«Ø¥ß¡B§R°£µ¥µ¥¡A³£¥²¶·¥ý¨ú±o¬Y­Ó¤l¾÷½Xªº¥N½X¡AµM«á¤~¯à¹ï¸Ó¤l¾÷½Xªº¼Æ­È°µ³B²z¡C¨Æ¹ê¤W¡AWindows ¹ï¨C­Ó¾÷½X©M¤l¾÷½X¥Î¤£¦Pªº¾ã¼Æ¥Nªí¡AºÙ¬°¾÷½X¥N½X ( key handle )¡C³Ì¤W¼hªº¤­­Ó¾÷½X¥N½X¬O©T©wªº¡A±q 80000000H¡ã80000004H¡C¦Ü©ó¤l¾÷½X¡A¤]¦U¦³¨ä¥N½X¡C¦Ó«á¦pªG¤£¦A»Ý­n³B²z¸Ó¾÷½X®É¡A´NÀ³±N¨äÃö³¬¡CÀò¨ú¾÷½X¥N½X¡B§R°£¡B­×§ïµ¥¤u§@¡A³£¦³¬Û¹ïÀ³ªº Win32 API ¥i¥H°µ¨ì¡C¦]¦¹©³¤U­n¤¶²Ð¦³Ãöµn¿ý¸ê®Æ®w·|¥Îªº Win32 API¡G

Win32 API ¦WºÙ»¡©ú
RegOpenKeyExÀò±o¬Y­Ó¾÷½Xªº¥N½X
RegQueryValueEx Àò±o¬Y­Ó¾÷½X¤¤ªº¼Æ­È¸ê®Æ¤Î¸ê®ÆÃþ«¬
RegEnumKeyEx¦C¥X¬Y­Ó¾÷½X¤ºªº©Ò¦³¤l¾÷½X
RegEnumValue¦C¥X¬Y­Ó¾÷½X¤ºªº©Ò¦³¼Æ­È
RegQueryInfoKey¨ú±o¬Y¤@¾÷½X¤§¼Æ­È­Ó¼Æ¡B¤l¾÷½X­Ó¼Æ¡B¼Æ­È¦WºÙ³Ì¤jªø«×¡B¤l¾÷½X³Ì¤jªø«×µ¥¸ê®Æ
RegCreateKeyEx«Ø¥ß¤l¾÷½X
RegCloseKeyÃö³¬¾÷½X

¦b¦­´Áª©¥»ªº Windows ùØ¡AÁÙ¥i¥H¨Ï¥Î¸û²³æªº RegOpenKey¡BRegQueryValue¡K¡Kµ¥ API¡A¦ý·L³n¦b MSDN ùØ»¡³o¬O¬°¤Fºû«ù¬Û®e©Ê¡A¤£±o¤w¤~¦³³o¨Çªº API¡A«Øijµ{¦¡³]­p®v³Ì¦n§ï¥Î·sªº API¡ARegOpenKeyEx¡BRegQueryValueEx¡K¡K¡C¥t¥~³o¨Ç API ¬O¥]§t¦b ADVAPI32.DLL ùØ¡A¦]¦¹¦b²Õ¦X»y¨¥­ì©l½XùØ­n¦³©³¤U¨â¦æ¡G

INCLUDE         ADVAPI32.INC
INCLUDELIB      ADVAPI32.LIB

RegOpenKeyEx

Àò¨ú¬Y­Ó¾÷½X¥N½X¡A¨ä­ì«¬¬O¡G

LONG WINAPI RegOpenKeyEx(
  __in          HKEY    hKey,
  __in_opt      LPCTSTR lpSubKey,
  __reserved    DWORD   ulOptions,
  __in          REGSAM  samDesired,
  __out         PHKEY   phkResult
);

²Ä¤@­Ó°Ñ¼Æ¡AhKey¡A¬O«ü¤w¶}±Òªº¾÷½X¥N½X©Î¤l¾÷½X¥N½X¡AhKey ¤§­È¥i¥H¥Ñ¤U­±´XºØ±¡§ÎÀò±o¡G

  1. ³Ì¤W¼hªº¾÷½X¥N½X¡G¥ç§Y HKEY_CLASSES_ROOT¡BHKEY_CURRENT_USER¡BHKEY_LOCAL_MACHINE¡BHKEY_USERS¡BHKEY_CURRENT_CONFIG µ¥¡C
  2. ©I¥s RegCreateKeyEx ©Î RegOpenKeyEx ¤§«á¡A¨t²Î·|§â¤l¾÷½X¥N½X¶Ç¦^µ¹³o¨â­Ó API ªº°Ñ¼Æ¡C

²Ä¤G­Ó°Ñ¼Æ¡AlpSubKey¡A¬O¤@¦r¦ê¦ì§}¡A¦¹¦r¦ê¬O­n¨ú±o¤l¾÷½Xªºªí¥Üªk¡A¨Ã¥B¤£°Ï¤À¤j¤p¼g¡C¨Ò¦p¡uHKEY_CURRENT_CONFIG\Software\Fonts¡v©M¡uHKEY_CURRENT_CONFIG\SOFTWARE\FONTS¡v¬O¤@¼Ëªº·N«ä¡C¤p¤ì°¸¦AÁ|¤@¨Ò¡A»¡©ú¦p³]©w¦r¦ê¡A¨Ò¦p­n¨ú±o¡uHKEY_CURRENT_CONFIG\Software\Fonts¡v¤¤¡uFonts¡vªº¤l¾÷½X¥N½X¡A¥i¥H¦³¨âºØ¤èªk¡G
¡@①hKey ¬° HKEY_CURRENT_CONFIG¡AlpSubKey ¬°¡uSoftware\Fonts¡v¦r¦ê¤§¦ì§}¡F©ÎªÌ¬O
¡@②hKey ¬°¡uHKEY_CURRENT_CONFIG\Software¡v©Ò¥Nªíªº¾÷½X¥N½X¡A¨Ã¤w¸g¶}±Ò¤F¡A¦Ó lpSubKey ¬°¡uFonts¡v¦r¦ê¦ì§}¡C
¦pªG lpSubKey ¬° 0¡A©Î«ü¦VªÅ¦r¦ê¡A¨º»ò RegOpenKeyEx ·|¶Ç¦^»P hKey ¬Û¦Pªº¾÷½X¥N½X¡A³o¼Ë¤]ºâ©I¥s¦¨¥\¡C²Ä¤T­Ó°Ñ¼Æ¡AulOptions¡A³Q«O¯d¡A¥²¶·¬O 0¡C²Ä¥|­Ó°Ñ¼Æ¡AsamDesired¡Aªí¥Ü¦p¦ó³B²z¦¹¾÷½X¡A¥i¥H¬O¤U­±ªº¼Æ­È¡G

samDesired¼Æ­È»¡©ú
KEY_QUERY_VALUE1¥i¥HÀò¨ú¾÷½X¸ê®Æ
KEY_SET_VALUE2¥i¥H³]©w¾÷½Xªº¸ê®Æ
KEY_CREATE_SUB_KEY4¥i¥H«Ø¥ß¤l¾÷½X
KEY_ENUMERATE_SUB_KEYS8¥i¥H¦C¥X¤l¾÷½X
KEY_NOTIFY10H¤¹³\Åܧó³qª¾
KEY_CREATE_LINK20H«O¯dµ¹¨t²Î¨Ï¥Î
KEY_WOW64_64KEY100H¨Ï 32 ¦ì¤¸©Î 64 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡A¯à«Ø¥ß©Î¶}±Ò 64 ¦ì¤¸ªº¾÷½X ( ¸Ô²Ó±¡§Î¡A½Ð°Ñ¦Òµù¤G )
KEY_WOW64_32KEY200H¨Ï 32 ¦ì¤¸©Î 64 ¦ì¤¸ªºÀ³¥Îµ{¦¡¡A¯à«Ø¥ß©Î¶}±Ò 32 ¦ì¤¸ªº¾÷½X ( ¸Ô²Ó±¡§Î¡A½Ð°Ñ¦Òµù¤G )
KEY_WRITE20006Hµ²¦X STANDARD_RIGHTS_WRITE¡BKEY_SET_VALUE ©M KEY_CREATE_SUB_KEY ¤T­ÓºX¼Ð
KEY_READ20019Hµ²¦X STANDARD_RIGHTS_READ¡BKEY_QUERY_VALUE¡BKEY_ENUMERATE_SUB_KEYS ©M KEY_NOTIFY ¥|­ÓºX¼Ð
KEY_EXECUTE20019H»P KEY_READ ¬Û¦P
KEY_ALL_ACCESS0F003FHµ²¦X¤F STANDARD_RIGHTS_REQUIRED¡BKEY_QUERY_VALUE¡BKEY_SET_VALUE¡BKEY_CREATE_SUB_KEY¡BKEY_ENUMERATE_SUB_KEYS¡BKEY_NOTIFY »P KEY_CREATE_LINK ¤C­ÓºX¼Ð

³Ì«á¤@­Ó°Ñ¼Æ¡AphkResult¡A«ü¦V¤@­ÓÅܼƦì§}¡A¦¹ÅܼƬO¥Î¨Ó¶Ç¦^­n¶}±Òªº¤l¾÷½X¥N½X¡C¦pªG©I¥s RegOpenKeyEx ¦¨¥\¡Aªð¦^­È¬° ERROR_SUCCESS¡A¦Ó ERROR_SUCCESS ¨ä¹ê¬O 0¡A³o¤@ÂI©M¤j³¡¤Àªº API ¤£¦P¡F¦pªG©I¥s¥¢±Ñ¡Aªð¦^¿ù»~½X ( ¿ù»~½X¤£¬° 0 )¡C¦³Ãöµn¿ý¸ê®Æ®wªº API¡A³£¬O¦p¦¹¡A¦pªG¦¨¥\¡A¶Ç¦^ ERROR_SUCCESS¡F¦pªG¥¢±Ñ¡Aªð¦^¿ù»~­È¡C

RegQueryValueEx

­nÀò±o©Î¬d¸ß¬Y­Ó¤l¾÷½X¤¤ªº¬Y¶µ¼Æ­È¸ê®Æ¤Î¸ê®ÆÃþ«¬¡A´N±o©I¥s RegQueryValueEx¡A¨ä­ì«¬¬°

LONG WINAPI RegQueryValueEx(
  __in          HKEY    hKey,
  __in_opt      LPCTSTR lpValueName,
  __reserved    LPDWORD lpReserved,
  __out_opt     LPDWORD lpType,
  __out_opt     LPBYTE  lpData,
  __inout_opt   LPDWORD lpcbData
);

²Ä¤@­Ó°Ñ¼Æ¬O hKey¡A´N¬O«ü­n¬d¸ßªº¤l¾÷½X¥N½X¡A¥¦¥²¶·¬O¸g¥Ñ KEY_QUERY_VALUE ©I¥s RegOpenKeyEx ©Ò¶}±Òªº¤l¾÷½X¡A¤]¥i¥H¬O HKEY_CLASSES_ROOT¡BHKEY_CURRENT_USER¡BHKEY_LOCAL_MACHINE¡BHKEY_USERS¡BHKEY_PERFORMANCE_DATA¡BHKEY_CURRENT_CONFIG µ¥¡C²Ä¤G­Ó°Ñ¼Æ¡AlpValueName¡A¬O¤@¦r¦êªº¦ì§}¡A¦¹¦r¦ê¬°²Ä¤@­Ó°Ñ¼Æ¡AhKey¡A¤¤ªº¬Y¤@­Ó¼Æ­È¦WºÙ¡A¦pªG lpValueName ¬° 0 ©Î«ü¦VªÅ¦r¦ê¡A¨º»ò RegQueryValueEx ´N·|¨ú±o¤l¾÷½X¡AhKey¡A¹w³]­È¼Æ­Èªº¸ê®Æ¤Î¸ê®ÆÃþ«¬¡C¦pªG hKey ¤¤¨S¦³ lpValueName ©Ò«ü¦r¦êªº¼Æ­È¦WºÙ¡A¨º»ò·|ªð¦^ ERROR_FILE_NOT_FOUND¡C

²Ä¤T­Ó°Ñ¼Æ¡AlpReserved¡A¥²¶·¬O 0¡A¬°¨t²Î©Ò«O¯d¡C²Ä¥|­Ó°Ñ¼Æ¡AlpType¡A¬O¬Y­ÓÅܼƪº¦ì§}¡ARegQueryValueEx ·|§â¨ú±oªº¼Æ­È¤§¸ê®ÆÃþ«¬¦s¤J¦¹ÅܼÆùØ¡C¦pªG±zı±o¤£¶·Àò±o¸ê®ÆÃþ«¬¡A¥i¥H§â lpType ³]¬° 0¡C²Ä¤­­Ó°Ñ¼Æ¡AlpData¡A¤]¬O¬Y¶ô°O¾ÐÅ餧¦ì§}¡ARegQueryValueEx ·|§â¨ú±oªº¼Æ­È¤§¸ê®Æ¦s¤J¦¹°O¾ÐÅéùØ¡A¦¹°O¾ÐÅéªø«×¥Ñ lpcbData ¨M©w¡C¦pªG±zı±o¤£¶·Àò±o¸ê®Æ¡A¥i¥H§â lpData ³]¬° 0¡C

³Ì«á¤@­Ó°Ñ¼Æ¡AlpcbData¡A¬O¤@­ÓÅܼƤ§¦ì§}¡A¦¹ÅܼƥΨӳ]©w lpData ©Ò«ü°O¾ÐÅ馳¦h¤j¡A¥H¦ì¤¸²Õ¬°³æ¦ì¡C¦b©I¥s RegQueryValueEx ¦¨¥\«á¡A¨t²Î·|§â¹ê»ÚŪ¨ú¨ìªº¸ê®Æªø«×¦s¤J¦¹ÅܼÆùØ¡C¦pªG lpcbData ©Ò«üÅܼÆùتº¼Æ­È¤Ó¤p¡A¦Ó¨Ï¸Ó°O¾ÐÅ餣¨¬¥H®e¯Ç©Ò¦³¸ê®Æ¡A³o®É­Ô RegQueryValueEx ·|ªð¦^ ERROR_MORE_DATA¡A¨Ã§âÀ³¦³ªº¤j¤p¦s¤J lpcbData ©Ò«üÅܼÆùØ¡A¦¹¨è lpData ©Ò«üªº°O¾ÐÅ餺®e¬°©U§£¸ê®Æ¡C¦pªG©ÒÀò¨úªº¸ê®ÆÃþ«¬¬° REG_SZ¡BREG_MULTI_SZ ©Î REG_EXPAND_SZ¡A¨º»ò lpcbData ©Ò«üÅܼƫüªº¬O¥]§t 0 ªº¼Æ­È¸ê®Æªø«×¡C¦pªG lpData ¬° 0¡A¨º»ò lpcbData ´N¨S¦³·N¸q¤F¡A©Ò¥H¤]À³¸Ó³]¬° 0¡F¦ý¬O¦¹¨è lpcbData ¤]¥i¥H¤£³]¬° 0¡A¦Ó¬O³]¬°¯u¥¿«ü¦V¬Y­ÓÅܼƪº¦ì§}¡A³o®É¨t²Î·|§â¼Æ­Èªº¸ê®Æªø«×¶Ç¨ì¸ÓÅܼÆùØ¡A¤]·|§â¸ê®Æ§ÎºA¦s¤J lpData ©Ò«üªºÅܼÆùØ¡AµM«á¶Ç¦^ ERROR_SUCCESS¡Cµ{¦¡³]­p®v¥i¥H§Q¥Î¦¹¶µ¯S©Ê¡A©I¥s¨â¦¸ RegQueryValueEx¡A²Ä¤@¦¸Åý lpData ¬° 0¡AlpcbData «ü¦V¬Y­ÓÅܼƪº¦ì§}¡A³o¼Ë´N¯à±o¨ì¼Æ­È¸ê®Æªø«×¡AµM«á¦A°t¸m¾A·í¤j¤pªº°O¾ÐÅé°Ï¶ô¡F²Ä¤G¦¸¤~Åý lpData ¯uªº«ü¦V¦¹°O¾ÐÅé°Ï¶ô¡AlpcbData ¤´«ü¦V¨º­ÓÅܼơA³o¼Ë´N¥i¥H¤£¥²½M²q­n°t¸m¦h¤Ö°O¾ÐÅé¡A¦Ó¯àÀò±o¼Æ­Èªº¸ê®Æ¡C

RegQueryValueEx ªºªð¦^­È¡A¥i¯à¦³¥H¤U´XºØ±¡§Î¡G

  1. ­Y¦¨¥\¡Aªð¦^ ERROR_SUCCESS¡C
  2. ­Y lpData ©Ò«üªº°O¾ÐÅé¤Ó¤p¡A¨t²Î¶Ç¦^ ERROR_MORE_DATA¡A¨Ã¥B¨t²Î¤]·|§â¾A·íªº°O¾ÐÅé¤j¤p¶ñ¤J lpcbData ©Ò«üªºÅܼÆùØ¡C
  3. ­Y lpValueName ©Ò«ü¼Æ­È¦WºÙ¦r¦ê¤£¦s¦b¡A¨º¨t²Î·|¶Ç¦^ ERROR_FILE_NOT_FOUND¡C
  4. ¨ä¥L¿ù»~¡A½Ð°Ñ¦Ò MSDN ªº¡usystem error code¡v¡C

RegEnumKeyEx

¦pªG·QÀò¨ú¬Y­Ó¾÷½X¤º¡A¦³­þ¨Ç¤l¾÷½X®É¡AÀ³¶i¤J¤@­Ó°j°é¡A­«½Æ©I¥s RegEnumKeyEx¡A´N¯à§â³o¨Ç¤l¾÷½X¤@¤@¦CÁ|¥X¨Ó¡CRegEnumKeyEx ªº­ì«¬¬O¡G

LONG WINAPI RegEnumKeyEx(
  __in         HKEY      hKey,
  __in         DWORD     dwIndex,
  __out        LPTSTR    lpName,
  __inout      LPDWORD   lpcName,
  __reserved   LPDWORD   lpReserved,
  __inout      LPTSTR    lpClass,
  __inout_opt  LPDWORD   lpcClass,
  __out_opt    PFILETIME lpftLastWriteTime
);

²Ä¤@­Ó°Ñ¼Æ¡AhKey¡A¬O¾÷½X¥N½X¡C¦Óµ{¦¡·Q­nÀò¨ú³o­Ó¾÷½X¤U¤@¼hªº©Ò¦³¤l¾÷½X¸ê®Æ¡AhKey ¥²¶·¨ã¦³ KEY_ENUMERATE_SUB_KEYS ¦s¨úÅvªº¾÷½X¥N½X¡A¥i¥H¸g¥Ñ KEY_ENUMERATE_SUB_KEYS ¬°°Ñ¼Æ©I¥s RegCreateKeyEx¡BRegCreateKeyTransacted¡BRegOpenKeyEx¡BRegOpenKeyTransacted µ¥ API¡A³o¨Ç API ªº¶Ç¦^­È´N¬O¨ã¦³ KEY_ENUMERATE_SUB_KEYS ¦s¨úÅvªº¾÷½X¥N½X¡ChKey ¤]¥i¥H¬O HKEY_CLASSES_ROOT¡BHKEY_CURRENT_CONFIG¡BHKEY_CURRENT_USER¡BHKEY_LOCAL_MACHINE¡BHKEY_PERFORMANCE_DATA¡BHKEY_USERS ¹w³]ªº¾÷½X¡C²Ä¤G­Ó°Ñ¼Æ¡AdwIndex¡A¬O­nÀò±oªº¤l¾÷½X½s¸¹¡A·íµ{¦¡²Ä¤@¦¸©I¥s RegEnumKeyEx ®É¡AdwIndex À³³]¬° 0¡A´N¯à±o¨ì²Ä¹s­Ó¤l¾÷½Xªº¸ê®Æ¡AµM«á¶i¤J°j°é¡A­«½Æ©I¥s RegEnumKeyEx¡A¦ý¨C¦¸©I¥s®É§â dwIndex ¥[¤@¡A´N¯àÀò±o¤U¤@­Ó¤l¾÷½Xªº¸ê®Æ¡A¦p¦¹¨C¦¸¨Ï dwIndex ¥[¤@¡Aª½¨ìªð¦^­È¤£¬° 0 ¦Ó¬O ERROR_NO_MORE_ITEMS ¬°¤î¡A´N¯à¦CÁ|¥X hKey ¤º©Ò¦³¤l¾÷½Xªº¸ê®Æ¡C·íµMµ{¦¡¤]¯à¥ý©I¥s RegQueryInfoKey¡A¨ú±o¦³´X­Ó¤l¾÷½X¡AµM«á²Ä¤@¦¸©I¥s RegEnumKeyEx ®É¡A§â dwIndex ³]¬°³Ì«á¤@­Ó¤l¾÷½X½s¸¹¡A¦Ó¶i¤J°j°é®É¡A¨C¦¸¨Ï dwIndex ´î¤@ª½¨ìÅܬ° 0 ¬°¤î¡C

²Ä¤T­Ó°Ñ¼Æ¡AlpName ¬O¤@¶ô°O¾ÐÅé¦ì§}¡A¥Î¨Ó¦s©ñ¤l¾÷½Xªº¦WºÙ¡C¦pªG©I¥s¦¨¥\¡A¨t²Î·|§â¤l¾÷½X¦WºÙ©ñ¤J¦¹°O¾ÐÅé°Ï·\¤º¡A¦ý¤£¥]§t¤W¤@¼hªº¾÷½X¦WºÙ¡F¦pªG©I¥s¥¢±Ñ¡A«h¤£Åܧ󦹰O¾ÐÅé°Ï¶ô¤º®e¡C²Ä¥|­Ó°Ñ¼Æ¡AlpcName¡A¬O¤@­ÓÅܼƪº¦ì§}¡A¥Î¨Ó«ü©w lpName ªº¤j¤p¡A¥H¦r¤¸¬°³æ¦ì¡C¦pªG©I¥s¦¨¥\¡A¨t²Î·|§â¤l¾÷½X¦WºÙªºªø«×¦s¤J³o­ÓÅܼÆùØ¡C²Ä¤­­Ó°Ñ¼Æ¡AlpReserved¡A¬O«O¯d°Ñ¼Æ¡AÀ³³]¬° 0¡C

²Ä¤»­Ó°Ñ¼Æ¡AlpClass¡A¬O¤@¶ô°O¾ÐÅ骺¦ì§}¡A¨t²Î·|§â¤l¾÷½XªºÃþ§O¦s¤J¦¹¦ì§}¤¤¡C²Ä¤C­Ó°Ñ¼Æ¡AlpcClass¡A¬O¤@ÅܼƦì§}¡A¨t²Î·|§â¤l¾÷½XÃþ§Oªø«×¦s¤J¦¹ÅܼÆùØ¡A¥H¦r¤¸¬°³æ¦ì¡C²Ä¤K­ÓÅܼơAlpftLastWriteTime¡A¬O FILETIME µ²ºcÅ骺¦ì§}¡A¨t²Î·|§â¤l¾÷½X³Ì«á¼g¤Jªº®É¶¡¡A¦s¤J¦¹µ²ºcÅ餺¡C

RegEnumValue

¦pªG¤£ª¾¬Y­Ó¾÷½X¤º¦³­þ¨Ç¼Æ­È®É¡A¥i¥H©I¥s RegEnumValue §â³o¨Ç¼Æ­È¤@¤@¦CÁ|¥X¨Ó¡CRegEnumValue ªº­ì«¬¬O¡G

LONG WINAPI RegEnumValue(
  __in          HKEY    hKey,
  __in          DWORD   dwIndex,
  __out         LPTSTR  lpValueName,
  __inout       LPDWORD lpcchValueName,
  __reserved    LPDWORD lpReserved,
  __out_opt     LPDWORD lpType,
  __out_opt     LPBYTE  lpData,
  __inout_opt   LPDWORD lpcbData
);

²Ä¤@­Ó°Ñ¼Æ¡AhKey¡A´N¬O­n¦CÁ|¥X¨Óªº¾÷½X¥N½X¡A¥¦¥²¶·¬O¸g¥Ñ KEY_QUERY_VALUE ©I¥s RegOpenKeyEx¡BRegCreateKeyEx ©Òªð¦^ªº¤l¾÷½X¡A¤]¥i¥H¬O HKEY_CLASSES_ROOT¡BHKEY_CURRENT_USER¡BHKEY_LOCAL_MACHINE¡BHKEY_USERS¡BHKEY_PERFORMANCE_DATA¡BHKEY_CURRENT_CONFIG µ¥¡C²Ä¤G­Ó°Ñ¼Æ¡AdwIndex¡A¬O­nÀò±oªº¼Æ­È½s¸¹¡A·íµ{¦¡²Ä¤@¦¸©I¥s®É¡AdwIndex ¬° 0¡A¤U¤@¦¸©I¥s®É§â dwIndex ¥[¤@¡A´N¯àÀò±o¤U¤@­Ó¼Æ­È¡A¦p¦¹¨C¦¸¨Ï dwIndex ¼W¤@¡Aª½¨ìªð¦^­È¤£¬° 0 ¬°¤î¡A´N¯à¦CÁ|¥X©Ò¦³ hKey ¤§¤ºªº¼Æ­È¡C

²Ä¤T­Ó°Ñ¼Æ¡AlpValueName¡A¬°¤@°O¾ÐÅé°Ï¶ôªº¦ì§}¡A¨t²Î·|§â¼Æ­È¦WºÙ¦s¤J¦¹°O¾ÐÅé°Ï¶ô¤º¡A³o­Ó¦WºÙ·|¥H 0 ¬°µ²§À¡A¦¹°O¾ÐÅé°Ï¶ô¤]¥²¶·°÷¤j¡A¯à¦s¤J¥]§tµ²§Àªº 0 ¤Î¼Æ­È¦WºÙ¡C²Ä¥|­Ó°Ñ¼Æ¡AlpcchValueName¡A¬O¤@­ÓÅܼƪº¦ì§}¡A³o­ÓÅܼƥΨӪí¥Ü¼Æ­È¦WºÙªºªø«×¡A¤£¥]§tµ²§Àªº 0¡A¥H¦r¤¸¬°³æ¦ì¡C²Ä¤­­Ó°Ñ¼Æ¡AlpReserved¡A¬°¨t²Î«O¯d¡A¶·³]¬° 0¡C

²Ä¤»­Ó°Ñ¼Æ¡AlpType¡A¬°¤@Åܼƪº¦ì§}¡A¨t²Î·|§â¼Æ­Èªº¸ê®ÆÃþ«¬¦s©ñ¦b¦¹ÅܼÆùØ¡C¦pªG±z¤£¥Î¨ì¸ê®ÆÃþ«¬¡A¥i¥H§â lpType ³]¬° 0¡A¨º»ò¨t²Î´N¤£·|¶Ç¦^¸ê®ÆÃþ«¬¡C²Ä¤C­Ó°Ñ¼Æ¡AlpData¡A¬O¤@°O¾ÐÅé¦ì§}¡A¨t²Î¶Ç¦^ªº¸ê®Æ´N¦s©ñ¦b³o¨à¡C¦pªG±z¤£¥Î¨ì¸ê®Æ¡A¥i¥H§â lpData ³]¬° 0¡C³Ì«á¤@­Ó°Ñ¼Æ¡AlpcbData¡A¬O¤@­ÓÅܼƪº¦ì§}¡A¨t²Î·|§â¸ê®Æªø«×¦s¤J¦¹ÅܼÆùØ¡A¸ê®Æªø«×ªº³æ¦ì¬O¦ì¤¸²Õ¡C

RegQueryInfoKey

RegQueryInfoKey ¯àÀò±o¬Y­Ó¾÷½X¤º¤¤§t¦³´X­Ó¤l¾÷½X¡B´X­Ó¼Æ­È¡A¨Ã¥B¤]¯àÀò¨ú³o¨Ç¤l¾÷½X¡B¼Æ­È¤¤¡A¦WºÙ³Ìªøªº¦³¦h¤Ö¦ì¤¸²Õ¡C¦]¦¹ RegQueryInfoKey ³Ì­«­nªº¥Î³~«K¬O¦b©I¥s RegQueryValueEx¡BRegEnumValue µ¥ API ®É¡A¨Æ¥ýÀò±o­n³]©w¦h¤Ö°O¾ÐÅé¡A¥H¨Ñ¦s©ñ©ÒÀò±oªº¸ê®Æ¤§¥Î¡CRegQueryInfoKey ªº­ì«¬¬O¡G

LONG WINAPI RegQueryInfoKey(
  __in         HKEY      hKey,
  __out        LPTSTR    lpClass,
  __inout_opt  LPDWORD   lpcClass,
  __reserved   LPDWORD   lpReserved,
  __out_opt    LPDWORD   lpcSubKeys,
  __out_opt    LPDWORD   lpcMaxSubKeyLen,
  __out_opt    LPDWORD   lpcMaxClassLen,
  __out_opt    LPDWORD   lpcValues,
  __out_opt    LPDWORD   lpcMaxValueNameLen,
  __out_opt    LPDWORD   lpcMaxValueLen,
  __out_opt    LPDWORD   lpcbSecurityDescriptor,
  __out_opt    PFILETIME lpftLastWriteTime
);

²Ä¤@­Ó°Ñ¼Æ¡AhKey¡A¬O«ü­nÀò¨ú­þ¤@­Ó¾÷½X¤ºªº¸ê®Æ¡A¥²¶·¬O¥H KEY_QUERY_VALUE ¦s¨úÅv¬°°Ñ¼Æ¡A©I¥s RegCreateKeyEx¡BRegCreateKeyTransacted¡BRegOpenKeyEx¡BRegOpenKeyTransacted µ¥ API ªºªð¦^­È¡A¤]¥i¥H¬O HKEY_CLASSES_ROOT¡BHKEY_CURRENT_USER¡BHKEY_LOCAL_MACHINE¡BHKEY_USERS¡BHKEY_PERFORMANCE_DATA¡BHKEY_CURRENT_CONFIG µ¥¹w³]­È¡C²Ä¤G­Ó°Ñ¼Æ¡AlpClass¡A«ü¦V¤@°O¾ÐÅé¦ì§}¡A¦¹°O¾ÐÅé¥Î¨ÓÀò±oÃþ§O¦WºÙ¡A¶È¥Î©ó NT ¬°®Ö¤ßªº Windows ¨t²Î¡A¤]¥i³]¬° 0¡Aªí¥Ü¤£Àò¨úÃþ§O¦WºÙ¡C²Ä¤T­Ó°Ñ¼Æ¡AlpcClass¡A¬°¤@ÅܼƦì§}¡A¦¹ÅܼƥΨӶǦ^Ãþ§O¦WºÙªºªø«×¡C²Ä¥|­Ó°Ñ¼Æ¡AlpReserved¡A¬°«O¯dªº°Ñ¼Æ¡A¥²¶·³]¬° 0¡C

²Ä¤­­Ó°Ñ¼Æ¡AlpcSubKeys¡A¬°¤@ÅܼƦì§}¡A¦¹ÅܼƥΨӶǦ^ hKey ¤¤©Ò§tªº¤l¾÷½X­Ó¼Æ¡ClpcSubKeys ¥i¥H¬° 0¡Aªí¥Ü¤£»Ý­nÀò±o¤l¾÷½X­Ó¼Æ¡C²Ä¤»­Ó°Ñ¼Æ¡AlpcMaxSubKeyLen¡A¬°¤@ÅܼƦì§}¡A¦¹ÅܼƥΨӶǦ^ hKey ¤¤©Ò§tªº¤l¾÷½X¦WºÙ³Ìªøªº¦³¦h¤Ö­Ó¦r¤¸¡A¦Ó¦¹¶Ç¦^ªº³Ìªø¤l¾÷½X¦WºÙ¨Ã¤£¥]§t NULL ¦r¤¸¡A¦]¦¹¦p¥H¦ì¤¸²Õ¬°³æ¦ì¡A³Ìªø¦WºÙªº°O¾ÐÅé¤j¤pÀ³¬° [lpcMaxSubKeyLen]¡Ñ2+2¡ClpcMaxSubKeyLen ¤]¥i¥H³]¬° 0¡Aªí¥Ü¤£»ÝÀò±o³Ìªøªº¤l¾÷½X¡C²Ä¤C­Ó°Ñ¼Æ¡AlpcMaxClassLen¡A¬°¤@ÅܼƦì§}¡A¥Î¨Ó¶Ç¦^ hKey ¤¤©Ò§tªºÃþ§O¦WºÙ³Ìªøªº¦³¦h¤Ö­Ó¦r¤¸¡A¦P¼Ë¤£¥]§t NULL¡A¦pªG¤£»Ý­n³ÌªøªºÃþ§O¦WºÙ¡AlpcMaxClassLen ¤]¥i¥H³]¬° 0¡C²Ä¤K­Ó°Ñ¼Æ¡AlpcValues¡A¬°¤@Åܼƪº¦ì§}¡A¦¹ÅܼƥΨӶǦ^ hKey ¤¤©Ò§tªº¼Æ­È­Ó¼Æ¡A¦pªG¤£»Ý­n¤]¥i¥H³]¬° 0¡C

²Ä¤E­Ó°Ñ¼Æ¡AlpcMaxValueNameLen¡A¬°¤@ÅܼƦì§}¡A¦¹ÅܼƥΨӶǦ^¼Æ­È¦WºÙ³Ìªøªº¦³¦h¤Ö­Ó¦r¤¸¡A¦P¼Ë¤£¥]§t NULL¡A¦pªG¤£»Ý­n³Ìªøªº¼Æ­È¦WºÙ¡AlpcMaxValueNameLen ¤]¥i¥H³]¬° 0¡C²Ä¤Q­Ó°Ñ¼Æ¡AlpcMaxValueLen¡A¬°¤@ÅܼƦì§}¡A¦¹ÅܼƥΨӶǦ^³o¨Ç¼Æ­Èªº¸ê®Æ¤¤¡A¸ê®Æªø«×³Ì¤jªº¦³¦h¤Ö­Ó¦ì¤¸²Õ¡A¦pªG¤£»Ý­n³Ìªø¤]¥i¥H³]¬° 0¡C²Ä¤Q¤@­Ó°Ñ¼Æ¡AlpcbSecurityDescriptor¡A¬°¤@ÅܼƦì§}¡A¦¹ÅܼƥΨӶǦ^¾÷½Xªº security descriptor¡A¶È¥Î©ó NT ¨t²Î¡A¦p¤£»Ý­n¤]¥i¥H³]¬° 0¡C³Ì«á¤@­Ó°Ñ¼Æ¡AlpftLastWriteTime¡A¬°¤@ FILETIME µ²ºcÅé¦ì§}¡A³o­Ó FILETIME µ²ºcÅé°O¿ý³Ì«á¤@¦¸¼g¤J¦¹¾÷½Xªº³Ì«á®É¶¡¡A¶È¥Î©ó NT ¨t²Î¡A¦p¤£»Ý­n¤]¥i¥H³]¬° 0¡C

¦pªG©I¥s RegQueryInfoKey ¦¨¥\¡A¶Ç¦^ ERROR_SUCCESS¡C

RegCreateKeyEx

RegCreateKeyEx ·|¦bµn¿ý¸ê®Æ®wùثإߤ@­Ó¾÷½X¡A°²¦p¦¹¾÷½X¤w¸g¦s¦b¤F¡A¨º»ò RegCreateKeyEx ´N·|¶}±Ò¦¹¾÷½X¡C¤£ºÞ¦¹¾÷½X¦s¦b»P§_¡ARegCreateKeyEx ³£·|¶}±Ò¦¹¾÷½X¡A¦]¦¹¦pªG«á¨Ó¥Î¤£µÛ¡A³£À³¸ÓÃö³¬¡C©³¤U¬O RegCreateKeyEx ªº­ì«¬¡G

LONG WINAPI RegCreateKeyEx(
  __in        HKEY                  hKey,
  __in        LPCTSTR               lpSubKey,
  __reserved  DWORD                 Reserved,
  __in_opt    LPTSTR                lpClass,
  __in        DWORD                 dwOptions,
  __in        REGSAM                samDesired,
  __in_opt    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  __out       PHKEY                 phkResult,
  __out_opt   LPDWORD               lpdwDisposition
);

²Ä¤@­Ó°Ñ¼Æ¡AhKey¡A¬O¥H KEY_CREATE_SUB_KEY ¬°°Ñ¼Æ©I¥s RegCreateKeyEx ©Î RegOpenKeyEx ©Òªð¦^ªº¾÷½X¥N½X¡A¤]¥i¥H¬O¨t²Î¹w³]ªº¾÷½X¡A¨Ò¦p HKEY_CLASSES_ROOT¡BHKEY_CURRENT_CONFIG¡BHKEY_CURRENT_USER¡BHKEY_LOCAL_MACHINE¡BHKEY_USERS¡C²Ä¤G­Ó°Ñ¼Æ¡AlpSubKey¡A¬°¤@µ²§À¬° 0 ªº¦r¦ê¦ì§}¡A¦Ó¦¹¦r¦ê³Ì¦h¥i¹F 32 ¼h¤l¾÷½Xªº²Õ¦X¡A¦r¦êªº²Ä¤@­Ó¤l¾÷½X·|«Ø¥ß¦b hKey ¤§¤U¤@¼h¡C¨Ò¦p¡A­n¦b¡uHKEY_CLASSES_ROOT¡v©³¤U«Ø¥ß¤@³s¦êªº¤l¾÷½X¡A¡uasmfile\shell\edit\command¡v¡A¥i¥H¨Ï hKey ¬° HKEY_CLASSES_ROOT¡AlpSubKey ¬°«ü¦V¡uasmfile\shell\edit\command¡v¦r¦êªº¦ì§}¡A³o¼Ë¡A§Y¨Ï­ì¨Óªº HKEY_CLASSES_ROOT ¨S¦³ asmfile ¤l¾÷½X¡A¤]¯à«Ø¥ß°_¨Ó¥]§t±q asmfile ¨ì command ¥|­Ó¤l¾÷½X¡C·íµM¡A¤]¥i¥H¤@¼h¤@¼h«Ø¥ß¡C²Ä¤T­Ó°Ñ¼Æ¡AReserved¡A¬°¨t²Î©Ò«O¯d¡AÀ³³]¬° 0¡C

²Ä¥|­Ó°Ñ¼Æ¡AlpClass¡A¬°¤@¦ì§}¡A¸Ó¦ì§}¬°Ãþ§O¦WºÙªº¦r¦ê¦ì§}¡A¤]¥i¥H³]¬° 0¡Aªí¥Ü¤£¨Ï¥Î¯d«Ý¥H«á³]©w¡C²Ä¤­­Ó°Ñ¼Æ¡AdwOptions¡A¥i¥H¬O¤Uªí¤¤ªº¬Y¤@¶µ±`¼Æ¡G

dwOptions¼Æ­È»¡©ú
REG_OPTION_NON_VOLATILE0¦¹¬°¹w³]­È¡Aªí¥Ü©Ò«Ø¥ßªº¾÷½X·|«O¦s°_¨Ó¡A§Y¨Ïµ{¦¡µ²§ô¡B©Î¨t²Î­«·s¶}¾÷³£¯à¦s¦bµn¿ý¸ê®Æ®wùØ¡C
REG_OPTION_VOLATILE1ªí¥Ü©Ò«Ø¥ßªº¾÷½X¶È¦s©ó°O¾ÐÅ餤¡A·í­«·s¸ü¤Jµn¿ý¸ê®Æ®w®É¡A¨Ã¤£·|«O¯d¦¹¾÷½X¡A¤×¨ä¬O HKEY_LOCAL_MACHINE ©³¤Uªº¾÷½X±`µo¥Í¦¹ºØ±¡§Î¡C¦pªG©I¥s RegCreateKeyEx ®É¡A¸Ó¾÷½X¤w¸g¦s¦b¦Ó¨Ï¥ÎªÌ³]©w¦¹ºX¼Ð¡A«h¨t²Î·|©¿²¤¦¹ºX¼Ð¡C
REG_OPTION_CREATE_LINK2«Ø¥ß symbolic link ªº¾÷½X¡C
REG_OPTION_BACKUP_RESTORE4¦pªG³]©w¦¹ºX¼Ð¡A¨º»ò RegCreateKeyEx ·|©¿²¤ samDesired °Ñ¼Æ¡A¨Ã¹Á¸Õ¥Î©Ò»ÝªºÅv­­¶}±Ò©Î«Ø¥ß¾÷½X¡A¥H³Æ¥÷©ÎÁÙ­ì¡C

RegCloseKey

·íµ{¦¡¶}±Ò©Î«Ø¥ß¬Y­Ó¾÷½X¡A¸g³B²z¦Ó¤£¦A¨Ï¥Î®É¡A¥²¶·Ãö³¬¸Ó¾÷½X¡A³o®É­Ô´N­n©I¥s RegCloseKey¡A¨ä­ì«¬¬°¡G

LONG WINAPI RegCloseKey(
     __in   HKEY    hKey
);

³o­Ó API ¥u¦³¤@­Ó°Ñ¼Æ¡A´N¬O­nÃö³¬ªº¤l¾÷½X¡AhKey¡C


µù¸Ñ

µù¤@¡GÀô¹ÒÅÜ¼Æ ( Environment Variables )

%WinDir% ¨ä¹ê¬O¥Nªí¡uWindows¡vªº©Ò¦b¥Ø¿ý¡C¨Ï¥ÎªÌ¦b¦w¸Ë Windows ®É¡A¥i¥H§ó§ï Windows ¤l¥Ø¿ýªº¦WºÙ¡A¤]¥i¥H§ï¸Ë¦b¨ä¥LºÏºÐ¾÷¤W¡A¬Æ¦Ü¨t²Î¥»¨­´N¤£¥s¡uWINDOWS¡v( ¨Ò¦p Windows NT/2000 ¹w³]¬° C:\WINNT )¡A¬G¨t²Î±`¥H %WinDir% ªí¥Ü¡C³o¨ÇÅܼƺ٬°Àô¹ÒÅܼơA¥D­nªºÅܼƥi°Ñ¦Ò¤Uªí¡A§ó¸Ô²Óªº¸ê®Æ¡A½Ð°Ñ¦Ò¡uDev::Coder ¦b¹q±è¸Ì¹J¨£Âù­M­L¡vºô­¶ªº»¡©ú¡C

¨t²ÎÅܼƹw³]­È»¡¡@©ú
%HomeDrive%C:±Ò°Ê¨t²Îªº©Ò¦bºÏºÐ¾÷
%SystemRoot%C:\WINDOWS±Ò°Êªº¨t²Î©Ò¦b¤l¥Ø¿ý¡A¬O¨t²Î¤º«ØÅÜ¼Æ ( built-in variable )
%WinDir%C:\WINDOWS±Ò°Êªº¨t²Î©Ò¦b¤l¥Ø¿ý¡A©M %SystemRoot% ´X¥G¬Û¦P¡A¦ý¬°¤@¯ëÅÜ¼Æ ( regular variable )¡A¥B¤ñ %SystemRoot% ¦­¥X²{¡C
%UserProfile%Win XP¡GC:\Documents and Settings\pinocchio
Win 7¡GC:\Users\pinocchio
·í«e¨Ï¥ÎªÌ¡Apinocchio¡A¸ê®ÆÅܼÆ
%temp%Win XP¡GC:\Documents and Settings\pinocchio\Local Settings\Temp
Win 7¡GC:\Users\pinocchio\AppData\Local\Temp
·í«e¨Ï¥ÎªÌ¡Apinocchio¡Aªº¼È¦s°Ï
%ProgramData% C:\ProgramData ( ÁôÂåؿý ) À³¥Îµ{¦¡¦s©ñ¸ê®Æªº¦a¤è¡A³o¬O Vista ¤§«á¤~¦³ªº¥Ø¿ý¡AXP ¹ïÀ³ªº¦ì¸m¬O¦b %ALLUSERPROFILE%¡C¦]¬° %ProgramFiles% ¹ïÅv­­±±ºÞ¸ûÄY®æ¡A¬°¤F¨¾¤îµ{¦¡³Q´c·N«§ï¡A´Nºâ¬OÀ³¥Îµ{¦¡¥»¨­¤]¤£¯à¹ï¦w¸Ë¥Ø¿ý°µ¼g¤J¡A¤]¦]¦¹¤~·|±NÀ³¥Îµ{¦¡ªº¸ê®Æ©î¶}¨Ó¦s©ñ¡C
%ProgramFiles%C:\Program Files À³¥Îµ{¦¡¦w¸Ëªº¦ì¸m¡C
%ProgramFiles(x86)%C:\Program Files (x86) ³o­ÓÀô¹ÒÅܼƥu·|¥X²{¦b 64 ¦ì¤¸ªº¨t²Î¡A°µ¬°¦w¸Ë 32 ¦ì¤¸À³¥Îµ{¦¡ªº¦ì¸m¡C

¿Ë·RªºÅªªÌ¡A±z¤]¥i¥H¶}±Ò¡u©R¥O´£¥Ü¦r¤¸¡v¡A¦b¸Ì­±¿é¤J¡uecho Àô¹ÒÅܼơv¡A¦A«ö¤U¡uEnter¡vÁä¡A¤]¥i¥H±o¨ì¸ÓÀô¹ÒÅܼƤ§­È¡C¦p¤U¹Ï¡G

µù¤G¡G64 ¦ì¤¸ªº Windows

64 ¦ì¤¸ªº Windows ¨t²Î¡A¤´§â³\¦h­«­nªº°ÊºA³sµ²µ{¦¡®w ( DLL ) ©ñ¦b¡u%SystemRoot%\SYSTEM32¡v¤l¥Ø¿ýùØ¡A·í 64 ¦ì¤¸ªºµ{¦¡©I¥s KERNEL32.DLL¡BUSER32.DLL µ¥°ÊºA³sµ²µ{¦¡®wùتº API ®É¡A¤´µM¬O¨ì¡u%SystemRoot%\SYSTEM32¡v¤l¥Ø¿ýùØ¥h´M§ä¡B¸ü¤J¡C³o»ò°µ¦]¬°¦^·¹¬Û®eªº½t¬G¡A¦]¬°³\¦hµ{¦¡±Ä¥Î¼g¦º¨Ï¥Î¸Ó¸ô®|ªº¤è¦¡¡A¤£±o¤w¡A¥u¦n±¾¦ÏÀY¡B½æª¯¦×¡C

µù¤T¡G¦b¡u.txt¡v©Î¡u.°ÆÀɦW¡vùØ­±¥i¯à·|¦³ªº¼Æ­È

PerceivedType

¦b¡u.txt¡v¾÷½XùØ¡A©ÎªÌ»¡¦b¡u.°ÆÀɦW¡vªºùØ­±¡AÁÙ¥i¯à·|¦³¦W¬°¡uPerceivedType¡vªº¼Æ­È¡A¥¦ªº¸ê®ÆÃþ«¬³q±`¬O REG_SZ¡A»¡©ú³oÃþ°ÆÀɦW¬OÄÝ©ó­þ¤@¤jÃþ«¬ªºÀɮסA¥i¯àªº¼Æ­È¦p¤Uªí

PerceivedType»¡©ú
Folder¸ê®Æ§¨
Text¯Â¤å¦rÀÉ¡A¦p txt¡Bhtml¡Bc¡Bcpp¡Bdef µ¥µ¥
Image¹Ï¤ùÀÉ¡A¦p bmp¡Bjpg¡Bpng¡Btiff¡Bico µ¥µ¥
AudioÁn­µÀÉ¡A¦p voc¡Bmp3¡Bmid¡Bwma µ¥µ¥
Video¼v¹³ÀÉ¡A¦p mkv¡Bmpg¡Bavi¡Bwmv µ¥µ¥
CompressedÀ£ÁYÀÉ¡A¦p rar¡Bzip¡Btar¡B µ¥µ¥
Document¤å¥óÀÉ¡A¦p doc¡Bdocx¡Bxlsx¡Bpptx µ¥µ¥
System¨t²ÎÀÉ¡A¦p local¡Bchk¡Bvxd¡B386¡Bhxd µ¥µ¥
Application
Gamemedia
Contacts

Content Type

³o­Ó¼Æ­È¬O§i¶DÂsÄý¾¹¦p¦ó³B²z±qºô¸ô±µ¦¬¨ÓªºÀɮסC¨Ò¦p¡u.gif¡v¾÷½X¤¤¦³¡uContent Type¡v¼Æ­È¡A¦Ó¥B¨ä¸ê®Æ¬°¡uimage/gif¡v¡A·íÂsÄý¾¹ ( ¦p Internet Explorer¡BFirefox¡BGoogle Chrome ) ±µ¦¬¨ì±qºô»Úºô¸ô¶Ç¨Óªº gif Àɮ׮ɡAÂsÄý¾¹´N¤£·|¸ß°Ý§A¬O§_Àx¦s¡A¦Ó¬O§â¥¦Åã¥Ü¦b¿Ã¹õ¤W¡C¦Ü©ó¡uContent Type¡vªº¸ê®Æ¦³­þ¨Ç¡A¥i¥H¬d¤j³°¡uOSC ªº¦b½u¤u¨ã¡vºô­¶¡C