最簡(jiǎn)單的方法是讀取注冊(cè)表“HKEY_LOCAL_MACHINE→System→CurrentControlSet→Control→FileSystem→CDFS”的鍵值,通過(guò) “CacheSize”和“Prefetch”兩個(gè)主鍵的DWORD鍵值,即可獲得光驅(qū)緩存大小與讀寫速度。前者可取值“4d6”(適中)或“9ac” (更大),后者則可根據(jù)光驅(qū)速度取值:32x光驅(qū)取值“700”、40x為“800”、48x為“900”,以此類推
在西工等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),西工網(wǎng)站建設(shè)費(fèi)用合理。
你可以這樣做,設(shè)置窗體的TopMost 屬性為真!
Me.TopMost = True
Form.TopMost 屬性
獲取或設(shè)置一個(gè)值,指示該窗體是否應(yīng)顯示為最頂層窗體。
在托盤點(diǎn)擊事件里 添加彈出菜單 即可 和在窗體上彈出菜單一樣
可以利用msgbox 實(shí)現(xiàn),也可以通過(guò)另外的窗體上畫出表格實(shí)現(xiàn)
方法一,利用msgbox:
Private Sub Command1_Click()Dim a As Long, b As Long, c As LongMsgBox "┌────┬────┬────┐" vbCrLf _ "│ 庫(kù)存1 │ 庫(kù)存2 │ 庫(kù)存3 │" vbCrLf _ "├────┼────┼────┤" vbCrLf _ "│" formatstr(a) "│" formatstr(b) "│" formatstr(c) "│" vbCrLf _ "└────┴────┴────┘" End SubPrivate Function formatstr(ByVal inputStr As String) As StringDim j As Integerj = (8 - Len(inputStr)) \ 2formatstr = Space(j) inputStr Space(j) Space((8 - Len(inputStr)) Mod 2)End Function
方法二,利用窗體實(shí)現(xiàn):
’新建form2窗體‘將以下代碼復(fù)制到form2窗體中Private Sub Form_Load()ShowPrint "┌────┬────┬────┐" vbCrLf _ "│ 庫(kù)存1 │ 庫(kù)存2 │ 庫(kù)存3 │" vbCrLf _ "├────┼────┼────┤" vbCrLf _ "│" formatstr(a) "│" formatstr(b) "│" formatstr(c) "│" vbCrLf _ "└────┴────┴────┘" End SubPrivate Function formatstr(ByVal inputStr As String) As StringDim j As Integerj = (8 - Len(inputStr)) \ 2formatstr = Space(j) inputStr Space(j) Space((8 - Len(inputStr)) Mod 2)End Function‘將以下代碼復(fù)制在form1窗體中Private Sub Command1_Click()Form2.ShowEnd Sub
禁用U盤和移動(dòng)硬盤
方法一,BIOS設(shè)置法(快刀斬亂麻法)
進(jìn)入BIOS設(shè)置,選擇“Integrated Peripherals”選項(xiàng),展開后將“USB 1.1 Controller”和“USB 2.0 Contr01ler”選項(xiàng)的屬性設(shè)置為“Disableed”,即可禁用USB接口。最后別忘記給BIOS設(shè)置上一個(gè)密碼,這樣他人就無(wú)法通過(guò)修改注冊(cè)表解“鎖”上述設(shè)備了。
注意:這個(gè)方法是完全禁止了USB接口,也就是說(shuō)各種USB接口的設(shè)備均不能用了,當(dāng)然也包括了U盤和移動(dòng)盤。由于此法過(guò)于霸道,請(qǐng)慎用。
方法二,禁止閃盤或移動(dòng)硬盤的啟動(dòng)(適用于Windows XP/2000/2003)
打開注冊(cè)表編輯器,依次展開如下分支[HKEY_LOCAL_MACHINE\SYSTEM\CurrentCntrolSet\Services\USBSTOR],在右側(cè)的窗格中找到名為“Start”的DWORD值,雙擊,在彈出的編輯對(duì)話框中將其數(shù)值數(shù)據(jù)修改為十六位進(jìn)制數(shù)值“4”。點(diǎn)“確定”按鈕并關(guān)閉注冊(cè)表編輯器,重新啟動(dòng)計(jì)算機(jī),使設(shè)置生效。重啟后,當(dāng)有人將USB存儲(chǔ)設(shè)備連接到計(jì)算機(jī)時(shí),雖然USB設(shè)備上的指示燈在正常閃爍,但在資源管理器當(dāng)中就是無(wú)法找到其盤符,因此也就無(wú)法使用USB設(shè)備了。
方法三,隱藏盤符和禁止查看(適用于Windows系統(tǒng))
打開注冊(cè)表編輯器,依次展開如下分支[HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Ploicies\Explorer],新建二進(jìn)制值“NoDrives”,其缺省值均是00 00 00 00,表示不隱藏任何驅(qū)動(dòng)器。鍵值由四個(gè)字節(jié)組成,每個(gè)字節(jié)的每一位(bit)對(duì)應(yīng)從A:到Z:的一個(gè)盤,當(dāng)相應(yīng)位為1時(shí),“我的電腦”中相應(yīng)的驅(qū)動(dòng)器就被隱藏了。第一個(gè)字節(jié)代表從A到H的8個(gè)盤,即01為A,02為B,04為C……依次類推,第二個(gè)字節(jié)代表I到P,第三個(gè)字節(jié)代表Q到X,第四個(gè)字節(jié)代表Y和Z。比如要關(guān)閉C盤,將鍵值改為04 00 00 00;要關(guān)閉D盤,則改為08 00 00 00,若要關(guān)閉C盤和D盤,則改為0C 00 00 00(C是十六進(jìn)制,轉(zhuǎn)成十進(jìn)制就是12)。
理解了原理后,下面以我的電腦為例說(shuō)明如何操作:我的電腦有一個(gè)軟驅(qū)、一個(gè)硬盤(5個(gè)分區(qū))、一個(gè)光驅(qū),盤符分布是這樣的:A:(3.5軟盤)、C:、D:、E:、F:、G:、H:(光盤),所以我的“NoDrives”值為“02 ff ff ff”,隱藏了B、I到Z盤。
重啟計(jì)算機(jī)后,再插入U(xiǎn)盤,在我的電腦里也是看不出來(lái)的,但在地址欄里輸入I:(我的電腦電后一個(gè)盤符是H)還是可以訪問移動(dòng)盤的。到這里大家都看得出“NoDrives”只是障眼法,所以我們還要做多一步,就是再新建一個(gè)二進(jìn)制“NoViewOnDrive”,值改為“02 ff ff ff”,也就是說(shuō)其值與“NoDrives”相同。 這樣一來(lái),既看不到U盤符也訪問不到U盤了。
方法四,禁止安裝USB驅(qū)動(dòng)程序
在Windows資源管理器中,進(jìn)入到“系統(tǒng)盤:\WINDOWS\inf”目錄,找到名為“Usbstor.pnf”的文件,右鍵點(diǎn)擊該文件,在彈出菜單中選擇“屬性”,然后切換到“安全”標(biāo)簽頁(yè),在“組或用戶名稱”框中選中要禁止的用戶組,接著在用戶組的權(quán)限框中,選中“完全控制”后面的“拒絕”復(fù)選框,最后點(diǎn)擊“確定”按鈕。
再使用以上方法,找到“usbstor.inf”文件并在安全標(biāo)簽頁(yè)中設(shè)置為拒絕該組的用戶訪問,其操作過(guò)程同上。完成了以上設(shè)置后,該組中的用戶就無(wú)法安裝USB設(shè)備驅(qū)動(dòng)程序了,這樣就達(dá)到禁用的目的。
注意:要想使用訪問控制列表(ACL),要采用NTFS文件系統(tǒng)。
上面有一些是用修改注冊(cè)表來(lái)實(shí)現(xiàn)的,你用VB訪問注冊(cè)表來(lái)修改就可以實(shí)現(xiàn)
(鎖定光驅(qū)在Win2000上的實(shí)現(xiàn))
新建一個(gè)工程,在窗體上加入兩個(gè)按鈕,粘貼以下程序,看看效果怎么樣?^_^
Option Explicit
Private Const GENERIC_READ As Long = H80000000
Private Const FILE_SHARE_READ As Long = H1
Private Const FILE_SHARE_WRITE As Long = H2
Private Const OPEN_EXISTING As Long = 3
Private Const IOCTL_STORAGE_MEDIA_REMOVAL As Long = H2D4804
Private Type PREVENT_MEDIA_REMOVAL
PreventMediaRemoval As Byte
End Type
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Function LockCDROM(szDrive As String, IsLock As Boolean) As Boolean
On Error GoTo Err
Dim hDevice As Long
Dim PMR As PREVENT_MEDIA_REMOVAL
Dim bytesReturned As Long
Dim Success As Long
hDevice = CreateFile("\\.\" szDrive, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0, OPEN_EXISTING, 0, 0)
PMR.PreventMediaRemoval = CByte(Abs(IsLock))
Success = DeviceIoControl(hDevice, IOCTL_STORAGE_MEDIA_REMOVAL, PMR, Len(PMR), ByVal 0, 0, bytesReturned, ByVal 0)
CloseHandle hDevice
LockCDROM = True
Exit Function
Err:
LockCDROM = False
End Function
Private Sub Command1_Click()
Dim ret As Boolean
ret = LockCDROM("H:", True) '我的光驅(qū)盤符是H:
If ret Then
MsgBox "鎖定成功", vbInformation, "提示"
Else
MsgBox "鎖定失敗", vbInformation, "提示"
End If
End Sub
Private Sub Command2_Click()
Dim ret As Boolean
ret = LockCDROM("H:", False)
If ret Then
MsgBox "解除鎖定成功", vbInformation, "提示"
Else
MsgBox "解除鎖定失敗", vbInformation, "提示"
End If
End Sub
你在第一個(gè)窗口里寫 Form2.ShowDialog()
這樣就可以了,關(guān)掉form2的時(shí)候form1的代碼就會(huì)繼續(xù)執(zhí)行