²ÎÊý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