Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247

    [VB6]bloccare computer

    Salve a tutti, la mia è una domanda un pò strana ma spero che possiate rispodermi.

    Ho implementato un programma in VB6 che esegue il monitoraggio di un sistema e che non deve essere spento per nessun motivo. Quello che vorrei chiedere è questo:
    esiste un modo per "inibire" l'accesso a windows qualora qualcuno accedesse al computer in cui gira il programma stesso?

    "Inibire" significa che fino a quando gira il software di monitoraggio, non posso essere aperti altri applicativi per esempio! Ovvio che quando uno lo spegne tutto tornerebbe nella norma. La cosa naturalmente non è frutto di una mia pazzia, ma di quella del cliente che non vuole malfunzionamenti imprevisti.....

    Quello che vorrei sapere è sostanzialmente quale strana può essere seguita e fino a che punto ci si può spingere.

    Grazie in anticipo per qualsiasi suggerimento.



    Ciao

    Andrea
    Andrea

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Da prove effettuate risulta molto efficace un post-it con su scritto "CHI TOCCA MUORE"......

    A parte gli scherzi, non credo che si possa fare...
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    prima di tutto grazie per la risposta!

    Il fatto è che aziende importanti che sviluppano software di tale tipo(monitoraggio impianti industriali) forzano l'utente ad interagire solo con il loro software: nel senso che a video compare un loro pannello che non può essere abbassato se non con una password opportuna. E' anche vero che in questa situazione la tastiera non è utilizzabile, nel senso che non viene messa a disposizione ed il solo mezzo di interazione è il mouse appunto.

    Forse è qui la chiave del blocco del sistema ai non addetti ai lavori?


    Grazie per l'attenzione.

    P.S. se a qualcuno viene in mente qualche altra idea..........
    Andrea

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Ok, allora ho quello che fa per te.

    Una funzione che mette la finestra in primo piano e non consente che venga messa da parte....

    aspetta che te la posto.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Ecco:

    codice:
    'Dichiarazioni
    Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Public Const SWP_FRAMECHANGED = &H20
    Public Const HWND_TOP = 0
    Public Const HWND_TOPMOST = -1
    Public Const HWND_NOTOPMOST = -2
    Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
    Public Const SWP_HIDEWINDOW = &H80
    Public Const SWP_NOACTIVATE = &H10
    Public Const SWP_NOCOPYBITS = &H100
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOOWNERZORDER = &H200
    Public Const SWP_NOREDRAW = &H8
    Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
    Public Const SWP_NOSIZE = &H1
    Public Const SWP_NOZORDER = &H4
    Public Const SWP_SHOWWINDOW = &H40
    
    
    Sub FormOnTop(frm As Form, VF As Boolean)
        ' Questa procedura permette di impostare sempre in primo piano un form rispetto alle altre finestre
        ' frm ---> form su cui agisce la procedura
        ' vf  ---> se true il form è visualizzato in primo piano
        
     Select Case VF
        Case True
          SetWindowPos frm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOSIZE Or SWP_NOMOVE
        Case False
          SetWindowPos frm.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOSIZE Or SWP_NOMOVE
    
      End Select
      
      DoEvents
      
    End Sub
    Chimando la sub con true, viene messa in primo piano, altrimenti no.

    Se metti la chiamata in un timer allora ogni n millisecondi viene messa in primo piano
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  6. #6
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    Grazie Mille!

    Mi sembra una buona soluzione!


    Ciao e Grazie ancora!
    Andrea

  7. #7
    Ciao..secondo me non è proprio una soluzione adeguata: come fai a bloccare la tastiera con il codice postato precedentemente? Dovresti come minimo intercettare la pressione delle combinazioni di tasti ALT + F4 e CTRL + ALT + CANC....
    Se tu volessi bloccare sia mouse che tastiera esiste una semplicissima funzione API; per far si che altri programmi non vadano in esecuzione oltre al tuo dovresti controllare anche i programmi in esecuzione..
    Cmq, se il codice precedente ti va bene, meglio così, il mio era solo un intervento per correttezza di informazione..

    ciao

  8. #8
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    Il codice precedente mi và bene se non trovavo qualcosa di più mirato ed efficace.

    Quindi per favore spiegami pure quali api utilizzeresti per attuare questo blocco forzato.


    Grazie anticipatamente.

    Ciao
    Andrea

  9. #9
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Con quel codice che ti ho postato io ho fatto un form a tutto schermo che si mette in primo piano e che non può essere chiuso nemmeno con CTRL+ALT+CANC.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  10. #10
    Non so di preciso l'uso di cui necessiti la tua applicazione, cmq certe volte è stato richiesto proprio il blocco delle periferiche in quanto tutti gli Input provenivano per esempio da altri dispositivi associati..e per svolgere tutto ciò usavo la funzione API BlockInput..
    Cmq rileggendo tutta la discussione, forse non è questa la soluzione che l'utente cercava..

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.