Page 1 sur 1
Bloquer les cliques souris
Publié : ven. 14/janv./2005 10:24
par gansta93
Bonjour,
J'avais posté un sujet pour savoir comment désactiver la souris sous Windows 2000. Le Soldat Inconnu m'avait passé un code pour bloquer la souris, mais pas les cliques.
Quelqu'un aurait-il une idée?
Publié : ven. 14/janv./2005 22:53
par Droopy
ShowCursor_(1) ; montre le curseur
ShowCursor_(0) ; cache le curseur !!
je pense que ça empêche l'utilisateur de cliquer sur quoi que ce soit
Publié : ven. 14/janv./2005 23:29
par Le Soldat Inconnu
tiens, je pense avoir trouvé la solution
Rundll32.exe user,exitwindows Quitte Windows
Rundll32.exe user,wnetconnectdialog Active la boîte de dialogue "se connecter à un lecteur réseau"
Rundll32.exe user,wnetdisconnectdialog Active la boîte de dialogue "se déconnecter à un lecteur réseau"
Rundll32.exe user,disableoemlayer Arrête le PC
Rundll32.exe user,repaintscreen Actualise l'affichage (comme F5)
Rundll32.exe user,setcursorpos Place le curseur en haut à gauche
Rundll32.exe Diskcopy,DiskCopyRunDll Active la boîte de dialogue "Copie d'une disquette"
Rundll32.exe rnaui.dll,RnaWizard /1 Active la boîte de dialogue "connexion au réseau"
Rundll32.exe shell,shellexecute Ouvre l'explorateur
Rundll32.exe shell32,OpenAs_RunDLL Active la boîte de dialogue "ouvrir avec"
Rundll32.exe shell32.dll,SHFormatDrive Active la boîte de dialogue "formater la disquette"
Rundll32.exe shell32.dll,ShellAboutA Affiche des informations sur la version de Windows
Rundll32.exe shell32,SHExitWindowsEx 0 Redémarre Windows 98
Rundll32.exe shell32,SHExitWindowsEx 1 Quitte Windows 98
Rundll32.exe shell32,SHExitWindowsEx 2 Démarre Windows 98
Rundll32.exe shell32,SHExitWindowsEx -1 Redémarre l'explorateur de Windows 98
Rundll32.exe shell32.dll,Control_RunDLL Ouvre le panneau de configuration
Rundll32 keyboard,disable Désactive le clavier
Rundll32 mouse,disable Désactive la souris
Rundll32 krn 1386.exe,exitkernel Quitte Windows sans demander d'enregistrer les documents actifs
regarde l'avant dernière ligne. visiblement, tu lances rundll32.exe avec en param mouse,disable et c'est bon
Publié : sam. 15/janv./2005 14:02
par gansta93
oui, mais le problème est que ça ne marche pas sous Win 2K...
J'avais oublié de préciser.

Publié : mar. 18/janv./2005 23:24
par Droopy
il y a un mec sur le forum anglais qui a créé un genre de pluggin pour purebasic
pluggin qui appelle la dll de AutoIt
celle ci intégrant une possibilité de verouillage de clavier & souris sous 2K/XP
Publié : mer. 19/janv./2005 8:59
par gansta93
Euh... je vais rechercher ça... mais c quoi cette DLL ? AutoIt ?
Publié : mer. 19/janv./2005 23:23
par Droopy
http://www.hiddensoft.com/AutoIt/
Soft de Script type Basic avec plein de super fonctions ( concurent de Kixstart ? )
une version Dll est fournie utilisable en Pure
Publié : jeu. 03/févr./2005 17:32
par gansta93
J'ai même la lib Pure, mais... rien pour bloquer les cliques souris à moins que j'ai encore mal cherché.
Publié : jeu. 03/févr./2005 19:16
par Le Soldat Inconnu
tiens, essaye ça :
je crée une fenêtre transparente toujours au premier plan et recouvrant tout l'écran pour empêcher les clic avec la souris
ALT + F4 pour quitter
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Mettre une fenêtre en plein écran (la barre des tâches n'est plus visible)
If OpenWindow(1 ,0, 0, 300, 300, #PB_Window_Invisible, "Plein écran") ; fenêtre mère invisible
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_BorderLess, "Plein écran", WindowID(1)) ; Fenêtre fille de la fenêtre invisible, ça me permet de masquer la fenêtre dans la barre des tâches
ShowWindow_(WindowID(), #SW_MAXIMIZE) ; Met la fenêtre en plein écran
SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ; Pour mettre la fenêtre toujours au premier plan
If OpenLibrary(0, "user32.dll") ; On rend la fenêtre la plus transparente possible
SetWindowLong_(WindowID(), #GWL_EXSTYLE, GetWindowLong_(WindowID(), #GWL_EXSTYLE) | $00080000)
CallFunction(0, "SetLayeredWindowAttributes", WindowID(), 0, 1, 2)
CloseLibrary(0)
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
EndIf
EndIf
Publié : jeu. 03/févr./2005 21:25
par gansta93
Effectivement, j'ai bien mes cliques souris bloqués mais... pas possible de faire autre chose en même temps... dsl d'être aussi exigant...
Publié : jeu. 03/févr./2005 21:47
par Droopy
Issu de la Doc AutoIt v3
Code : Tout sélectionner
BlockInput
--------------------------------------------------------------------------------
Disable/enable the mouse and keyboard.
BlockInput ( flag )
Parameters
flag 1 = Disable user input
0 = Enable user input
Return Value
None.
Remarks
If BlockInput is enabled, the Alt keypress cannot be sent!
The table below shows how BlockInput behavior depends on Windows' version; however, pressing Ctrl+Alt+Del on any platform will re-enable input due to a Windows API feature.
Operating System "BlockInput" Results
Windows 95 No effect.
Windows 98/Me User input is blocked but AutoIt is also unable to simulate input.
Windows NT 4 (Without ServicePack 6) No effect.
Windows NT 4 (With ServicePack 6) User input is blocked and AutoIt can simulate most input.
Windows 2000/XP User input is blocked and AutoIt can simulate most input.
Note that functions such as WinMove() will still work on Windows 98/Me when BlockInput is enabled.
Related
Send
Example
If @OSVersion <> "WIN_98" And @OSVersion <> "WIN_ME" Then
BlockInput(1)
EndIf
Run("notepad")
WinWaitActive("Untitled - Notepad")
Send("{F5}") ;pastes time and date
BlockInput(0)
Publié : jeu. 03/févr./2005 22:04
par gansta93
Oui mais je voudrais pouvoir utiliser le clavier aussi et ne bloquer la souris et pouvoir faire ce que je veux comme d'habitude avec mon clavier.
Publié : jeu. 03/févr./2005 23:28
par Le Soldat Inconnu
ok, donc faut rendre le focus à un autre programme
un simple ALT + TAB le permet avec mon exemple.
On peut éventuellement le programmer pour rendre le focus à la dernière fenêtre utilisée
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Mettre une fenêtre en plein écran (la barre des tâches n'est plus visible)
WinID = GetForegroundWindow_() ; On récupère la fenêtre en cours d'utilisation
If OpenWindow(1 ,0, 0, 300, 300, #PB_Window_Invisible, "Plein écran") ; fenêtre mère invisible
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_BorderLess, "Plein écran", WindowID(1)) ; Fenêtre fille de la fenêtre invisible, ça me permet de masquer la fenêtre dans la barre des tâches
ShowWindow_(WindowID(), #SW_MAXIMIZE) ; Met la fenêtre en plein écran
SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ; Pour mettre la fenêtre toujours au premier plan
If OpenLibrary(0, "user32.dll") ; On rend la fenêtre la plus transparente possible
SetWindowLong_(WindowID(), #GWL_EXSTYLE, GetWindowLong_(WindowID(), #GWL_EXSTYLE) | $00080000)
CallFunction(0, "SetLayeredWindowAttributes", WindowID(), 0, 1, 2)
CloseLibrary(0)
EndIf
; On remet la fen utilisé active
SetForegroundWindow_(WinID)
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
EndIf
EndIf
Par contre si on clique, mon prog reprend le focus et il faut faire ALT +TAB
Publié : ven. 04/févr./2005 9:54
par gansta93
Merci pour le code... cool.
Vais faire des testes sur plusieurs personnes.
Merci

.