2009-03-13 10 views
5

Sulla maggior parte dei computer più recenti è possibile arrestare la modalità più difficile premendo il pulsante di accensione per un paio di secondi. Ma voglio impedirlo completamente.Come negare l'arresto quando si preme il pulsante di accensione per un po '?

È possibile evitare alcuni eventi software come gli stati di sospensione, sospensione, ibernazione e "Premere il pulsante di accensione" nel pannello di controllo di Windows; è inoltre possibile utilizzare alcune programmazioni Win32 e WDI per rilevare e gestire/negare tali eventi, ma non sembra che interrompa lo spegnimento meccanico quando si tiene premuto il pulsante per un periodo di tempo prolungato.

Immagino che il pulsante di alimentazione sia cablato alla rete elettrica e non aspetti mai il sistema operativo quando lo tieni premuto per qualche secondo? O c'è un modo per prevenire anche questo caso per codice?

Sono uno sviluppatore .NET.

Whooaaa ...! Molti di voi sostenevano davvero di non fare questo: "Non si possiede il mio computer o il mio sistema operativo" sviluppando SkyNet ", ecc. :) Questa applicazione è una soluzione chiusa altamente personalizzata e per alcuni clienti. È un'applicazione kiosk su hardware personalizzato in esecuzione su Windows XP incorporato e utilizza uno schermo tattile. È non pubblico.

+0

La maggior parte dei PC kiosked si trova in un "kiosk", in modo che gli utenti non autorizzati non possano accedere ai pulsanti di accensione/ripristino, alle unità esterne e alle porte esterne. Se il tuo PC è esposto, giocherellare con il pulsante di accensione è solo la metà della soluzione. – CJM

+1

Se si tratta di chioschi in cui si controlla l'hardware, è sufficiente disabilitare questa funzione nel BIOS. La maggior parte dei computer avrà una "Gestione energetica" o "Modalità spegnimento ACPI" o qualcosa di simile all'interno del BIOS che è possibile modificare. –

risposta

4

Questo non è possibile in quanto si verifica questo Spegnere al di sotto del livello del sistema operativo, quindi è come tirare la spina per quanto riguarda il sistema operativo è interessato!

5

Si tratta in effetti di uno spegnimento meccanico, quindi sarà difficile da aggirare.

Se è davvero importante, è possibile scollegare il pulsante di accensione e accendere/spegnere il computer con wake-on-lan resp. spegnimento remoto.

2

Credo che l'unico modo per poterlo cambiare cambiando manualmente le impostazioni nel BIOS. Questo probabilmente non può essere catturato da un linguaggio di programmazione. Se davvero ne hai bisogno, puoi semplicemente scollegare il cavo dalla scheda madre che va al pulsante di accensione.

10

Vorrei speranza che non è possibile farlo. Ho incontrato situazioni diverse volte in cui non potevo riavviare il computer in nessun altro modo. In questi casi, vuoi veramente forzare un utente laptop a scollegare l'alimentazione e rimuovere la batteria mentre è in esecuzione?

Avendo dato questo avviso, potresti scrivere software per situazioni piuttosto diverse in cui ha più senso. Potresti fornire maggiori dettagli sulla motivazione per questo?

Se un utente è in grado di tenere premuto il pulsante di accensione (a indicare che è realmente, desidera davvero spegnere la macchina) non è in grado di rimuovere fisicamente l'alimentazione?

EDIT: In risposta al commento da magsto:

Se tutti i soggetti coinvolti in realtà, vuole davvero questo - dopo aver spiegato loro che se le cose vanno male e hanno bisogno di hard-reset del computer, avranno a andare a un modo ancora più diretto di spegnimento, che sospetto sia più probabile che danneggi l'hardware rispetto al metodo "hold down power" ... parla al produttore del dispositivo.Sembra che probabilmente stai lavorando con un dispositivo specifico, quindi potrebbero essere in grado di modificare qualcosa nel BIOS per te, anche se non è un'opzione pubblicamente disponibile.

Dato che questa è quasi sempre una pessima idea, non mi sorprende che non ci sia un supporto semplice, ma se chiedi al produttore ci può essere un modo nascosto di fare quello che vuoi. Ti incoraggerei comunque a convincere lo di tutti gli a riflettere su tutte le potenziali conseguenze.

+2

TBH, la loro motivazione non ha importanza. Questa funzione è l'ultima opzione necessaria quando le cose vanno male. Suggerirei che se veramente fosse un problema, l'accesso fisico alla macchina è il vero problema. [OH MIO DIO! Sto litigando con The Skeet! Ricevo un badge?] – CJM

+0

L'applicazione è un prodotto personalizzato, fa parte di una "applicazione kiosk" su un computer touch screen e Windows XP Embedded e sia noi che il cliente vogliamo farlo. – Magnus

+0

@ CJM: Non penso che siamo davvero in disaccordo :) Se l'utente ha accesso fisico, è probabile che possa comunque spegnere la cosa tirando il cavo/la batteria. –

4

Per quanto ne so, hai ragione nel dire che il sistema operativo non è nemmeno coinvolto in questo tipo di "spegnimento". Tenere premuto per un po 'il pulsante di accensione è solo un segnale all'hardware per spegnere immediatamente l'alimentazione di tutti i dispositivi all'interno del computer. Gli eventi normali di spegnimento/sospensione/ibernazione possono ovviamente essere catturati e gestiti tramite WinAPI, come si afferma.

1

Non si può e non si deve scherzare con questa funzione.

posso immaginare due scenari in cui questo potrebbe essere un problema:

  1. non volete che utenti non autorizzati spegnimento della macchina con qualsiasi mezzo - nel qual caso fisicamente fissare la macchina così come lockdown il sistema operativo.
  2. Non si desidera che la macchina si spenga durante un processo critico. In tal caso, è possibile creare resilienza nell'app in modo che eventi quali spegnimento forzato o interruzione dell'alimentazione ambientale non compromettano l'app.
+0

"Non vuoi che utenti non autorizzati chiudano la macchina con qualsiasi mezzo". Dillo al mio Toddler che ama premere i pulsanti – MichaelD

+0

@MichaelD - Ti rimando al riferimento "fisicamente sicuro della macchina", ma in alternativa, forse dovresti proteggere fisicamente i bambini. Stavo pensando alle giacche dritte ... – CJM

2

Ti stai avvicinando allo sviluppo di SkyNet?

Ci scusiamo per questa domanda, ma come molti hanno suggerito, anch'io credo che questo non dovrebbe essere reso possibile, se è possibile progettarlo.

3

Scollegare il cavo di alimentazione dalla scheda madre e collegarlo in modo permanente. :)

+0

Sì, tutte le modifiche hardware potrebbero fare il trucco, ma sono interessato a come fare con il software ... – Magnus

0

Vorrei suggerire in qualche modo di togliere il pulsante di alimentazione fuori dalla portata dell'utente. Forse rimuovendolo completamente. E assicurandoti che il computer si accenda automaticamente quando viene alimentato o qualcosa del genere (non è sicuro, ma potrebbe essere possibile nel bios?).

In ogni caso, per una cosa sempre su chiosco, questo ha un senso. Almeno lo fa per molto altro hardware. Dove l'unico modo per spegnerlo è tagliare la corrente.

2

OK, quindi forse è pazzo disabilitare il pulsante di accensione. Ma abbiamo un'applicazione software che utilizza un database e utilizza un costoso set di licenze. Questo grande fornitore tedesco utilizza un gestore di licenze che sposta fisicamente le licenze attorno all'unità. La deframmentazione, alcune applicazioni anti-virus e il taglio del potere corrompono le licenze. Abbiamo un UPS per consentire spegnimenti eleganti se viene interrotta l'alimentazione della macchina. Ora sembra che qualche ragazzo o operatore di servizio abbia spento il PC con il pulsante di accensione che corrompe le licenze. Questi dispositivi si trovano in una posizione remota in tutto il mondo e l'addestramento dell'operatore potrebbe non sempre impedirlo. Sembra che le opzioni della soluzione siano 1) Lavora con il fornitore per disabilitare il pulsante di accensione, 2) tenta di intercettarlo e avvisare l'utente della possibile distruzione, oppure 3) ridisegnare il display utilizzando un sistema operativo e un'applicazione immune da questa rimozione dell'alimentazione.

4

Utilizzare un interruttore a impulsi.Non sono sicuro se questo è il termine giusto ma li ho visti nei cataloghi. È un interruttore di azione a scatto che "fa" solo per una frazione di secondo mentre premi e non mentre lo rilasci. Fermarsi nel mezzo non funziona. Una volta raggiunta la soglia, il meccanismo inizia a muoversi per chiudere il contatto e non si ferma finché il contatto non si apre nuovamente. Questo ti permetterà di iniziare normalmente e fermarti normalmente ma non c'è modo di tenere il circuito chiuso per 4 secondi. (senza aprire la custodia, ovviamente)

1

Ha senso quando gli utenti di computer sono bambini e il pulsante di accensione diventa piuttosto un gioco piuttosto che un'azione di emergenza. Il modo migliore per un bambino di apprendere a spegnere la macchina tramite software è disabilitare l'arresto meccanico.

Problemi correlati