Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Aplikaciju u kiosk modu

[es] :: .NET :: WPF Programiranje :: Aplikaciju u kiosk modu

[ Pregleda: 3030 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.rs.



+2 Profil

icon Aplikaciju u kiosk modu08.01.2011. u 22:48 - pre 160 meseci
Ima li neki nacin da postavim wpf aplikaciju u kiosk mod. Postavio sam
Code:

        WindowStyle="None"
        WindowState="Maximized"
        Topmost="True">

I ovo mi postavi aplikaciju iznad svega i sve je ok, ali alt + tab, win key, ctrl + alt + del, alt + F4... ne znam kako da disablujem. Znaci hocu da postignem da nema nacina da kada je aplikacija startovana, da korisnik vidi taskbar, start meni ili bilo sta drugo.

Probao sam ovako, ali i dalje ne sljaka :(
Code:

public partial class Shell : Window
    {        
        public Shell()
        {            
            InitializeComponent();

            IntPtr window = Interop.GetWindowHandle(this);
            IntPtr focused = Interop.GetForegroundWindow();
            if (window != focused)
            {
                Interop.SetForegroundWindow(window);
            }
        }
    }

Code:

public class Interop
    {
        [DllImport("user32.dll")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);

        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        public static IntPtr GetWindowHandle(Window window)
        {
            return new WindowInteropHelper(window).Handle;
        }
    }


[Ovu poruku je menjao Valerij Zajcev dana 09.01.2011. u 00:24 GMT+1]
 
Odgovor na temu

Boris B.
Ljubljana

Član broj: 213615
Poruke: 286
*.dsl.siol.net.



+14 Profil

icon Re: Aplikaciju u kiosk modu11.01.2011. u 10:39 - pre 160 meseci
Moraš da override-uješ windows shell u Windows Registry-ju (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Shell ili HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\
System\Shell, nisam siguran koji) tako da umesto explorer.exe piše TvojPath\Tvoj.exe. Onda će se pri startupu umesto standardnog shell-a (explorer) pokretati tvoja app.

- TopMost=True nije najbolja ideja zbog problema sa popup prozorima tvoje aplikacije i problema sa kontrolama koje se nestandardno crtaju (npr. WebBrowser). Ako je tvoja app. windows shell onda ti topmost ni ne treba.
- Alt-F4 disabluješ u Close handleru glavnog prozora (Cancel=true).
- Windows taster ne radi ništa ako je tvoja app. postavljena kao shell.
- Da disabluješ Ctrl-Alt-Del na NT-u moraš biti miljenik Sile, proguglaj malo ima nešto sigurno.

Trebaće ti i nekakav Watchdog servis koji će pokrenuti ponovo app. u slučaju crash-a, must-have ako WPF kiosk radi par dana bez prestanka.

Nemoj da zaboraviš da ako postaviš svoj shell i disabluješ Ctrl-Alt-Del onda moraš da napraviš neki backdoor u svojoj aplikaciji (samo pokreneš explorer.exe), jer inače ćeš zaključati komp da ni ti ne možeš da uđeš ponovo bez kung-fua sa rescue alatima.
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.static.isp.telekom.rs.



+2 Profil

icon Re: Aplikaciju u kiosk modu12.01.2011. u 07:18 - pre 160 meseci
A, ako zamenim explorer.exe sa mojom aplikacijom, da li cu onda moci da u toku upotrebe programa (mog kioska) da otvorim npr. Word i da ga prikazem u aplikaciji (odnosno ispred aplikacije) ili bilo koji drugi program igricu?
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Aplikaciju u kiosk modu12.01.2011. u 08:18 - pre 160 meseci
Naravno.
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.static.isp.telekom.rs.



+2 Profil

icon Re: Aplikaciju u kiosk modu18.01.2011. u 07:23 - pre 160 meseci
Naisao sam na netu na ovaj clanak na codeprojects-u. Ovim primerom mogu da se disabluju sve kombinacije alt+tab, alt+f4, win key, ctrl+esc... Jedino jos preostaje ctrl+alt+del da ubijem. Dakle ovaj code radi, samo ne razumem se u ovaj code, sa owim win32 api-em, da li je ovo dobro resenje (iz ugla performansi)?
 
Odgovor na temu

Boris B.
Ljubljana

Član broj: 213615
Poruke: 286
*.dsl.siol.net.



+14 Profil

icon Re: Aplikaciju u kiosk modu18.01.2011. u 10:58 - pre 160 meseci
Iz ugla performansi nema nikakvog impacta ako koristis key. hook, mada time resavas posledicu a ne uzrok, sto nikada nije dobra ideja.

Pretpostavljam da pravis neki cybercafe program ili slicno tako da je stvarno najbolje resenje da napravis svoj shell, u tom slucaju ti nista od hook-ova ni ne treba.

Disablovanje ctrl-alt-del-a nije dobra ideja samo da bi onemogucio korisnika da ugasi tvoj program, za taj slucaj se koriste access rights korisnika - znaci file permissions ili GPO. Na primer, ako napravis korisnika "Korisnik" i onemogucis read&execute na fajl taskmgr.exe, onda "Korisnik" ce da dobije Access Denied kada proba Ctrl-Alt-Del.

Varijanta 1. Optimalno resenje je sistemski servis-watchdog koji radi pod accountom NT_AUTHORITY\SYSTEM i kad god vidi da tvoj kiosk.exe ne radi onda ga ponovo pokrene pod credentials "Korisnik" - u tom slucaju ti ne treba cak ni disable exec na taskmgr.exe, jer u prinicipu hoces da korisniku omogucis da ubije igru/program koja je "unresponsive".

Varijanta 2. Pomenuti watchdog servis moze cak i da pokrece kiosk.exe pod svojim accountom (NT_AUTHORITY\System) ali onda sve igre/programe koje pokreces iz svog kioska pokreces kao user "Korisnik" koji ima ogranicena prava. Na taj nacin korinik nikada nece moci da ubije kiosk.exe jer ovaj radi pod sistemskim accountom, ali ce zato moci da ubije sve programe koje je on pokrenuo.
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.static.isp.telekom.rs.



+2 Profil

icon Re: Aplikaciju u kiosk modu19.01.2011. u 07:39 - pre 160 meseci
Citat:

...mada time resavas posledicu a ne uzrok, sto nikada nije dobra ideja.

Pa mislim da moram da resavam posledicu...evo kako:
1 - Korisnik instalira aplikaciju
2 - Aplikacija se startuje i od korisnika trazi username/pass
3 - Sada ako je korisnik administrator aplikacija treba da se ugasi i udje u windows
4 - Admin je zavrsio sta ima => startuje ponovo aplikaciju (e zbog ovoga moram da resavam posledicu, a ne uzrok) i sve one kombinacije tastera su opet iskljucene.

Adobe Flex ima opciju (always in front) mora da ima nesto i WPF.

Citat:

Disablovanje ctrl-alt-del-a nije dobra ideja samo da bi onemogucio korisnika da ugasi tvoj program, za taj slucaj se koriste access rights korisnika - znaci file permissions ili GPO. Na primer, ako napravis korisnika "Korisnik" i onemogucis read&execute na fajl taskmgr.exe, onda "Korisnik" ce da dobije Access Denied kada proba Ctrl-Alt-Del.

Da, ali krajnji korisnik nije neko ko se razume u user account i slicno. Dakle program treba da bude takav da obicna "domacica" ume da ga koristi.
 
Odgovor na temu

Boris B.
Ljubljana

Član broj: 213615
Poruke: 286
*.zaslon-telecom.si.



+14 Profil

icon Re: Aplikaciju u kiosk modu19.01.2011. u 09:13 - pre 160 meseci
Shell mozes da postavis i za svakog korisnika posebno (zamenis HKLM u HKU\UserXXX), tako da admin user ima explorer.exe , a korisnik da ima kiosk.exe. Prijava admina ili korisnika se vrsi preko standarnog windows login prozora.

Da ne tupim previse, kada ogranicavas admin korisnika sa stvarima kao sto je keyb. hook onda ides "uzqrac" celom sistemu, postoje sistemske osnove kako se to resava, a to su korisnicki nalozi, GPO i windows prijava/odjava. Na primer ako je korisnik admin, onda iz bilo kog OpenFile dijaloga moze da "sara" po sistemu jer zaista ima pravo jer je "admin". Da bi napravio sistem da i domacica zna da ga koristi treba ti samo dobar Setup engine i naravno Help file. Imas na netu programcice kao sto su createuser.exe i ntrights.exe koje obicno koriste setup alati da automatizuju kreiranje korisnika i postavljanje prava.

A tebi ako keyb. hook zaista vrsi posao i nije bitno za cilj programa da ce neko da sara po sistemu kao admin, onda ih koristi by all means, nece imati nikakvog uticaja na performanse.

Poz.
Boris
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
 
Odgovor na temu

Boris B.
Ljubljana

Član broj: 213615
Poruke: 286
*.zaslon-telecom.si.



+14 Profil

icon Re: Aplikaciju u kiosk modu19.01.2011. u 09:29 - pre 160 meseci
Kad smo vec kod kioska, evo sad se setih smesne situacije od pre par godina:

Napravili mi WPF kiosk za slovenacko predsedovanje EU, znaci DocumentViewer, WebBrowser, VideoPlayer, lepi dugmici, animacije itd. Touchscreen od 32'', staklena kutija, nema da nema.

Postavimo mi to u Centar Brdo jer dolaze mudonje iz EU pa ce da klikaju i da se dive. Tokom noci nocnom cuvaru u centru bilo dosadno i otvori lik radioveseljak.si, web radio sa slovenackom govedjom muzikom. JavaScript na stranici otvori stranu u novom prozoru, a posto je kiosk aplikacija bila TopMost web strana se naravno otvori ispod glavne aplikacije i krene da tresti govedina do daske (zvucnici naravno ugradjeni u zakljucanu staklenu kutiju). Rezultat je bio da je cuvar dobio nervni slom i verovatno zamalo otkaz, a celu stvar su u 9 ujutru iskljucili iz zida i nisu ni palili ceo dan. Mi smo posle ceo dan klikali i nije nam uspelo da otvorimo stranu u novom prozoru, ali eto njemu je uspelo. Od tada nijedna aplikacija ni bila TopMost.

if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: Aplikaciju u kiosk modu22.01.2011. u 16:32 - pre 160 meseci
Citat:
Boris B.: Kad smo vec kod kioska, evo sad se setih smesne situacije od pre par godina:

Napravili mi WPF kiosk za slovenacko predsedovanje EU, znaci DocumentViewer, WebBrowser, VideoPlayer, lepi dugmici, animacije itd. Touchscreen od 32'', staklena kutija, nema da nema.

Postavimo mi to u Centar Brdo jer dolaze mudonje iz EU pa ce da klikaju i da se dive. Tokom noci nocnom cuvaru u centru bilo dosadno i otvori lik radioveseljak.si, web radio sa slovenackom govedjom muzikom. JavaScript na stranici otvori stranu u novom prozoru, a posto je kiosk aplikacija bila TopMost web strana se naravno otvori ispod glavne aplikacije i krene da tresti govedina do daske (zvucnici naravno ugradjeni u zakljucanu staklenu kutiju). Rezultat je bio da je cuvar dobio nervni slom i verovatno zamalo otkaz, a celu stvar su u 9 ujutru iskljucili iz zida i nisu ni palili ceo dan. Mi smo posle ceo dan klikali i nije nam uspelo da otvorimo stranu u novom prozoru, ali eto njemu je uspelo. Od tada nijedna aplikacija ni bila TopMost. :)



:)
 
Odgovor na temu

[es] :: .NET :: WPF Programiranje :: Aplikaciju u kiosk modu

[ Pregleda: 3030 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.