有兩種方法,第一種是調用shutdown.exe
成都創新互聯專業為企業提供九江網站建設、九江做網站、九江網站設計、九江網站制作等企業網站建設、網頁設計與制作、九江企業網站模板建站服務,10多年九江做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
shell("shutdown.exe路徑
-s
-t
0")
'-t是延遲時間,0表示立刻關機
另一種就是使用API了,好像是ExitWindow,你可以去搜索一下其用法。
很簡單,你怎么不先問我,還在這提問。用api函數,鉤子,設置成全局鉤子,然后對鉤取來的message消息不做處理,也不返回,這樣屏蔽了鍵盤了。鉤子函數api好像是什么hook的那個,還有鉤子函數的返回函數,以整個自定義函數的指針作參數
禁用U盤和移動硬盤
方法一,BIOS設置法(快刀斬亂麻法)
進入BIOS設置,選擇“Integrated Peripherals”選項,展開后將“USB 1.1 Controller”和“USB 2.0 Contr01ler”選項的屬性設置為“Disableed”,即可禁用USB接口。最后別忘記給BIOS設置上一個密碼,這樣他人就無法通過修改注冊表解“鎖”上述設備了。
注意:這個方法是完全禁止了USB接口,也就是說各種USB接口的設備均不能用了,當然也包括了U盤和移動盤。由于此法過于霸道,請慎用。
方法二,禁止閃盤或移動硬盤的啟動(適用于Windows XP/2000/2003)
打開注冊表編輯器,依次展開如下分支[HKEY_LOCAL_MACHINE\SYSTEM\CurrentCntrolSet\Services\USBSTOR],在右側的窗格中找到名為“Start”的DWORD值,雙擊,在彈出的編輯對話框中將其數值數據修改為十六位進制數值“4”。點“確定”按鈕并關閉注冊表編輯器,重新啟動計算機,使設置生效。重啟后,當有人將USB存儲設備連接到計算機時,雖然USB設備上的指示燈在正常閃爍,但在資源管理器當中就是無法找到其盤符,因此也就無法使用USB設備了。
方法三,隱藏盤符和禁止查看(適用于Windows系統)
打開注冊表編輯器,依次展開如下分支[HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Ploicies\Explorer],新建二進制值“NoDrives”,其缺省值均是00 00 00 00,表示不隱藏任何驅動器。鍵值由四個字節組成,每個字節的每一位(bit)對應從A:到Z:的一個盤,當相應位為1時,“我的電腦”中相應的驅動器就被隱藏了。第一個字節代表從A到H的8個盤,即01為A,02為B,04為C……依次類推,第二個字節代表I到P,第三個字節代表Q到X,第四個字節代表Y和Z。比如要關閉C盤,將鍵值改為04 00 00 00;要關閉D盤,則改為08 00 00 00,若要關閉C盤和D盤,則改為0C 00 00 00(C是十六進制,轉成十進制就是12)。
理解了原理后,下面以我的電腦為例說明如何操作:我的電腦有一個軟驅、一個硬盤(5個分區)、一個光驅,盤符分布是這樣的:A:(3.5軟盤)、C:、D:、E:、F:、G:、H:(光盤),所以我的“NoDrives”值為“02 ff ff ff”,隱藏了B、I到Z盤。
重啟計算機后,再插入U盤,在我的電腦里也是看不出來的,但在地址欄里輸入I:(我的電腦電后一個盤符是H)還是可以訪問移動盤的。到這里大家都看得出“NoDrives”只是障眼法,所以我們還要做多一步,就是再新建一個二進制“NoViewOnDrive”,值改為“02 ff ff ff”,也就是說其值與“NoDrives”相同。 這樣一來,既看不到U盤符也訪問不到U盤了。
方法四,禁止安裝USB驅動程序
在Windows資源管理器中,進入到“系統盤:\WINDOWS\inf”目錄,找到名為“Usbstor.pnf”的文件,右鍵點擊該文件,在彈出菜單中選擇“屬性”,然后切換到“安全”標簽頁,在“組或用戶名稱”框中選中要禁止的用戶組,接著在用戶組的權限框中,選中“完全控制”后面的“拒絕”復選框,最后點擊“確定”按鈕。
再使用以上方法,找到“usbstor.inf”文件并在安全標簽頁中設置為拒絕該組的用戶訪問,其操作過程同上。完成了以上設置后,該組中的用戶就無法安裝USB設備驅動程序了,這樣就達到禁用的目的。
注意:要想使用訪問控制列表(ACL),要采用NTFS文件系統。
上面有一些是用修改注冊表來實現的,你用VB訪問注冊表來修改就可以實現
(鎖定光驅在Win2000上的實現)
新建一個工程,在窗體上加入兩個按鈕,粘貼以下程序,看看效果怎么樣?^_^
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) '我的光驅盤符是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
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
If sender Is Me Then MsgBox(e.KeyData.ToString vbCrLf sender.ToString)
End Sub
Private Sub Button1_KeyDown(sender As Object, e As KeyEventArgs) Handles Button1.KeyDown
If sender Is Me Then MsgBox(e.KeyData.ToString vbCrLf sender.ToString)
End Sub
這樣就行了,第一個過程if語句結果為真,第二個過程if語句結果為假,你的所有問題都可通過if判斷語句解決,msgbox代碼只是做個測試,實際為你響應form鍵盤事件的代碼。
本文標題:vb.net怎樣禁用設備 禁用vbs腳本權限
當前地址:http://vcdvsql.cn/article4/dosdpoe.html
成都網站建設公司_創新互聯,為您提供網站建設、企業網站制作、網站營銷、網站設計公司、網頁設計公司、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯