Obsah:

Zámok jednotky VBScript: 5 krokov
Zámok jednotky VBScript: 5 krokov

Video: Zámok jednotky VBScript: 5 krokov

Video: Zámok jednotky VBScript: 5 krokov
Video: PS3 #2: Ressurecting the impossable! | EPIC rollercoaster repair that nearly broke me. 2024, November
Anonim
Zámok jednotky VBScript
Zámok jednotky VBScript
Zámok jednotky VBScript
Zámok jednotky VBScript

Aktualizácia: Tento program má teraz schopnosť skryť uvedené uzamknuté jednotky

Potom, čo som urobil zámok obrazovky, ktorý uzamkne počítač používateľov, som sa rozhodol výzvu vytvoriť zámok disku, ktorý uzamkne disk.

Všetci niekedy chceme udržať používateľov mimo disku (najmä USB disku). Tento program teda uzamkne disk, aby k nemu nemal prístup neoprávnený používateľ.

Na rozdiel od zámku obrazovky je tento skript dosť komplikovaný. Hlavne preto, že som pridal toľko if a potom len preto, aby som naprogramoval profesionálny pocit.

Tento program bol vytvorený vo VBScripte. V nasledujúcich krokoch vám ukážem, ako som to urobil.

Krok 1: Môj program…

Môj program…
Môj program…

Môj zámok disku si môžete stiahnuť nižšie:

Tu je surový súbor VBScript LINK. Na konci budete musieť odstrániť jedno z písmen „s“, aby to bolo „DriveLock.vbs“alebo čo len chcete, pokiaľ to končí príponou.vbs.

Krok 2: Vytvorenie zámku disku (časť 1)

Vytvorenie zámku disku (časť 1)
Vytvorenie zámku disku (časť 1)
Vytvorenie zámku disku (časť 1)
Vytvorenie zámku disku (časť 1)

Tu vám ukážem prvú časť zámku jednotky … Prvý obrázok je to, čo sa objaví pri prvom spustení programu.

Urobil som to tak, že tu máte tri možnosti: zamknúť disk, odomknúť disk (y) alebo ukončiť.

Tu je návod, ako som to urobil:

Funkcia DisplayPrompt () intSplash = MsgBox („Čo by ste chceli robiť?“& VbCrLf & vbCrLf _ & „[Kliknutím na ÁNO uzamknete jednotku]“& vbCrLf _ & „[Kliknutím na NIE odomknete disky.] ", 35, cTitleBarMsg) Ak intSplash = 2, potom DisplaySplashScreen () ElseIf intSplash = 7 Potom pri chybe Pokračovať Ďalej objWshShl. RegDelete" HKLM / Software / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoViewOnDrive "objWshSete. HeG / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoDrives "If Err. Number 0 Then MsgBox" Drives are already unlocked. ", 16, cTitleBarMsg DisplayPrompt () End If On Error Choď 0 objWshShl. Run" Taskkill /f /im explorer.exe ", 0 WScript. Sleep 300 objWshShl. Run" cmd /c explorer.exe ", 0 MsgBox" Disk odomknutý bol úspešný! ", 64, cTitleBarMsg DisplayPrompt () Koniec Ak Koniec Funkcia

Ak kliknutím na NIE odomknete jednotky, vymaže sa kľúče databázy Registry, ktoré obsahujú nastavenia, ktoré uzamknú/skryjú jednotku, a taktiež skontroluje, či už nie je jednotka odomknutá. Potom reštartuje explorer.exe, aby sa zmeny prejavili okamžite.

Ak kliknete na tlačidlo Zrušiť, zobrazí sa úvodná obrazovka a potom sa ukončí.

Nakoniec, ak kliknete na ÁNO, prejde do ďalšej ponuky. Čo vysvetlím v nasledujúcom kroku.

Krok 3: Vytvorenie zámku disku (časť 2)

Vytvorenie zámku disku (časť 2)
Vytvorenie zámku disku (časť 2)
Vytvorenie zámku disku (časť 2)
Vytvorenie zámku disku (časť 2)

Ďalej vám ukážem menu, v ktorom ste vybrali čarodejnícky pohon, ktorý chcete zablokovať (obr. 1).

Nastaviť colDrives = objFSO. Drives

Pre každý objDrive v colDrives strDriveList = strDriveList & objDrive. DriveLetter & Space (10) Ďalší strDrives = LCase (Nahradiť (strDriveList, "", "", 1, -1)) Nastaviť colDrives = objFSO. Drives strDriveList = "" Pre každý objDrive v colDrives strDriveList = strDriveList & objDrive. DriveLetter & ": \" & Space (5) Ďalej

InputMenu ()

Sub InputMenu strChoice = InputBox („Zadajte písmeno jednotky, ktorú chcete uzamknúť.“& _ „Alebo zadajte ALL, aby ste uzamkli všetky jednotky.“& _ Vbcrlf & vbcrlf & „Dostupné jednotky“& Space (3) & _ ":" & vbCrLf & vbCrLf & strDriveList, cTitleBarMsg)

Prvý bit kódu vygeneruje zoznam všetkých dostupných jednotiek. Ďalšou časťou je vstupné pole, kde ste zadali písmeno jednotky, ktorú chcete uzamknúť.

Ak sa pokúsite zadať čokoľvek okrem platného písmena jednotky, program to odmietne. Takto som to urobil:

If IsEmpty (strChoice) Then

DisplaySplashScreen () ElseIf strChoice = "" Then MsgBox "Nenechávajte toto prázdne.", 16, cTitleBarMsg InputMenu () ElseIf LCase (strChoice) = "all" Then 'Do nothing ElseIf Len (strChoice) 1 Then MsgBox "Musíte zadať IBA písmeno. ", 16, cTitleBarMsg InputMenu () ElseIf Not InStr (1, strDrives, LCase (strChoice), 1) 0 Then MsgBox" Invalid selection, please try again. ", 16, cTitleBarMsg InputMenu () End If

Prvé dva riadky kontrolujú, či používateľ stlačil tlačidlo Zrušiť a či program ukončil.

Nasledujúce tri riadky kontrolujú, či používateľ ponechal zadávaciu oblasť prázdnu.

Zvyšok kódu je dosť mätúci, ale v zásade ide iba o zaistenie toho, aby používateľ zadal platný disk.

Krok 4: Vytvorenie zámku disku (časť 3)

Vytvorenie zámku disku (časť 3)
Vytvorenie zámku disku (časť 3)

Register z nejakého dôvodu nevie prečítať iba písmeno jednotky, preto musí byť vložené do zodpovedajúceho celého čísla. Práve to robí tento kód uvedený nižšie. Ak chcete získať ďalšie informácie o tomto, kliknite sem.

ElseIf strChoice = "a" Potom

intDriveNumber = 1 ElseIf strChoice = "b" Then intDriveNumber = 2 ElseIf strChoice = "c" Then intDriveNumber = 4

Akonáhle je celé číslo nakonfigurované, skript môže teraz zapisovať do registra pomocou tohto kódu:

Ďalšou poznámkou je, že tento program píše do HKLM namiesto HKCU. HKLM ovplyvňuje všetkých používateľov namiesto iba aktuálne prihláseného používateľa, aby bol zámok účinnejší.

objWshShl. RegWrite "HKLM / Software / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoViewOnDrive", intDriveNumber, "REG_DWORD"

objWshShl. RegWrite "HKLM / Software / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoDrives", intDriveNumber, "REG_DWORD"

Krok 5: Zámok disku

Dúfam, že vám tento návod pomohol. Ak niektorej časti nerozumiete, napíšte komentár alebo mi napíšte.

A prosím, dajte mi spätnú väzbu o akýchkoľvek problémoch a ohodnoťte. Strávil som nad tým veľa času.

Ak si chcete stiahnuť surový súbor vbs, uistite sa, že je uložený s príponou.vbs. Ďalšou príjemnou vecou na tom je, že je prenosný, takže ho môžete spustiť z jednotky flash a nemusíte nič inštalovať.

Odporúča: