Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Ohjelman käynnistyksen ajastus

Jomppes [13.09.2006 14:39:30]

#

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)

moptim [13.09.2006 19:46:47]

#

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.

kayttaja-4976 [13.09.2006 20:12:38]

#

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?

Meitsi [13.09.2006 20:16:33]

#

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 :)

kayttaja-4976 [13.09.2006 20:53:34]

#

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.

moptim [14.09.2006 17:06:22]

#

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 :)

tgunner [14.09.2006 17:57:41]

#

Minusta sisennykset tulevat aivan automaattisesti, ja ne ovat muutenkin paljon paremmat kuin ei sisennyksiä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta