NICEKEYS HOOK SENDKEYS AUTOMATION CLAVIER (AVEC TOUCHE WINDOWS) ET SOURIS
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
1 oct. 2006 à 12:01
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015
-
9 juin 2007 à 17:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 9 juin 2007 à 17:26
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 8 juin 2007 à 18:44
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 18 mai 2007 à 18:53
Ok Ym_trainz, je regarde la MAJ tout de suite!
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 30 mars 2007 à 22:50
Salut BELOCOM,
Je pense que cela doit être possible mais je n'ai pas vbnet, donc désolé...
Cordialement,
Ym_trainz
belocom
Messages postés3Date d'inscriptionjeudi 13 octobre 2005StatutMembreDernière intervention30 mars 2007 30 mars 2007 à 00:57
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 29 janv. 2007 à 23:04
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 21 janv. 2007 à 10:22
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 12 janv. 2007 à 23:04
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 6 janv. 2007 à 10:05
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 4 janv. 2007 à 11:46
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 2 janv. 2007 à 22:12
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 1 janv. 2007 à 20:06
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!
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 24 déc. 2006 à 13:08
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 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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 21 déc. 2006 à 21:52
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 21 déc. 2006 à 18:46
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 20 déc. 2006 à 13:03
En cours!
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 19 déc. 2006 à 18:53
Bah... j'ai pas vn.net, désolé.
Merci quand même !
P.S. vbGenesis, t'as eu le temps de jeter un oeil ?
yossib
Messages postés40Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention15 mai 2008 19 déc. 2006 à 18:02
A quand la version .Net ?
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 1 déc. 2006 à 23:54
Aide actualisée,
faux ToolTipText en mode liste appliqué
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 29 nov. 2006 à 23:16
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 !
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 29 nov. 2006 à 08:31
a quand la prochaine version?
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 22 nov. 2006 à 00:33
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.
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 21 nov. 2006 à 21: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.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 21 nov. 2006 à 19:18
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 21 nov. 2006 à 18:41
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 20 nov. 2006 à 21:49
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 20 nov. 2006 à 18:49
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 12 nov. 2006 à 11:40
Désolé j'ai écris ce post un peu vite!
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 11 nov. 2006 à 17:49
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 11 nov. 2006 à 11:52
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 8 nov. 2006 à 23:29
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 !
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 3 nov. 2006 à 21:30
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!)
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 3 nov. 2006 à 16: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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 3 nov. 2006 à 10:12
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" )
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 3 nov. 2006 à 09:03
Ben, il suffisait que je poste ce commentaire pour voir mon voeux exhaussé !
LOL !
Les mystères de winDaube...
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 3 nov. 2006 à 09:02
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)
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 2 nov. 2006 à 00:26
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 1 nov. 2006 à 17:37
Ca a l'air super comme Maj (en tout cas le screen est prometteur!!) je regarde ca illico!
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 1 nov. 2006 à 11:45
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
ld40
Messages postés336Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention22 février 20191 1 nov. 2006 à 09:09
il me manque sReg.ocx pour ouvrir le projet. c'est grave docteur?
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 31 oct. 2006 à 23:02
You're Welcome chemical787
Si tu as besoin, n'hésite pas.
Ym_Trainz
chemical787
Messages postés2Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention31 octobre 2006 31 oct. 2006 à 22:03
Merci pour votre réactivité.
Il me reste plus qu'a étudier ça de plus près!
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 31 oct. 2006 à 17:14
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...)
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 31 oct. 2006 à 16:35
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.
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 31 oct. 2006 à 11:08
chemical787
Messages postés2Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention31 octobre 2006 31 oct. 2006 à 00:44
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...
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 8 oct. 2006 à 11:50
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 4 oct. 2006 à 19:28
Merci! Je suis en train de le tester
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 4 oct. 2006 à 18:43
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...
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 4 oct. 2006 à 18:07
Heu... ya 2 mises à jour identiques, c'est normal?
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 4 oct. 2006 à 17:34
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 4 oct. 2006 à 15:44
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!!!)
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 4 oct. 2006 à 08:47
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 3 oct. 2006 à 19:49
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
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 2 oct. 2006 à 22:49
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
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 2 oct. 2006 à 19:32
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é)
@+
cs_ym_trainz
Messages postés160Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention21 avril 2015 1 oct. 2006 à 18:34
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 !
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 1 oct. 2006 à 12:01
Pour souris, API SendInput() (ou mouse_event() en plus ancien).
9 juin 2007 à 17:26
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
8 juin 2007 à 18:44
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
18 mai 2007 à 18:53
30 mars 2007 à 22:50
Je pense que cela doit être possible mais je n'ai pas vbnet, donc désolé...
Cordialement,
Ym_trainz
30 mars 2007 à 00:57
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
29 janv. 2007 à 23:04
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
21 janv. 2007 à 10:22
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
12 janv. 2007 à 23:04
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
6 janv. 2007 à 10:05
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
4 janv. 2007 à 11:46
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
2 janv. 2007 à 22:12
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
1 janv. 2007 à 20:06
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
24 déc. 2006 à 13:08
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
21 déc. 2006 à 21:52
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
21 déc. 2006 à 18:46
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
20 déc. 2006 à 13:03
19 déc. 2006 à 18:53
Merci quand même !
P.S. vbGenesis, t'as eu le temps de jeter un oeil ?
19 déc. 2006 à 18:02
1 déc. 2006 à 23:54
faux ToolTipText en mode liste appliqué
29 nov. 2006 à 23:16
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 !
29 nov. 2006 à 08:31
22 nov. 2006 à 00:33
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.
21 nov. 2006 à 21:45
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.
21 nov. 2006 à 19:18
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.
21 nov. 2006 à 18:41
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
20 nov. 2006 à 21:49
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
20 nov. 2006 à 18:49
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
12 nov. 2006 à 11:40
11 nov. 2006 à 17:49
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
11 nov. 2006 à 11:52
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
8 nov. 2006 à 23:29
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 !
3 nov. 2006 à 21:30
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!)
3 nov. 2006 à 16:12
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
3 nov. 2006 à 10:12
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" )
3 nov. 2006 à 09:03
LOL !
Les mystères de winDaube...
3 nov. 2006 à 09:02
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)
2 nov. 2006 à 00:26
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
1 nov. 2006 à 17:37
1 nov. 2006 à 11:45
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
1 nov. 2006 à 09:09
31 oct. 2006 à 23:02
Si tu as besoin, n'hésite pas.
Ym_Trainz
31 oct. 2006 à 22:03
Il me reste plus qu'a étudier ça de plus près!
31 oct. 2006 à 17:14
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
31 oct. 2006 à 16:35
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.
31 oct. 2006 à 11:08
31 oct. 2006 à 00:44
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...
8 oct. 2006 à 11:50
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
4 oct. 2006 à 19:28
4 oct. 2006 à 18:43
@+
P.S. : Ca m'a l'air intéressant ton projet de contrôle de moteur...
4 oct. 2006 à 18:07
4 oct. 2006 à 17:34
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
4 oct. 2006 à 15:44
-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!!!)
4 oct. 2006 à 08:47
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
3 oct. 2006 à 19:49
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
2 oct. 2006 à 22:49
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
2 oct. 2006 à 19:32
@+
1 oct. 2006 à 18:34
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 !
1 oct. 2006 à 12:01