Olen tekemässä ohjelmaa jolla voi lukita tiettyjä internet-sivuja.
Muuten ohjelma toimii jo, mutta sen sulkemiseen tarvitaan tietenkin salasana jottei sitä voisi sulkea ihan kuka tahansa käyttäjä.
Tässä se ongelma onkin nimittäin Windows XP:ssä "Tehtävienhallinta" ikkunassa "Prosessit" välilehdeltä kuka tahansa käyttäjä voin sulkea tuon ohjelman ilman salasanaa.
Kokonaankaan tuota "Tehtävienhallinta" ikkunaa ei voisi ottaa pois käytöstä koska käyttäjä voi tarvita sitä jos esim. jonkin ohjelma jää jumiin.
Eli tässä onkin nyt todellinen ohjelma... kuinka estää ettei käyttäjä saa suljettua ohjelmaani ilman salasanaa?
Olen etsinyt ratkaisua mm. tavalla että käynnissä on kaksi eri prosessia jotka ns. "vakoilevat" toisiaan ja havaitsevat jos toinen prosessi sulkeutuu ja näin ollen avaa sen uudelleen... tätäkään en ole onnistunut toteuttamaan.
Muuten ohjelma toimii jo, mutta sen sulkemiseen tarvitaan tietenkin salasana jottei sitä voisi sulkea ihan kuka tahansa käyttäjä.
Tässä se ongelma onkin nimittäin Windows XP:ssä "Tehtävienhallinta" ikkunassa "Prosessit" välilehdeltä kuka tahansa käyttäjä voin sulkea tuon ohjelman ilman salasanaa.
Kokonaankaan tuota "Tehtävienhallinta" ikkunaa ei voisi ottaa pois käytöstä koska käyttäjä voi tarvita sitä jos esim. jonkin ohjelma jää jumiin.
Eli tässä onkin nyt todellinen ohjelma... kuinka estää ettei käyttäjä saa suljettua ohjelmaani ilman salasanaa?
Olen etsinyt ratkaisua mm. tavalla että käynnissä on kaksi eri prosessia jotka ns. "vakoilevat" toisiaan ja havaitsevat jos toinen prosessi sulkeutuu ja näin ollen avaa sen uudelleen... tätäkään en ole onnistunut toteuttamaan.
Vastaukset 1
Vanhimmat
Luin jostain seuraavan:
Tee windowsiin service, joka käynnistää sen sovelluksesi. Sen jälkeen suljet servicen. Tämän jälkeen sitä sovellusta ei pitäs saada tapettua.
Toinen mahis ois trapata Task managerin TerminateProcess() jotenkin.
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/157256
Task Manager lähettää ennen TerminateProcessia WM_CLOSE eventin. Ota se kiinni ja lähetä takaisin feikki "shutting down" viesti Task Managerille. Prosessin saa silti tapettua jollain toisella työkalulla.