none
Windows 7 dotykové zařízení jako kiosek RRS feed

  • Dotaz

  • Hezký den,

    máme dotykové AIO Lenovo IdeaCentre B310, které má podporu pouze pro Windows 7, a chtěli bychom ho používat jako další kiosek. Windows 8 tam rozchodit nejdou, nejsou ovladače pro dotykové ovládání a s W7 ovladačem padá systém do modré smrti.

    Řeším ale, jak to nejlépe zabezpečit. Proto téma dávám jako diskuzi místo dotazu.

    Mám vyzkoušenou starší Operu s kioskovým módem, který fungoval celkem dobře, ale ne ideálně. Opera šla poměrně snadno přes dotykovou klávesnici úplně shodit. Problém byl i s downloadem souborů a zobrazováním souborů. Ideální by bylo, kdyby bylo stahování souborů a zobrazování v jakékoliv externí aplikaci zablokované a šlo by otvírat jen soubory pomocí pluginu prohlížeče, stačil by PDF reader pro zobrazení PDF v prohlížeči a zbytek zablokovaný, není to ale nutné, pokud by šlo zablokovat vše, tak by to stačilo.

    Prohlížeč se musí po nějaké době nečinnosti resetovat do výchozích nastavení, což ta Opera celkem zvládala.

    Jaké máte zkušenosti s provozem takových zařízení? Musí to být co nejvíc neprůstřelné a blbuvzdorné. Je to opět kiosek pro studenty, kde jako domovská stránka je adresa s běžícími novinkami. Měl by ale sloužit i pro ovládání studentů, aby se mohli například přihlásit do portálu a zkontrolovat věci ke zkouškám/zápočtům apod.

    středa 5. února 2014 9:58

Odpovědi

  • Nakonec jsem to jednoduše obešel a nic netestuji.

    do
    {
    $proc = Get-Process opera -ErrorAction SilentlyContinue
    if ($proc) { } else 
        {
        Start-Process "C:\Program Files\Opera\opera.exe" -ArgumentList '/KioskMode /kioskresetstation /nocontextmenu /nodownload /noexit /nokeys /nomail /nomaillinks /nomenu /noprint /nosave /kioskbuttons'
        }
    Start-Sleep -s 3
    $opera = @(Get-Process opera)[0].MainWindowHandle
    $window = Get-ForegroundWindow
    if ($opera -ne $window) 
        { 
        Start-Sleep -s 11
        $window = Get-ForegroundWindow
        if ($opera -ne $window) { Stop-Process -processname opera }
        }
    } while (1)

    úterý 11. února 2014 7:49

Všechny reakce

  • 1. Docela chapu snahu o vyuziti/recyklaci starsich zarizeni. Neni mi ale jasna snaha o instalaci Windows 8, ktere nejsou podporovane (... i kdyz puvod jadra je ze stejne rodiny). Mozna jako priklad testu se "shims"? Windows 7 budou jeste nejakou dobu podporovane, rozhodne dele, nez cas, po ktery bude pocitac odolavat pokusum studentu.

    2. S Operou bych nevahal a zkusil dat problem na prislusne forum. (Na MS-cs foru asi nebude tak velka komunita, ktera by resila podobny problem.)

    3. Sem se to nehodi, ale jeste bych doporucoval jit cestou s Linuxem (ale i s tim jsem mel problem u integrovane video karty od Intelu - ani W 8 ani poradne Linux.).

    4. Jeste je varianta, kdy system nebude naprosto neprustrelny, ale rychle obnovitelny.

    M.


    středa 5. února 2014 10:38
    Moderátor
  • Windows 8 jsem chtěl kvůli Assigned Access, který používáme na jiném podporovaném zařízení a celkem se nám to osvědčilo. A hlavně je to opravdu neprůstřelné, protože je to k tomu určené přímo Microsoftem.

    Zkusím fórum Opery. Spíš mě ale šlo o obecné zkušenosti s podobným řešením, k Opeře nijak netíhnu. Určitě nebudu sám, kdo provozuje kiosek s Windows 7, proto hledám různé tipy a postřehy...

    Linux jsme zkoušeli (i přímo kioskové distribuce, které by byly nejspíš nejlepší volba), ale problém stejný jako u Windows 8 — bez podpory od výrobce a dotykové ovládání (ovladače pro něj) se nepodařilo rozchodit. Je to nějaké proprietární řešení, které už ani Lenovo nepodporuje a dál nevyvíjí (slepá větev).

    Nejde mi ani tak o to, že by studenti systém přivedli do nějakého nekonzistentní stavu, ale spíš o jejich srandičky typu zavřený prohlížeč, změna pozadí plochy na nějaké „nekorektní“ obrázky apod. Různé věci jde různě omezit (třeba tu změnu pozadí plochy nebo spouštění jiných aplikací), ale největší problém je ten, že prohlížeč bylo možné zavřít/minimalizovat, což by nemělo jít.



    středa 5. února 2014 12:06
  • Nahradit Operou standartní explorer?

    Tím by mělo dojít k tomu že se nejde vrátit do exploreru, protože tam není.


    JCH

    středa 5. února 2014 16:02
  • Myslíš při výběru prohlížeče nebo jak se ta EU blbost jmenuje nahradit IE Operou? Čím si pomůžu? Tak jako tak půjde přece minimalizovat nebo zavřít.

    Nebo myslíš nahradit Explorer (= Průzkumník) Operou? To se mi nějak nezdá.

    středa 5. února 2014 17:09
  • Ne. Myslím tím při spuštění Windows nahradit spuštění průzkumníka (nahradit shell).

    Tím se vůbec nespustí průzkumník, do kterého může někdo utéct.

    Nebude k dispozici plocha, s kterou by uměli pracovat.


    JCH

    středa 5. února 2014 17:40
  • A máš tip na nějaký konkrétní shell, kterým nahradit ten výchozí?

    Kolega přišel ještě s čtyřmi nápady:

    1. Skript, který by každých pár sekund kontroloval, jestli je spuštěný proces Opery a jestli je Opera ve full screen režimu.

    2. Upravit výchozí dotykovou klávesnici ve Windows 7 tak, aby obsahovala pouze alfanumerické znaky a Enter + backspace (aby šlo psát webové adresy, nic víc), ale neobsahovala by tlačítka jako Windows, Shift, CTRL, ALT apod.

    3. Úplně zablokovat minimalizaci/zavření prohlížeče, prostě ho tam nějak napevno přibít.

    4. Zablokovat všechny klávesové zkratky a gesta.

    Ale nevím, co všechno je realizovatelné a co má prakticky opravdu smysl.

    //EDIT: Zkoušel jsem nahradit explorer.exe přímo Operou, ale to mi samo o sobě moc nepomůže, protože když ji zavřou, tak je tam černá plocha. Neudělají sice žádnou neplechu, ale úplně odstaví kiosek z provozu, což je problém. Takže bych se stejně nevyhnul nějakému skriptu, který bude pravidelně kontrolovat spuštění procesu Opery a případně ji zapínat...

    • Upravený Lukas Beran čtvrtek 6. února 2014 9:08 doplněno
    čtvrtek 6. února 2014 8:18
  • 5. Pohrat si s drivery pro dotykove ovladani (od "jednoduche" upravy INF, pres shims (ACT), reverse engineering az po vyvoj vlastniho driveru pro W8.)

    6. Vyhodnotit, co muze nabidnout vyvojove prostredi Opera

    http://dev.opera.com/extension-docs/tut_getting_started.html

    7. Ziskat prostredky pro akvizici kompatibilnich zarizeni a instalace kiosku s W 8.1 (prostredky pro infrastrukturu, nebo treba grant na "interakci" ).

    M

    čtvrtek 6. února 2014 9:27
    Moderátor
  • 7. Nepřipadá v úvahu. Peníze na nový kiosek by byly, to není problém. Problém je v tom, že mi další kiosek nepotřebujeme, jen máme nevyužité dotykové AIO, které chceme nějak smysluplně využít.

    6. Asi také nepřichází v úvahu, protože já programátor nejsem a lidé, kteří programovat umí, na to nemají čas. Muselo by se najít něco hotového...

    5. Stejný důvod jako pro bod 6.

    čtvrtek 6. února 2014 10:26
  • A máš tip na nějaký konkrétní shell, kterým nahradit ten výchozí?

    Ano. Můj tip spočívá v tom že nahradíš shell (explorer.exe) tím internetovým prohlížečem.

    Pak zavaděč zavede Operu a nic jiného.

    .

    Před pár lety se něco podobného ještě na news řešilo pro Windows XP.


    JCH

    čtvrtek 6. února 2014 12:22
  • To jsem zkoušel, viz můj edit, ale problém je právě v tom, že pokud se studentům podaří nějakým způsobem prohlížeč minimalizovat, je kiosek nepoužitelný. A jak jsem se díval, tak testování minimalizace aplikace v PS je dost problém. Mám skript, který sleduje proces Opery a pokud neexistuje, Operu spustí. Na minimalizaci (nebo obecně nemaximalizaci) už jsem ale rozumné řešení nenašel.
    čtvrtek 6. února 2014 12:55
  • Ach jo. Nahradit shell za jiny NEZNAMENA, ze prejmenujeju nejake.exe na explorer.exe. 

    http://support.microsoft.com/kb/228309/en-us = centralni shell pro vsechny

    http://www.pctools.com/guides/registry/detail/849/ = politika pro konkretniho uzivatele.

    Teoreticky muze byt shellem napriklad NOTEPAD. objevi se prazdna plocha na ni notepad. Po jeho zavreni se svypnou cele Windows.

    Nicmene: umim si predstavit shell = nejaky browser, ktery najizdi do fullscreenu pro uzivatele, ktery se hlasi po startu automaticky. Delal jsem lockdown stanice s W7 tak, aby neslo CMD, otevirat soubory, spoustet nevyjmenovane aplikace, v IE si spouste jen povolene WEBy, pripadne proxy apod. Staci si chvilis GPO hrat.

    Pokud neni PC v domene, lze mit jinou politiku pro Admina a jinou pro users grupu = pripojenim klavesnice a prehlasenim na jineho uzivatele (tusim SHIFT pri startu Windows) lze PC normalne spravovat.

    pátek 7. února 2014 8:19
  • Ten shell jsem změnil v těch registrech podle návodu, jen jsem se asi špatně vyjádřil, když jsem to popisoval. Ale to právě není řešením, protože nefunkční kiosek není správný výsledek.

    Napsal jsem si ale PowerShell skript, který mi kontroluje focus a existenci procesu Opery.

    do
    {
    $proc = Get-Process opera -ErrorAction SilentlyContinue
    if ($proc) { } else 
        {
        Start-Process "C:\Program Files\Opera\opera.exe" -ArgumentList '/KioskMode /kioskresetstation /nocontextmenu /nodownload /noexit /nokeys /nomail /nomaillinks /nomenu /noprint /nosave /kioskbuttons'
        }
    Start-Sleep -s 5
    $opera = @(Get-Process opera)[0].MainWindowHandle
    $window = Get-ForegroundWindow
    if ($opera -ne $window) { Stop-Process -processname opera }
    } while (1)

    Pokud nemá Opera focus, zabije její proces a znovu ho nastartuje. To je dostatečně dobré řešení, má však jeden podstatný háček. Parametr kioskresetstation u Opery resetuje Operu na domovskou stránku po 30 vteřinách neaktivity, to je žádané. Jenže před resetem se objeví okno, že Opera bude za X vteřin resetována. No a tohle okno mi samozřejmě sebere focus, na to zareaguje můj skript a Operu zabije a znovu nastartuje. A to je špatně. Na fórum Opery jsem položil dotaz, jestli je možné to okno nějak zrušit (já jsem to nenašel). Tady bych se chtěl zeptat na řešení z druhé strany, tedy jestli je možné nějak detekovat tohle okno a vynechat ho z té kontroly, něco jako @(Get-Process opera)[0].ChildWindowHandle (což neexistuje) nebo tak něco. Napadá někoho, jak to vyřešit?

    pátek 7. února 2014 10:31
  • A v cem je spatny KIOSK rezim IE? (parametr -k viz http://support.microsoft.com/kb/154780)

    pátek 7. února 2014 13:17
  • Ve všem. To je jen nějaká parodie na kioskový režim, protože to nic neumí. Je to vlastně jen režim zobrazení přes celou obrazovku. Neumí to reset historie procházení po nějaké době nečinnosti, neumí to reset na domovskou stránku po nějaké době nečinnosti, neumí to zabránit v zavření prohlížeče, neumí to zablokovat stahování, neumí to zablokovat mailto odkazy, neumí to zablokovat tisk, neumí to zablokovat ukládání čehokoliv (včetně třeba stránky celé), neumí to zablokovat gesta a klávesové zkratky (ALT+F4, ALT+TAB apod.), neumí to prostě vůbec nic.
    pátek 7. února 2014 13:23
  • ad ukladani - proc resit ukladani prohlizece a neresit OS jako celek? Pres GPO muzu zakazat zobrazovat vsechny jednotky vcetne C: = sice mi vyskoci ukladaci dialog, ale neni kam ulozit. 

    Stejne tak se to hodi k tomu, abych pres open dialog nemohl k dalsim app na disku.

    ad alt-tab - bude li prohlizec shellem, nemusim resit. Navic lze pouzit napriklad  http://sharpkeys.codeplex.com/ na premapovani libovolne kombinace klaves na neco jineho.

    Ja IE neobhajuju, jen ze jsem resil neco podobneho pro kamerovy system, ktery pouzival IE a obsluha nemela mit nic jineho. Myslim, ze se mi to pomoci lokalnich GPO docela povedlo. Zatim si nikdo nestezoval. Rozdil oproti kiosku je jen v tom, ze nestartuju IE ve full screenu a neni shell. 

    Tady jsou nejake namety, ze kterych jsem vychazel http://technet.microsoft.com/cs-CZ/library/gg176675.aspx  http://www.microsoft.com/en-us/download/details.aspx?id=19990


    pátek 7. února 2014 14:55
  • Já vím, že takhle by to šlo. Na tento způsob máme vypsané i téma na bakalářku, aby to celé bylo v nějaké aplikaci, kde by si admin jen navolil, co všechno se má nebo nemá povolit.

    Ta Opera v podstatě vše umí sama o sobě. Problém je pouze v tom, že studenti přišli na nějaké způsob, jak ji shodit, což jsem vyřešil tím skriptem. Tam mám ale ten jeden problém se zobrazeným oknem, na které reaguje ten skript. Což je to jediné, co mi zbývá vyřešit, pak už by to mělo být hotové. A myslím, že řešení by nemusel být až takový problém, jen já prostě nevím, jak to v tom PS obejít.

    pátek 7. února 2014 15:16
  • Kdyz ja nemam PS zatim v lasce. Ja bych to delal e VBS :)

    http://msdn.microsoft.com/en-us/library/wzcddbek(v=vs.84).aspx

    pátek 7. února 2014 15:34
  • 1. Ten posledni krok trva zpravidla nejdele ze vseho...

    2. Treba Microsoft prijde opet s necim jinym co PS nahradi...

    3. Chce to prijit s necim co je dostatecne exoticke a co studenti nepouzivaji (security by obscurity)...

    M.

    pátek 7. února 2014 15:57
    Moderátor
  • Já zase neumím ve VBS vůbec nic. Nikdy jsem v tom nic nedělal... :(
    pátek 7. února 2014 15:59
  • Neni to obtizne. Zpravidla se vyjde z nejake inspirace ze Script Center. Nevyhodu vbs vidim spis v debuggovani. Resi se to vlozenim vypisu promennych, nekdo jeste povinnou specifikaci promennych.

    >Nikdy jsem v tom nic nedělal... :(

    Mozna delal, ale jste si to neuvedomil, napriklad slmgr, sconfig (u core WS2012R2),... :-)

    M.



    neděle 9. února 2014 16:01
    Moderátor
  • Nakonec jsem to jednoduše obešel a nic netestuji.

    do
    {
    $proc = Get-Process opera -ErrorAction SilentlyContinue
    if ($proc) { } else 
        {
        Start-Process "C:\Program Files\Opera\opera.exe" -ArgumentList '/KioskMode /kioskresetstation /nocontextmenu /nodownload /noexit /nokeys /nomail /nomaillinks /nomenu /noprint /nosave /kioskbuttons'
        }
    Start-Sleep -s 3
    $opera = @(Get-Process opera)[0].MainWindowHandle
    $window = Get-ForegroundWindow
    if ($opera -ne $window) 
        { 
        Start-Sleep -s 11
        $window = Get-ForegroundWindow
        if ($opera -ne $window) { Stop-Process -processname opera }
        }
    } while (1)

    úterý 11. února 2014 7:49