vb³£Óú¯Êý ÏÂÔØ±¾ÎÄ

²ÎÊýhMenuÖ¸¶¨ÒªÉ¾³ýµÄ²Ëµ¥¾ä±ú£¬µ÷ÓÃÈ磺 lxn=GetSystemMenu(hwnd,false) DestroyMenu lxn

---------------------------------------- È¡µÃÖ¸¶¨²Ëµ¥Ëù°üº¬²Ëµ¥ÏîÊý£ºGetMenuItemCountº¯Êý ÉùÃ÷£º

Declare Function GetMenuItemCount Lib \²ÎÊý¼òµ¥£ºhMenuÖ¸¶¨1¸ö²Ëµ¥¾ä±ú¡£ º¯Êý·µ»ØÖµÎª¸Ã²Ëµ¥Ï°üº¬µÄ×Ӳ˵¥ÏîÊý¡£ µ÷ÓÃÈ磺

s = GetMenuItemCount(GetSubMenu(GetMenu(form1.hwnd),0)) Print s

ÉÏÀý·µ»Ø×ܾä±úϵÚÒ»¸ö×Ӳ˵¥\Îļþ\²Ëµ¥Ï°üº¬µÄ×Ӳ˵¥ÏîÊý¡£ÈçΪ7¡£ --------------------------------------------------- È¡µÃÖ¸¶¨²Ëµ¥ÏÂij×Ӳ˵¥ÏîµÄÃüÁîIDºÅ£ºGetMenuItemID

¸Ãº¯Êý·µ»Ø1¸ö²Ëµ¥ÏÂÖ¸¶¨Î»ÖõÄ1¸ö×Ӳ˵¥ÏîµÄ²Ëµ¥IDºÅ¡£Èç¹ûÖ¸¶¨µÄ×Ӳ˵¥ÏîÊÇÒ»·Ö¸ô·û£¬Ôòº¯Êý·µ»ØÖµÎª0£¬ÉùÃ÷£º

Declare Function GetMenuItemID Lib \As Long

²ÎÊý£ºhMenu--¸¸²Ëµ¥¾ä±ú¡£

nPos--×Ӳ˵¥ÏîÔÚ¸¸²Ëµ¥ÖеÄλÖ㬵Ú1¸ö×Ӳ˵¥Ïî±àºÅΪ0¡£ ----------------------------------------- ¸Ä±ä²Ëµ¥ÏÊý£ºModifyMenuAº¯Êý ÉùÃ÷£º

Declare Function ModifyMenuA Lib \nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As String) as long ²ÎÊý£ºhMenu--Óû¸Ä±äµÄ²Ëµ¥µÄÉϼ¶¸¸²Ëµ¥¾ä±ú¡£

nPosition--Óû¸Ä±äµÄ×Ӳ˵¥ÏîµÄ±êʶ·û¡£ÈçÔÚwFlags²ÎÊýÖÐÖ¸¶¨ÁËMF_BYCOMMAND£¬Õâ¸ö²ÎÊý¾Í´ú±íÓû¸Ä±äµÄ×Ӳ˵¥ÏîµÄÃüÁîIDºÅ¡£ÈçÉèÖõÄÊÇMF_BYPOSITION£¬Õâ¸ö²ÎÊý¾Í´ú±íÓû¸Ä±ä²Ëµ¥ÏîÔÚÉϼ¶¸¸²Ëµ¥ÖеÄλÖ㨵ÚÒ»¸ö²Ëµ¥ÏîµÄλÖÃΪÁ㣩 wFlags--һϵÁг£Êý±êÖ¾µÄ×éºÏ¡£Ïê¼û²Ëµ¥³£Êý±êÖ¾±í

wIDNewItem--Ö¸¶¨Óû¸Ä±ä²Ëµ¥ÏîµÄÐÂÃüÁîIDºÅ¡£ÈçÔÚwFlags²ÎÊýÖÐÖ¸¶¨MF_POPUP£¬¾ÍÓ¦ÊÇÒ»¸öµ¯³öʽ²Ëµ¥µÄ¾ä±ú¡£

lpString--ÈçÔÚwFlags²ÎÊýÖÐÖ¸¶¨ÁËMF_STRING±êÖ¾£¬¾Í´ú±íÓûÉèÖõ½²Ëµ¥ÏîµÄ×Ö·û´®¡£ÈçÉèÖõÄÊÇMF_BITMAP£¬¾Í´ú±íÒ»¸öLong±äÁ¿£¬ÆäÖаüº¬ÁËÒ»¸öλͼ¾ä±ú¡£ÈçÉèÖõÄÊÇMF_OWNERDRAW£¬ÄÇôÕâ¸öÖµ¾Í»á°üÀ¨µ½DRAWITEMSTRUCTºÍMEASUREITEMSTRUCT½á¹¹ÖУ¬²¢ÓÉwindowsÔڲ˵¥ÏîÐèÒªÖØ»­µÄʱºò·¢³ö

×¢£ºwFlags²ÎÊýµÄÏÂÊö×éºÏÐÎʽÊDz»ÔÊÐíµÄ£ºMF_BYCOMMANDºÍMF_BYPOSITION£»MF_CHECKEDºÍMF_UNCHECKED£»MF_MENUBARBREAKºÍMF_MENUBREAK£»MF_DISABLED£¬MF_ENABLEDºÍMF_GRAYED£»MF_BITMAP£¬MF_STRING£¬MF_OWNERDRAWºÍMF_SEPARATOR ²Ëµ¥³£Êý±êÖ¾±í£º

MF_BITMAP ²Ëµ¥ÏîÊÇÒ»·ùλͼ¡£Ò»µ©ÉèÈë²Ëµ¥£¬Õâ·ùλͼ¾Í¾ø¶Ô²»ÄÜɾ³ý¡£ËùÒÔ²»Ó¦¸ÃʹÓÃÓÉvbµÄimageÊôÐÔ·µ»ØµÄÖµ

MF_BYCOMMAND ²Ëµ¥ÏîÓɲ˵¥µÄÃüÁîIDÖ¸¶¨

MF_BYPOSITION ²Ëµ¥ÏîÓÉÆäÔÚ¸¸²Ëµ¥ÖеÄλÖþö¶¨¡£Áã´ú±í¸¸²Ëµ¥ÖеĵÚÒ»¸ö×Ӳ˵¥Ïî MF_CHECKED ¼ì²éÖ¸¶¨µÄ²Ëµ¥Ïî¡£²»ÄÜÓëvbµÄcheckedÊôÐÔ¼æÈÝ MF_DISABLED ½ûÖ¹Ö¸¶¨µÄ²Ëµ¥Ïî¡£²»ÓëvbµÄenabledÊôÐÔ¼æÈÝ MF_ENABLED ÔÊÐíÖ¸¶¨µÄ²Ëµ¥Ïî¡£²»ÓëvbµÄenabledÊôÐÔ¼æÈÝ

MF_GRAYED ½ûÖ¹Ö¸¶¨µÄ²Ëµ¥Ï²¢ÓÃdz»ÒÉ«ÃèÊöËü¡£²»ÓëvbµÄenabledÊôÐÔ¼æÈÝ

MF_MENUBARBREAK ÔÚµ¯³öʽ²Ëµ¥ÖУ¬½«Ö¸¶¨µÄ²Ëµ¥Ïî·ÅÖÃÓÚÒ»¸öÐÂÁУ¬²¢ÓÃÒ»Ìõ´¹Ö±Ïß·Ö¸ô²»Í¬µÄÁÐ

MF_MENUBREAK ÔÚµ¯³öʽ²Ëµ¥ÖУ¬½«Ö¸¶¨µÄ²Ëµ¥Ïî·ÅÖÃÓÚÒ»¸öÐÂÁС£ÔÚ¶¥¼¶²Ëµ¥ÖУ¬½«²Ëµ¥Ïî·ÅÖõ½Ò»¸öÐÂÐÐ

MF_OWNERDRAW ´´½¨Ò»¸öÎïÖ÷»æÍ¼²Ëµ¥£¨ÓÉÄúÉè¼ÆµÄ³ÌÐò¸ºÔðÃè»æÃ¿¸ö²Ëµ¥Ï MF_POPUP ½«Ò»¸öµ¯³öʽ²Ëµ¥ÖÃÓÚÖ¸¶¨µÄ²Ëµ¥Ïî¡£¿ÉÓÃÓÚ´´½¨×Ӳ˵¥¼°µ¯³öʽ²Ëµ¥ MF_SEPARATOR ÔÚÖ¸¶¨µÄ²Ëµ¥Ïî´¦ÏÔʾһÌõ·Ö¸ôÏß

MF_STRING ÔÚÖ¸¶¨µÄ²Ëµ¥Ïî´¦·ÅÖÃÒ»¸ö×Ö·û´®¡£²»ÓëvbµÄcaptionÊôÐÔ¼æÈÝ MF_UNCHECKED ¼ì²éÖ¸¶¨µÄ²Ëµ¥Ïî¡£²»ÄÜÓëvbµÄcheckedÊôÐÔ¼æÈÝ ---------------------------------------------- 1¸ö´´½¨Î»Í¼²Ëµ¥µÄÀý×Ó£¬´úÂëÈçÏ£º Public Const SRCCOPY = &HCC0020 Public Const MF_BYPOSITION = &H400& Public Const MF_BITMAP = &H4&

Private Sub Form_Load()

Dim nLoopCtr, nWidth, nHeight As Integer

Dim lResult, hTempDC, lTempID, hMenuID, lItemCount, hBitmap As Long nWidth = Picture1(nLoopCtr).Width \\ Screen.TwipsPerPixelX nHeight = Picture1(nLoopCtr).Height \\ Screen.TwipsPerPixelY hMenuID = GetSubMenu(GetMenu(Me.hwnd), 0)

hTempDC = CreateCompatibleDC(Picture1(nLoopCtr).hdc) For nLoopCtr = 0 To 3

hBitmap = CreateCompatibleBitmap(Picture1(nLoopCtr).hdc, nWidth, nHeight) lTempID = SelectObject(hTempDC, hBitmap)

lResult = BitBlt(hTempDC, 0, 0, nWidth, nHeight, Picture1(nLoopCtr).hdc, 0, 0, SRCCOPY) lTempID = SelectObject(hTempDC, lTempID) mnubook(nLoopCtr).Caption = \

lResult = ModifyMenuA(hMenuID, nLoopCtr, MF_BYPOSITION Or MF_BITMAP, _ GetMenuItemID(hMenuID, nLoopCtr), hBitmap) Next nLoopCtr

lResult = DeleteDC(hTempDC) End Sub

Çý¶¯Æ÷ÀຯÊý

----------------------------------------- ÅжÏÖ¸¶¨Çý¶¯Æ÷µÄÀàÐÍ£ºGetDriveTypeAº¯Êý

¸Ãº¯ÊýÄÜÒÀ¾Ý¸ùĿ¼ʶ±ð1¸öÇý¶¯Æ÷ÊÇÈíÇý»ò¹âÇý»òÓ²Å̵ȡ£ÉùÃ÷£º

Declare Function GetDriveType Lib \

String) As Long

²ÎÊýnDrive£ºÇý¶¯Æ÷¸ùĿ¼·¾¶µÄ×Ö·û´®£¬Èç\

º¯Êý·µ»ØÖµÎª1¸ö³£Êý£¬Ö¸¶¨Çý¶¯Æ÷ÀàÐÍ£ºDRIVE_ REMOVABLE=2,ÈíÇý£» Èç¹ûÇý¶¯Æ÷²»ÄÜʶ±ð£¬Ôò·µ»Ø0£¬ÈçÖ¸¶¨Ä¿Â¼²» DRIVE_ FIXED=3,Ó²ÅÌ¡£

´æÔÚ£¬Ôò·µ»Ø1¡£ DRIVE _REMOTE=4£¬ÍøÂçÇý¶¯Æ÷£»

DRIVE _CDROM=5£¬¹âÇý£» DRIVE_ RAMDISK=6ÐéÄâ´ÅÅÌ

µ÷ÓÃÈ磺

Private Const DRIVE_CDROM = 5

If GetDriveTypeA(\ÕâÊǹâÇý\

--------------------------------------------------- »ñµÃÖ¸¶¨Çý¶¯Æ÷µÄ¿Õ¼ä´óС£ºGetDiskFreeSpaceAº¯Êý

¸Ãº¯Êý¿É»ñȡָ¶¨Çý¶¯Æ÷µÄ´ØÊýºÍÊ£Óà´ØÊý£¬Ã¿´ØÉÈÇøÊý£¬Ã¿ÉÈÇø×Ö½ÚÊý¡£ÉùÃ÷£º Declare Function GetDiskFreeSpaceA Lib \lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long,

lpTtoalNumberOfClusters As Long) As Long

²ÎÊý ÀàÐͼ°ËµÃ÷

lpRootPathName String£¬²»°üÀ¨¾íÃûµÄÒ»¸ö´ÅÅ̸ù·¾¶ lpSectorsPerCluster Long£¬×°ÔØÃ¿´ØÄÚÓжàÉÙÉÈÇøÊýµÄ±äÁ¿ lpBytesPerSector Long£¬×°ÔØÃ¿¸öÉÈÇøÄÚÓжàÉÙ×Ö½ÚÊýµÄ±äÁ¿ lpNumberOfFreeClusters Long£¬×°ÔØ´ÅÅÌÉÏÊ£Óà´ØÊýµÄ±äÁ¿ lpTtoalNumberOfClusters Long£¬×°ÔØ´ÅÅÌÉÏ×Ü´ØÊýµÄ±äÁ¿

µ÷ÓÃÈ磺 Dim lxn As String

lxn = \Dim a&, b&, c&, d&

GetDiskFreeSpaceA lxn, a&, b&, c&, d&

m& = a& * b& * d&

MsgBox \±¾Çý¶¯Æ÷¹²ÓÐ×Ö½ÚÊý£º\

n& = a& * b& * c&

MsgBox \±¾Çý¶¯Æ÷Ê£Óà×Ö½ÚÊý£º\--------------------------------------------

»ñµÃÖ¸¶¨Çý¶¯Æ÷µÄÎļþϵͳÀàÐÍ£¬¾í±êºÍÐòÁкţºGetVolumeInformationAº¯Êý

ÉùÃ÷£º

Declare Function GetVolumeInformationA Lib \As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber

As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

²ÎÊý ÀàÐͼ°ËµÃ÷

lpRootPathName String£¬Ö¸¶¨Çý¶¯Æ÷µÄ¸ù·¾¶

lpVolumeNameBuffer String£¬×°Ôؾí±êµÄÒ»¸ö×Ö´®£¨»º³åÇø£© nVolumeNameSize Long£¬lpVolumeNameBuffer×Ö´®µÄ³¤¶È lpVolumeSerialNumber Long£¬×°ÔØ´ÅÅÌÐòÁкŵıäÁ¿

lpMaximumComponentLength Long£¬Ö¸¶¨Ò»¸ö±äÁ¿£¬×°ÔØÎļþÃûÿһ²¿·ÖµÄ³¤¶È¡£ÀýÈ磬ÔÚ\µÄÇé¿öÏ£¬Ëü¾Í´ú±ícomponent1»òcomponent2Ãû³ÆµÄ³¤¶È

lpFileSystemFlags Long£¬×°ÔØÒ»¸ö»ò¶à¸ö¶þ½øÖÆÎ»±êÖ¾µÄ±äÁ¿¡£ÕâЩ±êÖ¾ÈçÏ£º¡ñFS_CASE_IS_PRESERVED£ºÎļþÃûµÄ´óСд¼Ç¼ÓÚÎļþϵͳ£»¡ñFS_CASE_SENSITIVE£ºÎļþÃûÒª

Çø·Ö´óСд ¡ñFS_UNICODE_STORED_ON_DISK£ºÎļþÃû±£´æÎªUnicode¸ñʽ ¡ñFS_PERSISTANT_ACLS£ºÎļþϵͳ֧³ÖÎļþµÄ·ÃÎÊ¿ØÖÆÁÐ±í£¨ACL£©°²È«»úÖÆ

¡ñFS_FILE_COMPRESSION£ºÎļþϵͳ֧³ÖÖðÎļþµÄ½øÐÐÎļþѹËõ ¡ñFS_VOL_IS_COMPRESSED£ºÕû¸ö

´ÅÅ̶¼ÊÇѹËõµÄ

lpFileSystemNameBuffer String£¬Ö¸¶¨Ò»¸ö»º³åÇø£¬ÓÃÓÚ×°ÔØÎļþϵͳµÄÀàÐÍÃû³Æ£¨ÈçFAT£¬

NTFSÒÔ¼°ÆäËû£©

nFileSystemNameSize Long£¬lpFileSystemNameBuffer×Ö´®µÄ³¤¶È

ÓÐ8¸ö²ÎÊý£ºµÚ1¸öÖ¸Ã÷Çý¶¯Æ÷£¬µÚ2£¬3¸öÖ¸Ã÷¾í±ê×Ö·û´®»º³åÇø¼°Æä³¤¶È£¬µÚ4¸ö·µ»Ø´ÅÅÌ

ÐòÁкţ¬µÚ7£¬8¸öÖ¸Ã÷ÎļþϵͳÀàÐÍ×Ö·û´®»º³åÇø¼°Æä³¤¶È¡£µ÷ÓÃÈ磺

Private Sub Command2_Click()

Dim sType As String Dim sLabel As String

sType = Space(20): sLabel = Space(20)

Dim lxn As Long

GetVolumeInformationA \

MsgBox \¸ÃÇý¶¯Æ÷¾í±êΪ\MsgBox \¸ÃÇý¶¯Æ÷ÎļþϵͳÀàÐÍΪ\MsgBox \¸ÃÇý¶¯Æ÷ÐòÁкÅΪ\

End Sub

--------------------------------------------- ²éÕÒ±¾»úÉ϶¼ÓÐÄÄЩÇý¶¯Æ÷£ºGetLogicalDriveStringsAº¯Êý

¸Ãº¯ÊýµÄµÚ2¸ö²ÎÊý·µ»Ø°üº¬±¾»úÈ«²¿Çý¶¯Æ÷¸ù·¾¶µÄ×Ö·û´®×éºÏ£¬´ÓÖзÖÀë¼´¿ÉµÃµ½Ã¿¸öÇý¶¯

Æ÷£¬µÚ1¸ö²ÎÊýÖ¸¶¨µÚ2¸ö²ÎÊýµÄ»º³åÇø³¤¶È¡£

ÉùÃ÷£º

Declare Function GetLogicalDriveStringsA Lib \Long,

ByVal lpBuffer As String) As Long

²ÎÊý£º

nBufferLength Long£¬lpBuffer×Ö´®µÄ³¤¶È

LpBuffer String£¬ÓÃÓÚ×°ÔØ¿ÉÓÃÇý¶¯Æ÷Ãû³ÆµÄ×Ö´®¡£Ã¿¸öÃû×Ö¶¼ÓÃÒ»¸öASCÂëֵΪ0µÄ×Ö·û£¨NULL£©·Ö¸ô£¬ÔÚ×îºóÒ»¸öÃû×ÖºóÃæÁ¬Í¬Æä±¾Éí¹æÂɵÄÄǸö\\0,¾ÍÓÐÁËÁ½¸öASCII 0ÖÕÖ¹¡£

º¯Êý·µ»ØÖµÎªÐ´Èë×Ö·û´®»º³åÇøµÄʵ¼Ê³¤¶È¡£

µ÷ÓÃÈ磺

Private Sub Command3_Click()

Dim lxn As String lxn = String(255, \

m% = GetLogicalDriveStrings(255, lxn)

lxn = Left(lxn, m%)

For x = 1 To m% 'ÓÉÓÚASCÂëÖµ0»áʹÆäºóµÄ×Ö·û²»ÏÔʾ£¬ËùÒÔÒª¸ÄΪ¿Õ¸ñ32¡£

a = Asc(Mid(lxn, x, 1)) If a = 0 Then a = 32