« 1 (2)


Re: Bloquer QUE le clavier
Stagiaire WDF
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
Créer un fichier PDF de la contribution Imprimer


Re: Bloquer QUE le clavier
Utilisateur WDF
Inscrit:
13/11/2005 02:24
Post(s): 74
désolé mais visual studio m'a joué un sale tour
j'ai recompiler le projet avec dec cpp
et ça a l'air de marché sous win 2003 et xp

http://www.toofiles.com/fr/oip/documents/exe/anticlavierv2.html

Contribution le : 14/06/2007 10:00
Créer un fichier PDF de la contribution Imprimer


Re: Bloquer QUE le clavier
Stagiaire WDF
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
Créer un fichier PDF de la contribution Imprimer


Re: Bloquer QUE le clavier
Utilisateur WDF
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
Créer un fichier PDF de la contribution Imprimer


Re: Bloquer QUE le clavier
Utilisateur WDF
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
Créer un fichier PDF de la contribution Imprimer


Re: Bloquer QUE le clavier
Stagiaire WDF
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

Contribution le : 15/06/2007 09:20
Créer un fichier PDF de la contribution Imprimer


Re: Bloquer QUE le clavier
Utilisateur WDF
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
Créer un fichier PDF de la contribution Imprimer


Re: Bloquer QUE le clavier
Utilisateur WDF
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
Créer un fichier PDF de la contribution Imprimer


Re: [Résolu] Bloquer QUE le clavier
Stagiaire WDF
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
Créer un fichier PDF de la contribution Imprimer


Re: [Résolu] Bloquer QUE le clavier
Animateur WDF
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
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 (2)




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2