|
Re: Bloquer QUE le clavier |
|
Stagiaire WDF ![](http://old.wdforge.org/uploads/rank3e84154a75422.gif)
Inscrit: 16/02/2006 22:21
Post(s): 43
|
Décidémment...
Ca ne fonctionne pas... Lorsque je le lance à la main il me dit que la configuration de l'application n'est pas correcte et ne se lance pas.
Et lorsque j'utilise LanceAppliAssociée("C:\anticlavier.exe") j'ai un retour de fonction égal à 0 (erreur : "Le document n'a pas été ouvert car l'accès au fichier a été refusé par le système.")
Contribution le : 14/06/2007 09:10
|
|
|
Re: Bloquer QUE le clavier |
|
Stagiaire WDF ![](http://old.wdforge.org/uploads/rank3e84154a75422.gif)
Inscrit: 16/02/2006 22:21
Post(s): 43
|
Tout d'abord merci beaucoup de te pencher sur mon problème, c'est super sympa !
Ton deuxième lien fonctionne, l'appli tourne comme je le souhaite.
Le soucis, c'est que je n'arrive pas à récupérer le handle de la fenêtre, et donc je n'arrive pas à le fermer (donc mon clavier est toujours bloqué, obligé de fermer la fenêtre à la main).
Il semblerait que ça vienne du fait que c'est une fenêtre de type DOS :-\
EDIT : voilà mon code de blocage :
LanceAppli(ComplèteRep(fRepEnCours()) + "anticlavier.exe",exeIconise) Lhandle = SysFenHandle(ComplèteRep(fRepEnCours()) + "anticlavier.exe") SysFenAffiche(Lhandle,sfaCache)
et voilà mon code de déblocage :
EnvoieTouche("%{F4}",Lhandle)
sauf que la variable gloable Lhandle reste à 0 après avoir essayé plusieurs noms possibles pour la fenêtre (à savoir le chemin affiché, le nom du progr, le nom du progr sans l'extension etc.etc.)
Contribution le : 14/06/2007 16:55
Edité par DealM sur 14/6/2007 17:25:43 Edité par DealM sur 14/6/2007 17:26:28 Edité par DealM sur 14/6/2007 17:27:21
|
|
|
Re: Bloquer QUE le clavier |
|
Utilisateur WDF ![](http://old.wdforge.org/uploads/rank3e8415a3a23ef.gif)
Inscrit: 20/06/2006 14:56
Post(s): 57
|
Il faut lui donner le nom de le fenêtre (pour le connaître va dans le gestionnaire des tâches de Windows). Sinon grâce au PID que tu peux récupérer avec lanceAppli tu peux utiliser l'utilitaire de Microsoft http://www.microsoft.com/technet/sysinternals/utilities/Handle.mspx
Contribution le : 14/06/2007 21:30
|
|
|
Re: Bloquer QUE le clavier |
|
Utilisateur WDF ![](http://old.wdforge.org/uploads/rank3e8415a3a23ef.gif)
Inscrit: 13/11/2005 02:24
Post(s): 74
|
voici le code qui marche ! LanceAppli(ComplèteRep(fRepEnCours()) + "anticlavierv2.exe",exeActif) Multitâche(-100) // il faut attendre un peu lol ! Lhandle est entier = SysFenHandle(ComplèteRep(fRepEnCours()) + "anticlavierv2.exe") SendMessage(Lhandle,16,0,0) // wm_close je travaille sur une version totalement windev mais j'aurais besoin de vos compétences ce code ne marche pas au niveau de translatemessage qq peut m'aider ?
MSG est une structure
hwnd est un entier //Type C : HWND
Message est un entier sans signe //Type C : UINT
wParam est un entier //Type C : WPARAM
lParam est un entier //Type C : LPARAM
time est un entier //Type C : DWORD
pt est un entier //Type C : POINT
FIN
monmessage est un MSG
TANTQUE (API("USER32","GetMessageA",&monmessage,Null,0,0))
API("USER32","TranslateMessage",&monmessage)
API("USER32","DispatchMessageA",&monmessage)
FIN
Contribution le : 14/06/2007 21:36
Edité par floman321 sur 14/6/2007 21:59:57
|
|
|
Re: Bloquer QUE le clavier |
|
Stagiaire WDF ![](http://old.wdforge.org/uploads/rank3e84154a75422.gif)
Inscrit: 16/02/2006 22:21
Post(s): 43
|
Ton code marche (encore une fois lol) !! Je n'attendais pas les 100 milisecondes, peut-être que ça vient de là (sûrement même). Encore merci alors. Par contre c'est bizarre, au bout de plusieurs blocages/déblocages, je perds la touche démarrer, les autres fonctionnent, mais plus elle lol. Sinon au sujet de ton "translatemessage", désolé mais tu dépasse mes compétences de loin en tapant dans les API, je ne saurais pas t'aider ![](http://old.wdforge.org/uploads/icon_frown.gif)
Contribution le : 15/06/2007 09:20
|
|
|
Re: Bloquer QUE le clavier |
|
Utilisateur WDF ![](http://old.wdforge.org/uploads/rank3e8415a3a23ef.gif)
Inscrit: 13/11/2005 02:24
Post(s): 74
|
essaye ce code dans windev
// dans declaration de variable global
EXTERN "keyconst.wl"
EXTERN "winconst.wl"
CONSTANT
WH_KEYBOARD_LL = 13 // Récupération des messages clavier
FIN
// dans un clic bouton
gnHandleHook est un entier
LOCAL
// Récupération de l'instance en cours
nInstance est un entier = Instance()
// Définition du hook
gnHandleHook = API("user32","SetWindowsHookExA",WH_KEYBOARD_LL,&Procédure_Hook,nInstance,0)
et creer une procedure globale
PROCEDURE Procédure_Hook(ncode, wParam, lParam)
RENVOYER -1
source http://www.forum.moteurprog.com/windev/forum-msg-22368-1.htm
Contribution le : 15/06/2007 09:55
|
|
|
Re: Bloquer QUE le clavier |
|
Utilisateur WDF ![](http://old.wdforge.org/uploads/rank3e8415a3a23ef.gif)
Inscrit: 13/11/2005 02:24
Post(s): 74
|
j'ai trouvé ! gnHandleHook étant une variable global de la fenetre code de declaration de la fenetre
gnHandleHook est un entier
Code clic commence clocage clavier
gnHandleHook = API("user32","SetWindowsHookExA",13,&Procédure_Hook, Instance() ,0)
Creer une procedure globale
PROCEDURE Procédure_Hook(ncode, wParam, lParam)
RENVOYER -1
code du clic termine blocage clavier
SI PAS API("user32","UnhookWindowsHookEx",gnHandleHook) ALORS
Erreur("erreur ")
FIN
Pour bloquer la souris il suffit de remplacer 13 par 14
Contribution le : 15/06/2007 13:19
Edité par floman321 sur 15/6/2007 13:51:10
|
|
|
Re: [Résolu] Bloquer QUE le clavier |
|
Stagiaire WDF ![](http://old.wdforge.org/uploads/rank3e84154a75422.gif)
Inscrit: 16/02/2006 22:21
Post(s): 43
|
Félicitations !!
Ca fonctionne bien mieux qu'avec le programme à part, et ça fait moins de "bordel" !
Vraiment merci énormément pour tout ce temps passé sur mon problème, c'est vraiment super gentil !!!
Merci encore !
Contribution le : 15/06/2007 14:24
|
|
|
Re: [Résolu] Bloquer QUE le clavier |
|
Animateur WDF ![](http://old.wdforge.org/uploads/rank3f7d78368d45f.gif)
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour,
Ce post va être transcrit dans la faq
Contribution le : 15/06/2007 15:38
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|