Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

NICEKEYS HOOK SENDKEYS AUTOMATION CLAVIER (AVEC TOUCHE WINDOWS) ET SOURIS


Information sur la source

Catégorie :Souris, Clavier, etc. Classé sous : sendkey, automation, clavier, souris, mouseevent Niveau : Expert Date de création : 01/10/2006 Date de mise à jour : 23/06/2007 16:59:12 Vu / téléchargé: 15 756 / 2 172

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (58)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
APPLICATION COMPLETE avec fichiers d'aide(html) inclus

Nice Keys est un dérivé du code exemple que j'ai posté à l'adresse ci-dessous et des idées reprises depuis MemoKey ou Wonderkeys :
http://www.vbfrance.com/code.aspx?ID=37947
Il permet d'automatiser le clavier y compris la touche Windows et la souris.
Programmation de macros, boucles, de shellExecute, tests, presse papier... de calculs complexe comme :
sqr(x^3)+cos(V(i)) ...

Il n'utilise aucune dll, n'est pas reconnu en spyware. C'est juste du Hook (+ GetAsyncKeyState), du mouse_event et du sendKeys.
Son but n'est pas d'espionner mais de faire de l'automation clavier et souris (ce n'est pas du côté obscur de la force !!!)

Merci à tous ceux qui contribuent à la mise en commun des sources !
Enjoy,
YmTrainz - 2006/10 - rev 23/06/2007
 

Conclusion

GESTION de la souris (enregistrement et simulation) opérationnelle depuis la version 3
Gestion de la touche Windows à partir de la version 3.3
Ajouté des faux ToolTipText pour insérer les fonctions en cliquant dans la liste (v3.4)

ATTENTION : sortir "proprement" du logiciel à l'aide du cmdClose et menu_Quitter. Ne pas utiliser le stop de vb6 : risque de plantage de l'IDLE (à cause du hook).
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

02 octobre 2006 23:03:07 :
Petite mise à jour mineure et orthographique
04 octobre 2006 17:23:10 :
v 2.8.56 Tenu compte des observations de VBGenesis Corrigé bug sur cmbBanq_click Ajouté un bouton Cancel dans "enregistrer les changements" Empêché le double envoi de séquences de touches... Je laisse ma class KeyboardHook, elle m'aide à m'y retrouver...
04 octobre 2006 17:24:12 :
v 2.8.56 Tenu compte des observations de VBGenesis Corrigé bug sur cmbBanq_click Ajouté un bouton Cancel dans "enregistrer les changements" Empêché le double envoi de séquences de touches... Je laisse ma class KeyboardHook, elle m'aide à m'y retrouver...
08 octobre 2006 11:45:57 :
NiceKeys - VERSION HISTORY - YM_trainz v2.8 build 57 correction de l'erreur sur l'arrêt d'urgence correction pour ajout nouvelle banque / touche : remise à zéro des paramètres, banque/touche vide v2.8 build 56 04/10/06 : SHARED correctif orthographique lançage/ lancement , bien sûr ! revus bugs dans cmd_rec (clicEnab devait etre True pour actualiser les chkKbd !) ajouter bouton Cancel dans "enregistrer les changements" Inhiber l'envoi multiple de séquence (intéressant si boucle) -> UnhookKeyboard pendant le traitement (avec call frmMain.ScruterKbd()) ------------------------------------------------------------
31 octobre 2006 16:58:00 :
NiceKeys - VERSION HISTORY - YM_trainz Depuis la version 3 : gestion de l'automation de la souris : v3.0.build 64 - 31/10/06 - SHARED Bug Bix (bouton Rec après arrêt Urgent) Mise à jour de l'aide et de licence.txt v3.0.build 63 - 30/10/06 Ajouté Variables de Boucle Internes correspondant à la fonction Boucle Ajouté V(0) à v(32) en User variables Ajouté les listes correspondantes dans frmVar en listes Bugs Fix v3.0.build 62 - 29/10/06 Affiné les fonctions Souris Ajouté des Tips dans fenêtre Fonction Ajouté fonction boucle() Beep(Frequence,Durée ms) msgBox(message) défini par l'utilisateur mouseWindowCaption (renvoie le nom de la fenêtre survolée par la souris) v3.0 build 59-61 - 10/06 - AUTOMATION SOURIS mise en place des fonctions pour l'automation souris MouseLC - MouseRC MouseMD MouseDLC MouseDRC MouseDMC et MouseXY revu le code de test des fonctions : plus de possibilités avec "...";... etc. ajouté fenetre Fonctions frmFunc pour les visualiser animation de l'icone en mode Rec Revu Interface Graphique ajouté DoubleRight Clic sur Icone pour afficher Fenetre Paramètre ------------------------------------------------------------ Toutes les V3. incluent l'automation SOURIS ------------------------------------------------------------ v2.8 build 58 - 11/10/06 revu fonction pause : appel avec fonction Sleep Lib "kernel32" qui ne consomme pas de ressources processeur animation Icone si Rec Keys (en prévision de l'automation souris) v2.8 build 57 08/10/06 correction de l'erreur sur l'arrêt d'urgence correction pour ajout nouvelle banque / touche : remise à zéro des paramètres, banque/touche vide
31 octobre 2006 22:54:02 :
v3.1.build 67 - 31/10/06 - SHARED affiné l'affichage des couleurs dans rtbSend (Touches OUT) v3.1.build 66 - 31/10/06 - SHARED Revu la sortie du programme (quitter -> libérer la mémoire dans Gestionnaire de tâches) v3.1.build 65 - 31/10/06 - SHARED Ajouté l'aide à la programmation : mise en couleur du code au fur et à mesure de la frappe 1 little bug Fix
02 novembre 2006 00:21:03 :
v3.2.build 68 - 01/11/06 - SHARED - accepte les nombres décimaux (sauf i j et k qui sont des entiers) - procédure de calcul qui accepte les fonctions sin cos ^ sqr (attention aux nombres avec E : 1.2E-3, pas encore Ok) - ajouté fenêtre d'état des boucles (frmProgress) - supprimé la référence sReg.ocx (plus utilisée, merci à LD40 !) et merci à VbGenesis qui suit toujours l'histoire !
02 novembre 2006 13:02:56 :
v3.2.build 69 - 02/11/06 - SHARED - corrigé petit bug sur la pause - corrigé l'affichage de l'état des boucles (frmProgress.visible = false si clic Mouse sinon, on peut cliquer dessus!) - ajouté une touche démo avec agrandissement de n'importe quelle fenêtre windows pour travailler dedans en plein écran
02 novembre 2006 21:39:38 :
v3.2.build 70 - 02/11/06 - SHARED - corrigé la gestion de frmProgress, plus douce et moins présence (affichage des boucles après 2 secondes) - 1 bug Fix - v3.2.build 69 - 02/11/06 - corrigé petit bug sur la pause - corrigé l'affichage de l'état des boucles (frmProgress.visible = false si clic Mouse sion, on peut cliquer dessus!) - ajouté une touche démo avec agrandissement de n'importe quelle fenêtre windows pour travailler dedans en plein écran
03 novembre 2006 08:50:49 :
v3.2.build 70 - 02/11/06 - SHARED - corrigé la gestion de frmProgress, plus douce et moins présence (affichage des boucles après 2 secondes) - 1 bug Fix v3.2.build 69 - 02/11/06 - corrigé petit bug sur la pause - corrigé l'affichage de l'état des boucles (frmProgress.visible = false si clic Mouse sion, on peut cliquer dessus!) - ajouté une touche démo avec agrandissement de n'importe quelle fenêtre windows pour travailler dedans en plein écran
09 novembre 2006 22:13:50 :
v3.2.build 71 - 09/11/06 - SHARED - corrigé la gestion de frmProgress : perte de focus fixed par frm.top et Left - Les boucles i j et k acceptent les nombres décimaux - Test des doublons de noms ou de combinaisons de touches - Demande de l'ancien mot de passe pour entrer le nouveau mot de passe - Possibilité de renommer directement les touches/ banques sans passer par cmd 'Renommer'
14 novembre 2006 23:42:52 :
v3.2.build 72 - corrigé bug sur boucles i, j et k (si on avait : for i = n to n soit départ = arrivée -> Ok maintenant) - scintillement éliminé sur la saisie des codes (rtbSend) suite à la mise en couleur (avec .visible = false - changeCouleur puis .visible = true avec setFocus) - Mots de Passe : Ajouté une double saisie du mot de passe (confirmer) et Commande Bouton pour supprimer tous les mots de passe si on ne se rappelle plus de rien (pour les amnésiques !)
15 novembre 2006 00:00:12 :
v3.2.build 72 - 14/11/06 corrigé bug sur boucles i, j et k (si on avait : for i = n to n soit départ = arrivée -> Ok maintenant) scintillement éliminé sur la saisie des codes (rtbSend) suite à la mise en couleur (avec .visible = false - changeCouleur puis .visible = true avec setFocus) Mots de Passe : Ajouté une double saisie du mot de passe (confirmer) Ajouté Commande Bouton pour supprimer tous les mots de passe si on ne se rappelle plus
18 novembre 2006 22:57:32 :
v3.2.build 73 - 18/11/06 corrigé 2 bugs : sur affichage progressBar et RtbSend revu la gestion du format des nombres avec la fonction format(format,expression) -> format("##.#",3.74) renvoie 03.7
18 novembre 2006 23:00:32 :
v3.2.build 73 - 18/11/06 corrigé 2 bugs : sur affichage progressBar et RtbSend revu la gestion du format des nombres avec la fonction format(format,expression) -> format("##.#",3.74) renvoie 03.7
18 novembre 2006 23:31:49 :
v3.2.build 74 - 18/11/06 corrigé bug affichage des boîtes rtbSend / boucles en fonction de optionType : simple/executer/boucles Désolé pour ces MAJ multiples, mais parfois les bugs se révèlent juste après le post !
29 novembre 2006 23:28:53 :
v3.4.build 78 - 29/11/06 Insertion de code à partir de la liste des fonctions (frmFunc) en version faux ToolTip avec une liste à cliquer A terminer : corrigé l'aide avec touche Win, pause et open # Gestion Import/Export des Banques liste de raccourcis d'origine windows v3.3.build 75 à 77 24/11/06 - 26/11/06 corrigé bug si boucle interne avec paramètres date;"..." -> ¤boucle(0,1,5,1,"Bla";date;"~")¤ -> ok (problème du defaut date(0) dans cherchePar (fix) Corrigé Bug avec fonctions sans parenthèse Correction orthographe Ajouté tuto1 et tuto2 en flash (link www) -> fait avec Wink Meilleure Gestion de la pause : on peut faire ¤boucle(0,1,5,1,"ABC";pause;"~") (pause gérée à la fin, dans chrSendKeys, au même titre que {Win...} Nouvelle fonction possible qui en découle {pause 1000} = ¤pause 1000¤ Pour meilleure uniformisation et possibilité : changé la syntaxe de open # --> ¤open #1 "W" "C:\dossier\MonFichier.txt" -> A R et W sont entre guillemets donc paramétrables Corrigé la relance du programme après erreur de décodage. (si erreur dans le code User, NiceKeys repart correctement) Colorisation des codes dans rtbBoucle (à la manière de rtbSend) Ajouté [REC] dans boucles -> le REC se fait dans une autre fenêtre ------------------------------------------------------------------------------- TOUTES les v3.3 et > intègrent la gestion de la touche WINDOWS -------------------------------------------------------------------------------
29 novembre 2006 23:29:44 :
v3.4.build 78 - 29/11/06 Insertion de code à partir de la liste des fonctions (frmFunc) en version faux ToolTip avec une liste à cliquer A terminer : corrigé l'aide avec touche Win, pause et open # Gestion Import/Export des Banques liste de raccourcis d'origine windows v3.3.build 75 à 77 24/11/06 - 26/11/06 corrigé bug si boucle interne avec paramètres date;"..." -> ¤boucle(0,1,5,1,"Bla";date;"~")¤ -> ok (problème du defaut date(0) dans cherchePar (fix) Corrigé Bug avec fonctions sans parenthèse Correction orthographe Ajouté tuto1 et tuto2 en flash (link www) -> fait avec Wink Meilleure Gestion de la pause : on peut faire ¤boucle(0,1,5,1,"ABC";pause;"~") (pause gérée à la fin, dans chrSendKeys, au même titre que {Win...} Nouvelle fonction possible qui en découle {pause 1000} = ¤pause 1000¤ Pour meilleure uniformisation et possibilité : changé la syntaxe de open # --> ¤open #1 "W" "C:\dossier\MonFichier.txt" -> A R et W sont entre guillemets donc paramétrables Corrigé la relance du programme après erreur de décodage. (si erreur dans le code User, NiceKeys repart correctement) Colorisation des codes dans rtbBoucle (à la manière de rtbSend) Ajouté [REC] dans boucles -> le REC se fait dans une autre fenêtre ------------------------------------------------------------------------------- TOUTES les v3.3 et > intègrent la gestion de la touche WINDOWS -------------------------------------------------------------------------------
01 décembre 2006 23:52:59 :
v3.4.build 80 - 01/12/06 - corrigé l'aide ToolTip (meilleur affichage) et en prévision d'une aide complète à la saisie des codes
05 décembre 2006 22:58:59 :
v3.4.build 81 - 05/12/06 - Amélioration de "ToolTip" avec champs Function ou ordinaire
06 décembre 2006 17:09:05 :
v3.4.82 : avec la 'form' frmToolT, c'est mieux !
04 janvier 2007 11:39:59 :
v3.5.build 82 à 84 - 04/01/07 Tenu compte des remarques de vbGenesis : - formMouseMove avec Api (pour frmMain) - Corrigé bug sur fauxTooltipText + calcul du placement horizontal - supprimé toolTip si mode Automation est 'exexcuter' - affichage complet des champs ordinaires (toolTip) - memorisé le verrouillage des banque (LockBank dans base de registre) - supprimé bug sur icône à la fermeture de la fenêtre parametres...
12 janvier 2007 22:43:21 :
v3.5.build 85 - 12/01/07 - Bloqué la taille des fenêtres - Supprimé le Beep au démarrage / changement de banque - Ajouté la possibilité de copier la fonction à partir de la fenêtre fonction (frmFunc) -> cliquer -> va dans le presse papier - Ajouté Bouton fermer dans fenêtre boucle et bouton voir boucle dans fenêtre principale (frmMain)
29 janvier 2007 22:50:03 :
v3.5.build 86 - 29/01/07 - corrigé petite erreur dans l'aide (fonction.htm) - supprimé l'affichage dans la barre de tâche de frm.progress : état des boucles - Fermeture de frmLockBank (changement de banque) avec le bouton "ok"
17 mai 2007 15:44:29 :
v3.5.build 87 - 17/05/07 bugs fixed : 1 - Si lock sur banque et que l'on supprime la banque, erreur au chargement (variable lockBank dans frmLockBank) -> fixed; 2 - corrigé le verrouilage effectif au démarrage; 3 - corrigé l'affichage des toolTip (perte de l'info);
23 juin 2007 16:56:07 :
v3.5.build 89 - 23/06/07 - revu la touche menu qui ne fonctionnait pas {HELP} pour menu contextuel (passe par keybd_event() au lieu de sendKeys() - v3.5.build 88 - 17/06/07 Ajouté une temporisation paramétrable pour différer le démarrage de NiceKeys (pour laisser le temps à windows de se charger avant d'appliquer l'icone dans la barre de tâche)
23 juin 2007 16:59:12 :
Oups, j'ai remis la V3.5.88 au lieu de la 89... C'est rectifié.

Commentaires et avis

signaler à un administrateur
Commentaire de BruNews le 01/10/2006 12:01:58 administrateur CS

Pour souris, API SendInput() (ou mouse_event() en plus ancien).

signaler à un administrateur
Commentaire de ym_trainz le 01/10/2006 18:34:51

Merci BruNews,
J'essaierai API SendInput() ou mouse_event()!
N'hésite pas à commenter NiceKeys, je suis preneur !
Je sais qu'il y a parfois des lourdeurs de codes, mais je le reprendrai pour l'optimiser.
De toutes façons, ça marche déjà pas mal !

signaler à un administrateur
Commentaire de VBGenesis le 02/10/2006 19:32:34

Super! C'est assez rare de trouver une appli complète avec un fichier d'aide et tout! Seul petit défaut ce n'est peut être pas assez commenté, mais sinon 9/10. (Et merci a BruNews j'avais chercher cette info sur le site sans trouver, mais j'avais peut être mal cherché)
@+

signaler à un administrateur
Commentaire de ym_trainz le 02/10/2006 22:49:10

Salut VBGenesis !
Merci pour ton commentaire.
N'hésite pas me donner tes impressions après avoir testé ce logicel !

ATTENTION : Ne pas oublier de sortir proprement avec les bouton Fermer et menu quitter de NiceKeys.
NE PAS UTILISER le stop de vb6, risque de plantage de l'IDLE (à cause du Hook)
Pour les commentaires dans le code, j'ai essayé de faire de mon mieux mais n'hésite pas à me demander des précisions...
@+
Ym_Trainz

signaler à un administrateur
Commentaire de VBGenesis le 03/10/2006 19:49:38

Salut Ym_Trainz!
Je suis en train de tester ta source, je me suis rendu compte qu'en fait elle est VRAIMENT complete ^^ (les fonctions sont multiples, même des mots de passe...)! Sinon j'ai trouvé quelques erreurs mineurs par exemple:

  -lorsque tu appuie sur le bouton fermer de frmMain, une boite de dialogue demande si on veux sauver les changements. Tu devrais ajouter un bouton annuler au cas où l'on ai appuyé par erreur,

  -le module de classe KeyboardHook.cls est inutile car il est vide,

  -dans le load de frmMain, pour la msgbox: on dit LANCEMENT multiples, pas lançage ;),

  -dans frmMain, tu devrais empecher le combo de la liste de touches (cmbBanq(1)) de contenir plusieur fois le même nom

Voila c'est quasiment rien sinon ton prog ne marche pas pour envoyer du texte : j'ai mis ctrl+N pour lancer le BlocNote et ca marche mais j'ai essayer ce mettre ctrl+V pour envoyer "VBGenesis" et ca ne marche pas :( je vais essayer de trouver d'où ca vient.

@+

VBGenesis

signaler à un administrateur
Commentaire de ym_trainz le 04/10/2006 08:47:45

Salut VBGenesis
Je te remercie chaleureusement pour tes précieux conseils ! Cela fait plaisir d'être commenté de façon si constructive !
Je vais prochainement tenir compte de tes judicieuses remarques.

Pour ce qui est de :  "ton prog ne marche pas pour envoyer du texte" :
Lorsque que tu cliques sur la fenêtre BlocNote, c'est la banque qui y correspond qui est activée, donc elle s'appelle Edit. (C'est indiqué dans l'aide).
2 soluss :
Soit tu restes en mode Test (quand le cmd_Arreter_te_test_ clignote) et les commandes de la banque en cours sont opérationnelles partout,
Soit tu verrouilles sur la banque en passant par le menu_icone (clic gauche, verrouiller sur ta banque)
Si tu laisses en automatique, les séquences OUT de sendkeys se font en fonction de la dernière fenêtre cliquée.

Références dans l'aide : onglet "principe"

Merci encore et @+
Ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 04/10/2006 15:44:20

Excuse! J'avais sauté cet onglet lorsque j'ai lu l'aide! Ne t'inquiete pas maintenant ca marche, sauf 2-3 petits bug que j'ai trouvé:

-il vaudrait mieux empecher la modification de la table ASCII (quand tu clique droit pour le menu), tu devrais mettre une nouvelle fenetre avec la table ASCII dans un tableau

-lorsque tu créé une nouvelle touche, il faut mettre à jour le texte des touches OUT (rtbSend) car il reste sur l'ancienne touche et quand on veut changer il demande si on veut sauver

-mettre un bouton OK sur frmLockBanq

Voila encore désolé de ne pas avoir vu cet onglet mais cette fois sa marche! Ce qui est bien avec ton prog c'est qu'a chaque fois qu'on l'utilise on découvre une nouvelle fonction!

VBGenesis (J'ai écrit cette signature grace à Alt+B!!!)

signaler à un administrateur
Commentaire de ym_trainz le 04/10/2006 17:34:44

Salut VBGenesis !
Content de voir que tout va bien à bord!
J'ai posté une mise à jour (v2.8.56) tenant compte de tes remarques.
Je continuerai pour celles d'aujourd'hui puisqu'elles sont toujours pertinentes. (le bouton OK sur frmLockBanq est en fait la croix ; comme ça, j'ai un unload et ça libère un peu la mémoire)

La prochaine étape est d'intégrer la souris et de la simuler, de même que des scripts dans certains gros logiciels de référence.

Merci Encore !
@+
ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 04/10/2006 18:07:02

Heu... ya 2 mises à jour identiques, c'est normal?

signaler à un administrateur
Commentaire de ym_trainz le 04/10/2006 18:43:12

Bahh, quand j'ai uploadé, j'ai eu un message d'erreur, donc j'ai re-UL ! Ca arrive... Désolé !
@+
P.S. : Ca m'a l'air intéressant ton projet de contrôle de moteur...

signaler à un administrateur
Commentaire de VBGenesis le 04/10/2006 19:28:08

Merci! Je suis en train de le tester

signaler à un administrateur
Commentaire de ym_trainz le 08/10/2006 11:50:45

La version 2.8.57 est en ligne.
Correction qui tient compte des remarques de VBGenesis que je remercie chaleureusement :
Revu initialisation Nouvelle Touche / Nouvelle Banque
MsgBox explicite dans cmdDel (supprimer Touche / Banque
Correction sur Bug Arrêt d'Urgence

signaler à un administrateur
Commentaire de chemical787 le 31/10/2006 00:44:00

Je m'immisce dans votre (intéressante) conversation ;-)

Des nouvelles concernant l'équivalent de la sendkey pour la souris?
j'ai bien lu la remarque de BruNews, mais ça ne me semble pas forcément très intuitif...

signaler à un administrateur
Commentaire de VBGenesis le 31/10/2006 11:08:39

Salut, essaye cette source de prochristos : http://www.vbfrance.com/codes/SIMULATION-CLAVIER_26994.aspx. Elle traite de SendInput

signaler à un administrateur
Commentaire de ym_trainz le 31/10/2006 16:35:28

Ben... trop tard,
Je viens de terminer la version 3.0.64 qui simule la souris !!!
Essaie donc. Je mets la MAJ en ligne tout de suite !

Merci à toi.

signaler à un administrateur
Commentaire de ym_trainz le 31/10/2006 17:14:13

Pour répondre à chemical787,
J'utilise dans ma source (v3.0.64) mouse_event et ça me donne entière satisfaction, sour win2K ou Xp.
Regarde dans le module modMouseManip.bas : ci-dessous, le temps que l'update soit en ligne. (vire les Attribute VB_Name...)

Enjoy ! ym_trainz
-----------------------------------

Attribute VB_Name = "modMouseManip"
Public Type POINTAPI
    X As Long
    Y As Long
End Type


Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Const MOUSEEVENTF_WHEEL = &H80
Const MOUSEEVENTF_XDOWN = &H100
Const MOUSEEVENTF_XUP = &H200
Const WHEEL_DELTA = 120
Const XBUTTON1 = &H1
Const XBUTTON2 = &H2

Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
'************************************
'Appel possible (en shared, common ou public)
'dim Pp as POINTAPI
'Call GetCursorPos(Pp) -> x = Pp.x et y = Pp.y
' et :
'call setCursorPos(x as long,y as long)
'Call MouseCommand(Parametre as byte)
'*************************************

Public Sub MouseCommand(Parametre As Byte)
    Dim t As Long
    'parametre :
    '0 Left Click
    '1 Right Click
    '2 Middle Click
    '10 Double Left Click
    '11 Double Right Click
    '12 Double Middle Click
    '100 Hold down Left Bouton
    '101 Hold down Right Bouton
    '102 Hold down Middle Bouton
    '110 Release Left Bouton
    '111 Release Right Bouton
    '112 Release Middle Bouton
    'Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
    Select Case Parametre
        'Simple click ***********************
        Case 0 'Left Click
            Call Cliquer(MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP)
        Case 1 'Right Click
            Call Cliquer(MOUSEEVENTF_RIGHTDOWN, MOUSEEVENTF_RIGHTUP)
        Case 2 'Middle Click
            Call Cliquer(MOUSEEVENTF_MIDDLEDOWN, MOUSEEVENTF_MIDDLEUP)
        'Double click ***********************
        Case 10 'Double Left Click
            Call DoubleCliquer(MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP)
        Case 11 'Double Right Click
            Call DoubleCliquer(MOUSEEVENTF_RIGHTDOWN, MOUSEEVENTF_RIGHTUP)
        Case 12 'Double Middle Click
            Call DoubleCliquer(MOUSEEVENTF_MIDDLEDOWN, MOUSEEVENTF_MIDDLEUP)
        'Hold down ***************************
        Case 100 'Left
            Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
        Case 101 'Right
            Call mouse_event(MOUSEEVENTF_RIGHTDOWN + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
        Case 102 'Middle
            Call mouse_event(MOUSEEVENTF_MIDDLEDOWN + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
        'Release (up) ***************************
        Case 110 'Left
            Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
        Case 111 'Right
            Call mouse_event(MOUSEEVENTF_RIGHTUP + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
        Case 112 'Middle
            Call mouse_event(MOUSEEVENTF_MIDDLEUP + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
    End Select
    Exit Sub
err1:
    Exit Sub
End Sub
Private Sub Cliquer(MouseDown As Integer, MouseUp As Integer)
    Call mouse_event(MouseDown + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
    Call Attendre(5)
    Call mouse_event(MouseUp + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
    Call Attendre(5)
End Sub
Private Sub DoubleCliquer(MouseDown As Integer, MouseUp As Integer)
    Call Cliquer(MouseDown, MouseUp)
    Call Attendre(60)
    Call Cliquer(MouseDown, MouseUp)
    Call Attendre(5)
End Sub

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'procédure pause => met le programme en attente pendant x secondes
'pas de consommation processeur
Public Sub pause(ByRef MilliSecs As Long)
    Call Sleep(MilliSecs)
    DoEvents
End Sub
Public Sub Attendre_old(timeMilliSec As Long)
    Dim t As Long
    t = Timer * 1000
    While (Timer * 1000) - t < timeMilliSec
        DoEvents
    Wend
End Sub
Public Sub Attendre(timeMilliSec As Long)
    Dim t As Long
    t = Timer * 1000
    While (Timer * 1000) - t < timeMilliSec
        Call Sleep(5) 'pour limiter les conso processeur tout en gardant les timers en action !
        DoEvents
    Wend
End Sub

signaler à un administrateur
Commentaire de chemical787 le 31/10/2006 22:03:20

Merci pour votre réactivité.
Il me reste plus qu'a étudier ça de plus près!

signaler à un administrateur
Commentaire de ym_trainz le 31/10/2006 23:02:25

You're Welcome chemical787
Si tu as besoin, n'hésite pas.
Ym_Trainz

signaler à un administrateur
Commentaire de ld40 le 01/11/2006 09:09:44

il me manque sReg.ocx pour ouvrir le projet. c'est grave docteur?

signaler à un administrateur
Commentaire de ym_trainz le 01/11/2006 11:45:04

Non, du tout ld40!
C'est une erreur de ma part, je ne me sers plus de cette ocx.
Remove sans problème:
projet/component/sReg.ocx

Je note ta remarque pour la MAJ.
Merci pour l'info!
Ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 01/11/2006 17:37:15

Ca a l'air super comme Maj (en tout cas le screen est prometteur!!) je regarde ca illico!

signaler à un administrateur
Commentaire de ym_trainz le 02/11/2006 00:26:54

Ok vBgenesis !

Merci pour ton soutien !

Cette v3.2.68 intègre donc la gestion souris tant attendue !
Tu peux faire des calculs décimaux, racine carée, sinus...
Dispo : des variables tableaux, des boucles internes :
¤boucle(id,start,end,step, ...instruction...) et j'en passe.

J'ai colorisé le rtbSend pour une meilleur lisibilité du code. (un petit bug d'affichage de couleur, je te laisse trouver, mais rien de méchant...)

Voilà ! J'attends tes commentaires avec impatience !
Je pense qu'on est pas loin de la version finale, non ?
@+
Ym_trainz

signaler à un administrateur
Commentaire de ym_trainz le 03/11/2006 09:02:36

HELP !
J'aimerais poster la MAJ v3.2.70 mais...
Rien à faire, pourtant j'attends quelques heures pour laisser le temps...
(A chaque fois j'ai un message: une erreur dans la page... un log va être envoyé... retourner au sommaire, retouner à la page précédente... cordialement...)
bref pas de MAJ pour l'instant, je vais voir dans le forum si quelqu'un sait pourquoi. (taille MAJ 725 Ko pour le zip + 136 Ko pour le jpg)

signaler à un administrateur
Commentaire de ym_trainz le 03/11/2006 09:03:59

Ben, il suffisait que je poste ce commentaire pour voir mon voeux exhaussé !
LOL !
Les mystères de winDaube...

signaler à un administrateur
Commentaire de VBGenesis le 03/11/2006 10:12:16

Salut!

Ca y est, j'ai testé, c'est vraiment génial, surtout la souris!!
Je te propose juste quelques amélioration:
-Les banques et les touches peuvent avoir plusieurs fois les memes noms identiques, à toi de voir si sa peut causer des bug dans le prog (tu connais le source mieux que moi! ;-p  )

-La, c'est un petit bug dans lequel je suis tombé plusieurs fois: les combos sont des controles qui peuvent etre directement rennommés, sans passer par le bouton "rennommer" de ton prog, et la ca bug car il ne change pas le nom. A toi de voir s'il faut bloquer le combo (tu as une propriété pour ca, c'est très simple) ou bien gérer le rennommage directement dans le combo(un petit peu plus dure)...

-Pour la fenetre des mots de passe, certains programmes de piratage permettent de voir le texte caché sous des étoiles (ca fait très poetique, ca.. ;-p  ) il faut donc enlever le texte du milieu. Il faudrait aussi demander l'ancien mot de passe pour pouvoir le changer, sinon il suffit de changer le mot de passe pour le connaitre (ex: je veux changer mon mot de passe de "Abcd" en "Efgh". Il faut que le prog demande le mot de passe "Abcd" pour accepter de le changer, bref si j'ai mal expliqué redemmande moi ;-p  )

-Qu'est-ce qu'il y avait d'autre... Ha oui! ;-p Le combo affichant le nom de la fenetre qui doit etre cliquée pour activer une banque ne se met pas à jour lorsque on clique sur une banque (le combo reste vide)

Voila c'est tout com d'hab rien de gravissime juste de quoi faire une petite MAJ si tu as le temps!

@+

VBGenesis

(PS: petite modif de derniere minute (avant de refermer l'envellope ;-) ta macro pour éteindre l'ordi n'est peut etre pas efficace sur d'autres résolutions (à voir, je n'ai pas essayé) tu as plus simple: il y a un exe dans windows\systeme32 pour ca: chutdown.exe. Voila l'adresse: "%windir%\system32\shutdown.exe -s -t 00"  )

signaler à un administrateur
Commentaire de ym_trainz le 03/11/2006 16:12:12

Comme d'hab, c'est encore avec "plein de mercis" que je poste ceci :
Merci donc à vbGenesis, on va faire un truc sympa !
Alors...
Je reprends tes commentaires vbGenesis :
-Les banques et les touches peuvent avoir plusieurs fois les mêmes noms, à toi de voir si sa peut causer des bug dans le prog :

->Effectivement, cela peut être embêtant, surtout en ce qui concerne les combinaisons de touches. Je regarde ça.

-les combos sont des controles qui peuvent etre directement rennommés, sans passer par le bouton "rennommer" de ton prog, et la ca bug car il ne change pas le nom.... :

-> Ok, je vais gérer le combo.text_change, même si c'est un peu galère... J'aime bien les défis ! (je ne sais pas comment laisser le combo_click Enabled alors que le combo est .enabled = false ... En résumé je ne sais pas verrouiller le .text sans verrouller le click... (je suis preneur si tu connais)

-Pour la fenetre des mots de passe,...il faut donc enlever le texte du milieu. Il faudrait aussi demander l'ancien mot de passe pour pouvoir le changer, sinon il suffit de changer le mot de passe pour le connaitre...

-> Ok, je prends! (ah..., le piratage !)

-Le combo affichant le nom de la fenetre qui doit etre cliquée pour activer une banque ne se met pas à jour lorsque on clique sur une banque...

-> En fait ce combo qui s'appelle cmbWindow est mis à jour uniquement en mode test (après le click sur cmdTestKbd "Tester cette Banque). C'est vrai que dans une version antérieure il y avait cet oubli... Normalement la V3.2.70 est ok pour ça.

Sur ce,
Encore merci à toi ! J'espère que cette source te servira.
Je pense mettre en ligne prochaînement 2, 3 petites idées. N'hésite pas à jetter un oeil !
ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 03/11/2006 21:30:47

Salut!

Pour bloquer le combo, tu as la propriété style, elle a trois valeurs possibles:
-dropdown combo: la valeur par défaut, une liste déroulant dont on peut modifier le texte
-simple combo: il n'y a pas de liste, en fait c'est juste un textbox
-dropdown list: c'est ce que l'on cherche, on peut faire défiler la liste mais impossible de renommer quoique ce soit.

Voila, tu as ce qu'il te faut pour faire ton choix! Je vais quand meme réfléchire pour l'autre solution, ca serait plutot pratique.

VBGenesis
(ps: moi aussi j'adore les défis!)

signaler à un administrateur
Commentaire de ym_trainz le 08/11/2006 23:29:58

VBGenesis :
Je suis sur la version 3.2.71 et je pense que toutes tes remarques sont "opérationnelles", notamment le Rename Direct qui était un peu galère à faire. Pour les mots de passe j'ai également trouvé, c'est d'ailleurs dans une petite source que j'ai postée.
Il y avait un bon bug sur frmProgress qui passait devant et  ça devenait impossible de cliquer par l'automation.

Je finis de tester et je mets en ligne en fin de semaine.
Connais-tu la taille maxi d'une source car je n'en suis sûrement pas loin.. ?

DEFI RELEVE !

signaler à un administrateur
Commentaire de VBGenesis le 11/11/2006 11:52:39

Super!

Par contre ta source de mots de passe à été désactivée... ???? Elle était si dangereuse que ca? ;-) Bref tu devrais peut-etre contacter un admin, mais je sais pas s'il serait très content...

Sinon met vite ta derniere build!

VBGenesis

signaler à un administrateur
Commentaire de ym_trainz le 11/11/2006 17:49:00

Salut VBGenesis !

C'est la dernière Build ! 3.2.71
Normalement, on est sur la version finale, sauf si tu y vois un bug ou une amélioration possible !

Merci encore pour ton soutien !
ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 12/11/2006 11:40:43

Désolé j'ai écris ce post un peu vite!

signaler à un administrateur
Commentaire de VBGenesis le 20/11/2006 18:49:38

Salut!

Tiens j'ai encore une idée bien compliquée ;-) : faire une touche du genre F1 qui permet de renvoyer sur l'aide à la fonction surlignée lorsque on écrit le "code" des touches (un peu du genre msdn dans vb). Par contre il faut faire une sorte de moteur de recherche pour l'aide pour trouver les fonctions... Amuse-toi bien si sa te tente !! ;-)
Sinon je n'ai pas compris pourquoi tu as mis la fenetre principale sans bordures et que tu les refais toi-meme??? C'est dans un but précis ou tu te complique volontairement la vie? ;-)
Je te propose une fonction "Inserer" dans ta fenetre de fonctions
Par contre j'ai un doute sur le renommage directe lorsque l'on tape le nom d'une fonction existante??? Je vais regarder ca de plus près.
Voila c'est tout a toi de voir!

Amicalement

VBGenesis

signaler à un administrateur
Commentaire de ym_trainz le 20/11/2006 21:49:39

Salut vbGenesis !
C'est une idée cette touche F1. Je verrai ça.

Pour la fenêtre principale sans bordure : c'est pour avoir le bouton fermer en faux terminer, (la croix en haut à droite). Comme ça, cela ne fait que fermer la fenêtre au lieu de la terminer.

Je n'ai pas compris ta fonction "insérer".

Autre amélioration possible, mettre des couleurs de code dans la fenêtre Boucle, automatiser la touche win (je n'arrive pas à faire l'équivalent de sendkeys("{win}")

N'hésite pas à me signaler un bug, si tu en trouves un ! Lol ! En tous cas, ça sent la version finale, non ? Je peux te citer dans les "spécial thanks" ?

@+ - ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 21/11/2006 18:41:50

Salut!

Je me suis mal exprimé pour la fonction insérer désolé : je ne voulais pas dire une fonction comme les autres mais un bouton dans la fenetre "frmFunc" et qui permet quand il est cliqué d'insérer la fonction de la liste qui est sélectionné directement dans le "code" à envoyer puis de fermer la fenetre "frmFunc". Cela permet, lorsque l'on ne connais plus le nom d'une fonction précise et qu'on le cherche, de ne pas avoir à le recopier, il est directement insérer à la suite du code par ce bouton. OK, je ne sais pas si c'est plus clair... dis moi si tu comprends!

En tout cas de mon coté j'ai compris pour les bordures, et, tu ne devineras jamais, j'ai une idée d'amélioration! ;-) Lorsque l'on bouge la fenetre tu as fais un code pour la déplacer, mais il ne permet pas de la bouger en temps réel (je sais c'est un détail!). Pour t'aider il existe une API qui permet de désigner un objet de la feuille comme "remplacant" de la barre bleu de Windows, et qui remplacerait facilement ton code. Reste à retrouver le nom de cette API... je vais chercher.

Pour émuler la touche win, je ne sais pas si ce n'est pas justement une touche réservée et qui ne peut pas être émulée. Sinon il ne reste qu'a trouver une API qui remplacerait Sendkeys...
Les couleurs de code dans les boucles sont une bonne idée!

Voilà!

Amicalement

VBGenesis

signaler à un administrateur
Commentaire de BruNews le 21/11/2006 19:18:47 administrateur CS

API est SendInput(), deja dit plus haut.

void __stdcall SendKeyWin()
{
  INPUT npt;
  npt.type = INPUT_KEYBOARD;
  npt.ki.dwExtraInfo = npt.ki.time = 0;
  npt.ki.wScan = 0;
  npt.ki.dwFlags = 0;
  npt.ki.wVk = VK_LWIN;
  SendInput(1, &npt, sizeof(INPUT));
  npt.ki.dwFlags = KEYEVENTF_KEYUP;
  SendInput(1, &npt, sizeof(INPUT));
}

Je vous laisse traduire en VB, pas mon truc.

signaler à un administrateur
Commentaire de ym_trainz le 21/11/2006 21:45:45

Bonsware !

BruNews, la boucle est bouclée ! Tu commentes au début et te revoilou ! Ca fait plaisir. Ce code t'a-t-il intéressé ?
En tous cas, merci pour le mouse_event qui m'a grandement aidé pour la rédaction de la partie "Mouse" du prog.
Pour ce qui est de SendInput(), je vais traduire (essayer car ce n'est pas évident de passer du C++ au vb. Pourtant, j'avais commencé par UNIX en C dans les années... j'ose pas le dire... Bref, merci pour les zinfos BruNews !

VBGenesis,
Super, je retiens tes idées, toujours aussi pertinentes les unes que les autres ! Je vais m'y atteler et j'intègrerai ton API quand tu l'auras. J'ai pensé aussi à insérer le code (du Rec Keys/Mouse) à partir de la position dans rtbSend (selStart) plutôt que systématiquement à la fin... à voir...
As-tu vu un bug dans cette version ? (à part vérouillé ou lieu de verrouillé)

Cordialement,
ym_Trainz.

signaler à un administrateur
Commentaire de ym_trainz le 22/11/2006 00:33:52

Yes !
J'ai trouvé pour la touche windows !
Voir mon dernier prog déposé.
J'ai utilisé KeyBd_event (pas réussi avec sendInput(), désoled BruNews).
Je le grefferai sur la prochaine version de NiceKeys avec les modifs tenant compte des observations de VbGenesis.

signaler à un administrateur
Commentaire de VBGenesis le 29/11/2006 08:31:16

a quand la prochaine version?

signaler à un administrateur
Commentaire de ym_trainz le 29/11/2006 23:16:36

Elle est là,
C'est encore en mode test et je n'ai pas actualisé l'aide mais ça m'a l'air pas mal !
Say Me VBGenesis !

signaler à un administrateur
Commentaire de ym_trainz le 01/12/2006 23:54:18

Aide actualisée,
faux ToolTipText en mode liste appliqué

signaler à un administrateur
Commentaire de yossib le 19/12/2006 18:02:10

A quand la version .Net ?

signaler à un administrateur
Commentaire de ym_trainz le 19/12/2006 18:53:51

Bah... j'ai pas vn.net, désolé.
Merci quand même !

P.S. vbGenesis, t'as eu le temps de jeter un oeil ?

signaler à un administrateur
Commentaire de VBGenesis le 20/12/2006 13:03:46

En cours!

signaler à un administrateur
Commentaire de VBGenesis le 21/12/2006 18:46:18

Bonjour!

Voici une liste de quelques petits bug mineurs que j'ai trouvé (j'espere que tu ne le prend pas mal):
-l'intellisense est une très bonne idée, mais elle a quelques petit problèmes:
  -elle est sensé disparaitre en appuyant sur une touche, mais la touche entré est exclue (et peut-être d'autres)
  -il faudrait ajouter quelque chose pour voir le texte qui est caché à droite parce qu'il est trop long dans la bulle qui apparait (comme dans les controles Liste, une infobulle est dessinée par-dessus le texte, et elle dépasse pour afficher le texte en entier)
  -là je n'ai pas compris: imagine que tu créé une touche, tu veux qu'elle lance un programme, et quand tu sélectionne ce programme il affiche la bulle O_o

sinon quelques autres petits détails:
-un bouton OK serait pratique dans la fenetre de changement de banque
-lorsque l'on ouvre la fenetre principale alors qu'une banque est vérouillée, elle ne l'est plus "qu'à moitié". L'icone s'est transformé en celle par défaut, mais la fenetre de vérouillage considère encore que la banque est vérouillée... bref à regarder
-il serait sympa de faire en sorte que si une banque est bloquée lorsque le programme est quitté, elle pourrait être à nouveau bloquée lorsqu'il redémarre (exemple de quelqu'un qui s'en sert tout le temps, qu'il ne soit pas obligé de vérouiller la banque à chaque démarrage de son ordi)

Voila j'espère que mes commentaires sont plus utiles qu'ennuyeux ^^

Amicalement,

VBGenesis

signaler à un administrateur
Commentaire de ym_trainz le 21/12/2006 21:52:22

Salut VBGenesis,
Content de voir que tu es de nouveau en ligne.
D'abord, merci pour tes commentaires utiles et non ennuyeux.

Je reprends tes remarques :

1 - L'intellisense reste tant que le mot en cours correspond à une partie du mot clé trouvé. Exemple : en tapant 'ee' beep apparaît, jusqu'à ce qu'aucun mot clé ne soit trouvé. Effectivement, un petit bug avec Enter. Je corrige. (il y a d'ailleurs 2 champs listes : normal et fonction si le caractère ¤ a été détecté)

2 - "il faudrait ajouter quelque chose pour voir le texte qui est caché à droite parce qu'il est trop long dans la bulle qui apparaît"...
Cela dépend de la position de la fenêtre, c'est vrai ça peut être gênant. Je vois ça.

3 - Ok pour mémoriser l'état 'banque verrouillée (+ le petit bug associé). Je le placerai dans la base de registre. Idéalement, je voulais ajouter la reconnaissance de l'utilisateur afin de lancer les banques appropriées à la session en cours.

4 - J'ajouterai un bouton OK dans verrouillage des banque, puisque tu y tiens tant que ça !

5 - Je supprimerai l'intellisense dans le cas où c'est une macro de type "exécuter", c'est un oubli de ma part.

Voilà, j'espère que j'ai bien saisi et je vois tout ça prochainement.
Merci encore.

Cordialement,
YmTrainz

signaler à un administrateur
Commentaire de VBGenesis le 24/12/2006 13:08:38

Salut!

Ne trouvant finalement pas l'API de déplacement que je t'ai promis de chercher, j'ai finalement posé la question sur le forum (merci à Charles Racaud pour sa réponse). La voici:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                 (ByVal hwnd As Long, ByVal wMsg As Long, _
                  ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib "user32" ()

Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Button = vbLeftButton Then
        ReleaseCapture
        SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
    End If
End Sub

Voilà tu n'as plus qu'a l'implanter et la tester pour voir qu'elle remplace simplement et efficacement ta propre fonction!

Amicalement (et joyeux noël ;) )

VBGenesis

signaler à un administrateur
Commentaire de VBGenesis le 01/01/2007 20:06:33

Bonne année à tous!

J'ai une proposition d'amélioration: la commande vocale avec assistant du style Office!! Ne t'inquiete pas, c'est beaucoup plus simple qu'il n'y parait avec le controle MS Agent. En fait il te retourne le texte dit par l'utilisateur et tu peux le faire parler, tout ca grâce à deux librairies: Speach recognition, pour la reconnaissance vocales, et Text-to-speach, pour la synthèse vocale (on les trouve sur le site de Microsoft). Tu peux également choisir le Compagnon, et tout ce qui va bien pour le personnaliser (même un éditeur!).

Je ne sais pas ce que tu en pense, mais je trouve que ça serait putôt pas mal que l'utilisateur n'ait qu'à prononcer le mot-clé pour faire... tout ce dont NiceKeys est capable!

Voici quelques pages renseignant sur MS Agent:
http://translate.google.com/translate?hl=fr&sl=en&u=http://www.msagentring.org/
http://www.vbfrance.com/code.aspx?ID=16631

Dis moi ce que tu en pense!! ;)
Amicalement

VBGenesis

signaler à un administrateur
Commentaire de ym_trainz le 02/01/2007 22:12:06

Bonne année à tous également ! Santé et bonheur.

Merci VBGenesis pour cette idée qui ne manque pas d'intérêt. Il est toujours plaisant d'avoir à se pencher sur de nouveaux challenges !
Je n'ai pas eu trop le temps de me replonger dans NiceKeys mais je pense m'y mettre dans les prochains jours, les fêtes en étant la pricipale raison.

En te souhaitant encore tous mes voeux,
Cordialement,
Ym_Trainz

signaler à un administrateur
Commentaire de ym_trainz le 04/01/2007 11:46:34

Salut vbGenesis !
J'ai donc mis à jour selon tes remarques.
Je n'avais pas compris celle concernant l'affichage partiel du toolTip. C'était un oubli de ma part puisque ça fonctionnait si c'était un champ 'fonction'.
Normalement, tout est Ok, y compris l'Api pour form_MouseMove. Très sympa, merci ! (je l'ai passé en module pour une réutilisation plus facile dans d'autres programmes)

Pour ce qui est de ton idée de commande vocale je te propose de travailler ensemble sur ce projet. A nous de définir comment. Peut-être en ouvrant un thread... à voir

Cordialement,

ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 06/01/2007 10:05:51

Bonjour! Content que mon idée te plaise!

J'ai quelques petites idées:
Y-a-t'il besoin d'un bip lors du lancement de NiceKeys? En effet, l'ordi bipera forcement à chaque démarage, ce qui peut géner l'utilisateur (surtout qu'il n'y a pas moyen de baisser le son du HP interne).

Je pense qu'un bouton Insérer dans la fenetre frmFunc peut être utile, je ne sais pas ce que tu en pense?

Il faudrait peut-être un bouton OK et un Annulé dans la fenetre frmBoucles

A quoi sert le bouton Raccourcis Standards dans le menu du SysTray? J'ai voulu voir le code mais je ne sais pas ou c'est, je n'ai jamais touché au SysTray...

Je ne sais pas non plus quelle est l'utilité de frmProgress et de frmToolT. Ce sont des prévisions pour une prochaine MAJ?

Je te suggère aussi de bloquer le redimensionnement des fenêtres:
-frmFich
-frmFunc
-frmLockBank
-frmLogg
-frmMp
-frmVar

Je pense que cette version finale est très proche maintenant, non?

Amicalement,

VBGenesis

signaler à un administrateur
Commentaire de ym_trainz le 12/01/2007 23:04:03

Salut VbGenesis,

J'ai donc tenu compte de tes remarques. Il est vrai que j'ai zappé le resize des fenêtres... Merci !

J'ai essayé de comprendre ce que tu voulais dire quant à la fenêtre Boucle, j'ai donc ajouté des boutons afficher / cacher.

Le bouton raccourcis Standards dans le menuIcone servira à afficher la liste des raccourcis utilisés par défaut dans windows (Ctrl + A ; alt + F4 etc) et je détecterai si l'utilisateur veut vraiment utiliser la séquence de touche si elle est déjà utilisée par windows. Cela servira également de mémo "Astuce" des touches usuelles de raccourci (win + D ou win + R...) Je n'ai pas encore écrit le code correspondant.

Pour la frmProgress, elle s'affiche quand les boucles internes ¤boucle(id...)¤ ou les boucles ordinaires (par la fenêtre boucle) demande un temps de calcul > à 2 secondes :
voir ModCustomSend / RechercherFonction avec test suivant :

If Timer - TimerRunning > 2 Then
   Call frmMain.afficheFrmProgress(True)
   Call valProgBar(CByte(Bb(0)), BoucleInt(Bb(0)))
End If

Mets une boucle longue et tu verras apparaître frmProgress au bout de deux secondes (pas trop longue au début !)

Voilà, j'espère avoir répondu au mieux à tes attentes qui ne vont que dans le sens de l'amélioration.

Pour tes commandes vocales, je pense qu'il faudra étudier cela sur un autre thread, tiens-moi au courant.

Cordialement,
Ym_Trainz

signaler à un administrateur
Commentaire de VBGenesis le 21/01/2007 10:22:20

Salut!

J'ai testé la derniere version, voici mes observations:

Dans l'aide, je pense avoir trouvé une erreur : dans la case fonction, à la case "cb_set", tu met "¤cb¤ renvoie le contenu du presse papier (semblable à ctrl+C mais permet de manipuler avec des variables)" Ce n'est pas de ctrl+V que tu parle? Il y a aussi les liens vers les tutoriels qui ne marchent pas.

Dans frmBoucle, l'intellisense s'affichait en dessous de la fenêtre, et impossible de cliquer dessus, mais lorsque j'ai voulu réessayer, il est apparut au dessus... Qu'est-ce que tu en pense?

Je me demandais s'il serait possible de pouvoir mettre une variable dans le titre des boucles? (par ex. "For i = 1 to len(cb) step 1")

Lorsque tu fais un code en mode Simple, et que tu passe en mode Boucle, ce code s'affiche dans la première boucle. Mais lorsque tu fais un code en mode Boucle, et que tu passe en mode Simple, là il affiche un tas de charactères inutiles, et il perd une partie du code.

Et pour finir, un bug ENORME : peux-tu fermer la fenêtre de changement de banque quand on clique sur OK? ;op

Voilà à toi de jouer!

VBNGenesis

signaler à un administrateur
Commentaire de ym_trainz le 29/01/2007 23:04:20

Salut VBGenesis,
J'ai donc mis à jour selon tes remarques.
Pour l'intellisense dans frmBoucle, je n'ai pas trouvé d'erreur... Chez moi, ça marche bien. A suivre...

Pour tes variables dans les boucles for... next, prends plutôt les boucles internes qui permettent plus de manip :
¤boucle(0,1,5,1,"Bonjour ")¤
Tu peux les imbriquer (voir banque démo : boucles internes.)

Pour l'histoire des hiéroglyphes quand tu passes d'un mode simple à un mode boucle, c'est normal puisque les paramètres de boucles sont tous stockés dans rtbboucle().text. Le séparateur apparaît alors en clair. Ce n'est pas trop gênant. Je sais, on peut mieux faire, mais cela devient compliqué d'avoir à balader des variables rien que pour ça et cela alourdirait le code et le poids des variables...

Je pense que cette version est quasiment ok.

Je ferai un peu plus tard le menu Systray vers les touches de raccourcis standards. Pas trop de temps en ce moment.

Pour ton problème de lien vers les tutos, c'est normal. Je présente ici une version qui ne se connecte pas sur internet. Je te mets ça sur ta boîte vbFrance.

Merci encore pour ton soutien et tes précieux conseils.

@bientôt
ym_trainz

signaler à un administrateur
Commentaire de belocom le 30/03/2007 00:57:31

Bonjour,
je suis très interessé par cette application, mais j'utilise VB.NET :(
Heu.... La migration vers VB.NET est-elle possible ? Si oui, un lien pour me mettre le pied à l'étrier m'aiderais beaucoup.
Merci  

signaler à un administrateur
Commentaire de ym_trainz le 30/03/2007 22:50:24

Salut BELOCOM,

Je pense que cela doit être possible mais je n'ai pas vbnet, donc désolé...
Cordialement,

Ym_trainz

signaler à un administrateur
Commentaire de VBGenesis le 18/05/2007 18:53:56

Ok Ym_trainz, je regarde la MAJ tout de suite!

signaler à un administrateur
Commentaire de VBGenesis le 08/06/2007 18:44:02

Salut ym-trainz!

Cela fait un bout de temps que ton prog est aboutis, mais je n'ai pas trouvé d'installateurs sur télécharger.com ou autre, en as tu fait? Ce serait dommage de s'en priver après tout le boulot que tu as accompli dessus! J'ai entendu parler d'un installateur : InnoSetup (http://www.jrsoftware.org/isinfo.php), il est gratuit et apparemment assez réputé. Ca peut être sympa!
Voilà c'était surtout pour prendre un peu des nouvelles de ton "bébé"!

Amicalement

VBGenesis

signaler à un administrateur
Commentaire de ym_trainz le 09/06/2007 17:26:13

Salut vbGenesis

J'ai bien un setup fait avec ce fameux innoSetup (script en pascal) qui au passage est plus que bien, d'autant qu'il est gratuit.

Pour ceux qui le souhaitent, il y a dans le zip le fichier pour compiler avec innoSetup : ___setup_NiceKeys_New.iss

Je vois pour le mettre en ligne...
@bientôt,
ym_trainz

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

déplacer le curseur de la souris... [ par nioupy ] bonjour,bon, voila, pour vous expliquer le problème : j'utilise un logiciel qui n'est absolument pas optimisé pour une utilisation clavier... en clair Blokage clavier et souris [ par XVR232 ] Bon, ben chuis tombé sur un site, ou y avais un peu de code source vb, et g trouvé ca : Shell "rundll32 mouse,disable" Shell "rundll32 keyboard, Désactiver un périphérique [ par Jonef ] J'aimerai savoir comment désactiver un périphérique tel que la souris ou le clavier.Je sais déjà désactiver une souris et un clavier mais le problème Curseur Clavier, curseur Souris [ par Cpapy ] Bonjour,Sur un contrôle richtextbox, je souhaiterais, par programme, positionner le curseur de la Souris sur le Curseur clavierA bientôt peut-être et gestion souris et clavier dans excel [ par marcod59 ] Bonjour,Je voudrais savoir s'il est possible dans excel de gerer la souris et le clavier ? Je m'explique :Il faut que je lance une macro qui se lancer handle d'un control ayant le focus clavier mais pas le curseur souris [ par bassardg ] Salut,Je galere depuis 2 jours à la recher d'un petit bout de code pour me permetre de recuperer le handle du control sur une form dont je ne suis pas Bloquer le clavier et la souris [ par Flyer ] Je cherche un moyen de vérouiller le clavier. Que l'on ne puisse plus appyer sur les touches. Désactiver le clavier et la souris [ par Flyer ] Qui à une idée comment on peut désactiver le clavier et la souris. Ya une API qui fait ca ?Merci Mettre en mode exclusif le clavier et la souris pour mon prgm [ par padide ] Je souhaite que mon prgm est l'exclusivit&#233;e du clavier et de la souris tant que celui ci n'est pas quitt&#233;. C'est pour un prgm de s&#233;curi Probleme souris clavier sans fil [ par Dast ] Salut tlm, chuis en train de poster des posts un peu partout pour un ptit soucis; On m'a offert un pack clavier souris sans fil pour No&#235;l, et ca


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.