elikkä olisi tarkoitus rajoittaa lasten tietokoneen käyttöä vaikka tietokoneen käynnistäisi uudelleen nii silloin pitäisi tulla minun tekemäni ohjelma elikkä jos vaikka laittasin niin että he saavat olla tietokoneella tunnin päivässä ja sen jälkeen avautuu minun tekemäni ohjelma joka kysyy salasanaa.
(VB6)
Moduuli:
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Const MINTUNNIT As Byte = 12 'vaihda mieleiseksesi, minimiaika tunteina Const MAXTUNNIT As Byte = 14 'sama kuin äsken Const SALA As String = "salasana" 'muuta omaksesi Dim LoginSucceeded As Boolean Sub Main() Dim SalaSana As String If Hour(Now) < MINTUNNIT Or Hour(Now) > MAXTUNNIT Then SalaSana = InputBox("Anna salasana", "Salasana kiitos!") If SalaSana = SALA Then LoginSucceeded = True: Else LoginSucceeded = False End If TarkistaLokkaus End Sub Private Sub TarkistaLokkaus() If LoginSucceeded = True Then Shell "Explorer.exe": End: Else ExitWindowsEx 1, 0 End Sub
EDIT: Aseta rekkarin HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Winlogon kohdan Shell arvoksi tämän sovelluksen nimi.
Tein itse ohjelman joka väläyttää Windows XP Pirated edition-flagin mustalle ruudulle ja tahtoo 10 sekunnissa salasanan. Sen voi tappaa taskmanilla mutta jos sen pistää tuonne Winlogon-paikkaan, voi silloin hallita kirjausta. Voin pistää nettiin jos tahot.
KingOfTheWorld: Sisennykset tarkoittavat?
Tuossa vain on sellainen ongelma, että tuohan ei vaikuta jo auki oleviin ohjelmiin mitenkään. Jos esim selain on auki ja aika tulee täyteen, tuon ei vaikuta mitenkään. Kannattaisi melkeinpä käyttää joko windowsin omia keinoja (kenties vain XP Pro:ssa) tai sitten tehdä ohjelma joka varoittaa että aikaa on esim 5min jäljellä ja sitten ajan loputtua sulkee explorerin ja kaikki muut paitsi tietyt prosessit (esim. virustutka, palomuuri, windowsin omat). Tuon myöskin voi kiertää ajamalla explorerin task managerista mutta tuo lienee mahdollista estää tutkimalla loopissa avoimia prosesseja ja estämällä taskmanagerin prosessi. (toimii siihen saakka kunnes lapsesi keksivät ladata netistä esim soodan prosessienhallinnan tapaisen ohjelman, tai muuttavat selaimen binäärin nimen joksikin windowsin prosessin nimeksi.
Linuxissa tuo voisi hoitua melko helposti vaikka cron-ajastuksella ja jollain pienellä kikkailulla jossa tallennettaisiin päivä ja koneellaoltu aika tiedostoon, mutta kun kyse on kerta VB:stä ja lasten tietokoneen käytöstä niin Linux lienee poissuljettuna :)
Shell "C:\WINDOWS\system32\logoff.exe"
Jos aika tulee täyteen, brute forcella ulos Windowsista. Talleta kryptattuna johonkin lokiin aukioloajat ja sen pohjalta tee vertailuja.
Shellillä saakin hyvän näkösen ohjelman.
EDIT: Sisennysten kanssa olen kyllä ollut vähän (vähän ja vähän) laiska :)
Minusta sisennykset tulevat aivan automaattisesti, ja ne ovat muutenkin paljon paremmat kuin ei sisennyksiä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.