Kodeeks - AllowByPassKeys


Denne funktion giver mulighed for at forhindre brugeren i at holde Shift-tasten nede ved opstart (og derved undgå at systemet starter automatisk op). Derved kan man forhindre adgang 'bagom systemet'. Benyt vejledningen nederst her på siden.


Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
    Dim dbs As Object, prp As Variant
    Const conPropNotFoundError = 3270

 

    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    ChangeProperty = True

Change_Bye:
    Exit Function

Change_Err:
    If Err = conPropNotFoundError Then    ' Property not found.
        Set prp = dbs.CreateProperty(strPropName, _
            varPropType, varPropValue)
        dbs.Properties.Append prp
        Resume Next
    Else
       
' Unknown error.
        ChangeProperty = False
        Resume Change_Bye
    End If
End Function

Public Function SetStartupProperties(Værdi As Boolean)
    On Error Resume Next
    Application.SetOption "Key Assignment macro", "Autokeys" 
'Angiv at makroen Autokeys benyttes til at definere genvejstaster

    ChangeProperty "AllowBuiltinToolbars", dbBoolean, Værdi   'Tillad indbyggede værktøjslinier
    ChangeProperty "AllowShortcutMenus", dbBoolean, Værdi    
'Tillad indbyggede genvejsmenuer
    ChangeProperty "AllowBreakIntoCode", dbBoolean, Værdi     'Tillad Debug ved eventuelle fejl
    ChangeProperty "AllowSpecialKeys", dbBoolean, Værdi       
'Tillad Specielle Access-taster (F11, Ctrl+G, Alt+F11 m.fl.)
    ChangeProperty "AllowBypassKey", dbBoolean, Værdi        
'Tillad Shift-tast ved opstart
    ChangeProperty "AllowToolbarChanges", dbBoolean, Værdi   
'Tillad ændringer af værktøjslinier og menuer
End Function

 

 

 

 

Vejledning:

  1. Tag backup af applikationen.
  2. Indsæt disse 2 funktioner i et modul.
  3. Kontroller at der er en reference til "Microsoft DAO 3.x Object Library" (find referencer under Tools->References)
  4. På opstart-formularen placeres denne linie kode i hændelsen VedIndlæsning (eller i en opstart-procedure, som f.eks. kaldes fra Autoexec):
    SetStartupProperties False
  5. Der skal som minimum laves én brugerdefineret menulinie, hvor Designvisning og Vindue->Vis er fjernet. (I princippet kan man bare nøjes med Filer->Afslut)
  6. Åbn Start-indstillingerne (menuen Funktioner->Start fra Databasevinduet) og angiv følgende værdier:
    "Vis Databasevindue" sættes til falsk
    "Menulinie" sætte til den ny brugerdefinerede menu
    "Genvejsmenulinie" sættes til ny brugerdefinerede genvejsmenu (hvis en sådan er lavet)
  7. Læs advarslen herunder grundigt!
  8. Efter genstart på normal vis 2 gange, kan databasevinduet ikke længere åbnes, ligesom designvisning ikke længere kan findes.

Advarsel: Du skal altid sørge for at have en 'Bagdør' således at du kan få adgang til systemet! (For hvis du har fulgt ovenstående vejledning, er dit system også låst for dig - du kan dog stadig lave en ny database og importere alle objekter)
En 'Bagdør' skal være en makro eller VBA kode, som kalder SetStartupProperties True, således at du kan bruge Shift-tasten ved næste opstart. Det kan f.eks. være en knap, hvor brugeren promptes for en adgangskode. Hvis denne er korrekt, kaldes SetStartupProperties True.
En anden måde, at lave en 'Bagdør' på, er at binde en 'hemmelig' genvejstast til en makro, som herefter åbner for systemet. Dette gøre f.eks. ved at:

  1. Opret en makro
  2. Aktiver Makronavne (Menuen Vis->makronavne)
  3. Skriv ^B i kolonnen makronavn (^B for Ctrl+B)
  4. I handlling vælges: AfspilKode med argumentet: SetStartupProperties(True)
  5. Luk makro og navngiv den "Autokeys" (NB: Denne makro duer kun fordi 2. linie i funktionen SetStartupProperties angiver at Autokeys skal benyttes til genvejstaster!)
  6. Herefter kan du til hver en tid trykke Ctrl+B, lukke databasen og genstarte mens du holder Shift-tasten nede.

Se en demo her: http://www.makeiteasy.dk/eksempler/AllowBypassKeys.zip