Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C, VB.NET: Ohjelman sulkemisen estäminen

Sivun loppuun

harald [15.01.2005 16:26:25]

#

Eli koodasin pienen ohjelman Visual Studio 2002:lla ja nyt kaipaisin vielä koodia millä estää ALT+F4:n ja tehtävienhallinnan käyttö ohjelman sammuttamiseen, koska ohjelmassa on Exit-näppäin joka kysyy salasanaa ??? Muuten ei Exitistä ja salasanasta ole paljon hyötyä !!!

Blaze [15.01.2005 16:44:30]

#

Prosessin tappamista tehtävänhallinnasta et voi estää. Applications-välilehdeltä saat sen piiloon (VB6:ssa App.TaskVisible = False), mutta Processes-lehdeltä et.

Alt+F4:n voit estää (ainakin VB6:ssa) disabloimalla otsikkorivin ruksin (Form.ControlBox = False).

Juice [15.01.2005 19:48:50]

#

ControlBoxin poistaminen ei estä Alt+F4:sta VB.Netissä.
Sen sijaan prosessin sammuttamisen tehtävienhallinnasta voit estää tappamalla tehtävienhallinnan, muutoin aika hankalaa...

Laita salasanan kysyminen formin Closing -tapahtuma-aliohjelmaan.

Antti Laaksonen [15.01.2005 20:05:27]

#

VB.NETin ohjeessa väitetään:

Form.ControlBox Property [Visual Basic] kirjoitti:

Note If your form does not display a control box, the form is not able to close using the ALT+F4 keyboard combination.

Mutta näköjään ohjelma silti sulkeutuu.

esakom [19.01.2005 01:13:40]

#

Laita Exit-napin taakse joku boolean, joka on formin tasolle määritelty (eli "globaali" formin tasolla)

Sitten formin Closing-tapahtumaan tutkit tuon booleanin, jotta tiedät yritetäänkö poistamista exit-napin takaa. Jos ei, eli halutaan perua poistuminen, asetat vain:

e.Cancel = True

tuomas [19.01.2005 07:54:27]

#

Voithan tehdä toisen ohjelman joka tarkkailee onko se toinen ohjelma käynnissä. Alt + f4 voi toki estää mutta ei tehtävienhallinnasta prosessin tappoa.

formin unloadiin:
cancel = true

kuten jo mainittiinkin.

esakom [19.01.2005 10:37:36]

#

Niin jos prosessin tapon haluaa estää niin silloin ei käyttäjää saisi lainkaan päästää tehtävienhallintaan, ja se taitaisi vaatia windowsin käyttäjäasetusten muokkausta, joku windows-guru varmaan osaisi antaa siitä hyvän ohjeen.

Blaze [19.01.2005 16:43:11]

#

Jooh, eräässä koulussa ainakin on oppilaiden tunnuksilta estetty pääsy tehtävienhallintaan, kokoruudun always-on-top goatse naamioituna Quaken executableksi aiheutti siellä kuulemma pientä hämmennystä >:)

esakom [19.01.2005 17:48:55]

#

Taitaisi onnistua seuraavalla rekisterikikalla, löysin osoitteesta: http://www.winguides.com/registry/display.php/163/

Ja itse kikka:

lainaus:

Open your registry and find the key below. Create a new DWORD valued named "DisableTaskMgr" and set it to "1" to disable Task Manager. You may need to log off for the changes to take effect.

ja toisin sanoen:

User Key: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\
System]
Value Name: DisableTaskMgr
Data Type: REG_DWORD (DWORD Value)
Value Data: (0 = default, 1 = disable Task Manager)

InvalidCo [19.01.2005 18:15:58]

#

Tulee ihan mieleen yhden tyypin tekemä (tai oikeastaan kopioima, hän kopioi kaikki lähdekoodit ja yhdisti ne) Visual Basic 6-ohjelma joka väänsi ruudun 320x200-resoluutiolle ja tivasi salasanaa. Sen jälkeen jos salasana oli väärä, prosessi toistui, ja jos oikea, niin resoluutio meni ennalleen ja ohjelma sulkeutui. Kerran siinä oli pieni bugi, ja resoluutio jäi siihen tilaan ohjelman päätyttyäkin. :D

Linkku [19.01.2005 18:29:49]

#

while(1) {
    HWND taskmgrhwnd = FindWindow(NULL, "Tehtävienhallinta");
    if(taskmgrhwnd!=NULL) CloseWindow(taskmgrhwnd);
}

esakom [19.01.2005 18:51:30]

#

tuohan olikin hyvä, tapetaan Tehtävienhallinta ennenkuin se tappaa meidät =)

Juice [19.01.2005 19:24:41]

#

esakom kirjoitti:

tuohan olikin hyvä, tapetaan Tehtävienhallinta ennenkuin se tappaa meidät =)

Jota ehdotin jo aiemmin :)

No, harald, mitenkäs projekti etenee?


Sivun alkuun

Vastaus

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

Tietoa sivustosta