IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6] Timer.interval limité à 1


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Par défaut [VB6] Timer.interval limité à 1
    Bonjour à tous, et avant tout autre chose merci à toute l'équipe et aux forumeurs présents. Je travaille depuis un mois sur quelques projets et j'ai trouvé énormément d'aide sur le site et sur le forum, copié (mais aussi compris) beaucoup de morceau de code qui m'ont été très utiles. Merci pour tout ça

    J'ai aussi rencontré une masse de problèmes assez importante, parmi lesquels l'intervalle d'un timer. j'aurais souhaité le descendre afin d'avoir accès aux unités 10 fois plus petites que la miliseconde. c'est donc ma question, est-ce possible?

    à ceux qui se contenteront de répondre à cette question, je leur dis déjà un grand merci. je ne souhaite pas abuser de votre temps et vous pouvez arrêter votre lecture ici





    Pour ceux qui pourraient être interessés à connaître et essayer de résoudre d'autres problèmes que j'ai pu avoir sur mes projets, je me dois d'en faire une brève description. et aussi ma brêve présentation.

    Je suis en fac de psychologie, je m'y connais peu en informatique et j'ai choisis VB pour cette raison. j'ai tenté le C++ mais je suis définitivement perdu je crois et j'avais besoin d'applications rapidement de manière à faire passer des expériences sans faire trop attendre les personnes qui se sont proposées pour m'aider.

    Mon travail, c'est important pour comprendre les raisons d'être de mes applications, a pour sujet la synesthésie, un trouble neurologique peu connu mais paradoxalement pas forcément rare. La synesthésie est l'association de plusieurs modalités sensorielles dans le cerveau, c'est à dire, que les yeux vont par exemple percevoir les images mais les sons également - ou alors, écouter telle musiques va donner l'impression que l'on mange du sucré. De grandes figures historiques comme Rimbaud ou Baudelaire étaient synesthètes. c'est en fait une sorte de "mélange" des sens.

    un type particulier de synesthésie est la synesthésie Graphème couleur, c'est l'objet de mon travail : les synesthètes Graphèmes-couleur voient les symboles en différentes couleurs. par exemple, ce "A" que nous voyons tous en noir, les synesthètes le verront en vert foncé, ou rouge (cela dépend des synesthètes eux même). certains diraont même qu'il ressente la même sensation en voyant ce "A" qu'en mangeant un abricot.

    A propos, si vous vous reconnaissez dans cette description, je vous supplie de ne pas en lire d'avantage, de fermer cette page et de prendre contact en mp, avec moi, le plus tôt possible. j'ai beaucoup de difficultés à trouver des sujets synesthètes et si vous en êtes un, il ne faut pas que vous sachiez comment fonctionnent mes expériences, avant de les passer (auquel cas votre aide ne me serait d'aucune utilité :/ )

    Passons aux expériences et aux applications VB proprement dites.

    ma première application veut afficher un caractère et lancer une palette de couleur, afin que le synesthète puisse choisir la correspondance de couleur et ainsi me dire quelle "couleur" a ce caractère (je rappelle que les caractères sont affichés en noir, toujours, mais que les synesthètes les voient en couleur). tout ceci se fait sur un écran totalement blanc et prenant tout l'écran, pour éviter que d'autres perceptions ne parasitent l'expérience.

    j'ai le code à disposition pour ceux qui le souhaiteraient (cela risque de faire long ici :/) et des problèmes que j'ai rencontrés sont les suivants, hélas, pas les seuls, mais les plus importants :

    1/ je souhaite inscrire dans une variable chaîne l'ensemble des symboles à afficher (Chainesymboles = "abscdefghijklmnopqrstuvwxyz&é"'(-....etc"), puis choisir au hasard un de ces symboles, le mettre dans une variable et l'utiliser, mais après, l'enlever de la chaîne pour qu'il ne soit pas réutilisé par la suite ! j'ai beau eu cherché, je n'ai pas trouvé de moyen d'enlever une lettre, l'une après l'autre, jusqu'à épuiser la chaîne entière.
    Du coup, j'ai créé une série de chaîne et une série d'exécutable correspondant, pour que mon expérience n'affiche pseudo aléatoirement jamais la même suite de lettre (d'abord l "e", puis le ":", puis le "y" ... sur un des exécutables, et sur un autre, d'abord le "y", puis le "e", puis le ";", ...). j'ai peine avec ce problème là. prendre une suite aléatoires de données prédéfinies est chose courante en expérience de psycho, j'aurais aimé apprendre à le faire.

    2/ je vais envoyer mes expériences à d'autres personnes sur le net. malheureusement, plusieurs fois, on m'a assuré que windows considère mes programmes comme "malveillants" et ne veut pas les ouvrir; j'ai pensé qu'il y'avait une problème d'authentification. windows ne connaît pas mes programmes, lesquels ne sont pas certifiés, alors, les considèrent comme potentiellement dangereux :/ cela le fait également avec un fichier installer. bat que je créé pour l'occasion, afin de copier les dll manquantes sur l'ordinateur distant (j'envoie les dll dans un dossier et le fichier installer.bat à côté dont les lignes de codes sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    copy dll-manquantes\VB6FR.DLL C:\WINDOWS\system32\VB6FR.DLL
    copy dll-manquantes\commdlg.dll C:\WINDOWS\system32\commdlg.dll
    copy dll-manquantes\COMDLG32.OCX C:\WINDOWS\system32\COMDLG32.OCX
    regsvr32 \windows\system32\COMDLG32.OCX)
    j'aimerais pouvoir envoyer ce petit fichier d'installation et mes programmes de telles sorte qu'ils soient acceptés par les ordinateurs distants et ouverts comme sur le mien. il n y a absolument rien de dangereux dedans!

    3/ mes programmes copient les résultats d'expériences dans un fichier texte (que je colle sur le c: est-ce qu'il peut y avoir un rapport avec le problème numero2/?) j'ai trouvé plusieurs exemple d'envois d'email sur le forum, mais ne doit pas être assez doué pour comprendre leur fonctionnement. j'aimerais effectivement m'envoyer ce fichier résultat pour éviter que les résultats ne soient changés. ou alors, faire en sorte que ce fichier texte ne puisse être ouvert que par moi (spa que j'ai pas confiance, c'est juste que l'expérience et les résultats sont très importants, je veux éviter tout risque)

    j'avais trouvé sur le forum le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Cmdmail_Click()
    MAPISession1.SignOn
    MAPIMessages1.MsgIndex = -1
    MAPIMessages1.SessionID = MAPISession1.SessionID
    MAPIMessages1.RecipDisplayName = "mon.adresse@voila.fr"  'Destinataire
    MAPIMessages1.MsgSubject = "Un petit bonjour"       'Objet
    MAPIMessages1.MsgNoteText = "Salut."                'Texte
    MAPIMessages1.Send
    MAPISession1.SignOff
    End Sub
    en collant les deux contrôles MAPIsession et MAPImessages, j'ai tenté de m'envoyer des messages, mais n'y arrive pas. Auriez-vous une idée de ce qui cloche? je suis sûr que ça doit être simple, mais quand on ne connaît pas, on peut rester 3 ou 4 semaines à chercher de site en site cette chose qui nous manque :/

    Bien voilà, j'espère que cela n'était pas trop indigeste pour un début. J'ai passé beaucoup de temps à essayer de trouver solution à tout ça, j'ai peut etre mal cherché. S'il existe des parties qui en traient et que j'aurais manqué, je ne vous en voudrai pas de seulement copier les liens sans explication. Si certains d'entre vous sont interessés par cette étude, je peux envoyer tout code que j'ai fait ou tout renseignement. je vous remercie d'avoir lu jusque là

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Cher Monsieur,

    Mon premier réflexe était de vous répondre que, sur ce forum de développement sous VB, les explications médicales que vous avez bien voulu nous donner n'avaient pas vraiment lieu d'être exposées.
    Une deuxième lecture m'a fait changer d'avis, car ces explications laissent entrevoir votre but et se posent alors de nombreuses questions.
    Je devine en effet que vous souhaitez, entre autres, pouvoir afficher à des fréquences différentes et devine que cet affichage va être complété par d'autres appareils sans lien direct avec l'ordinnateur qui affiche, pour analyser certaines réactions.
    Se posent alors plusieurs questions :
    - provoquer des exécutions à un intervalle infime est possible avec une Api (gettickcount, je crois), mais encore faut-il que la durée de l'exécution soit inférieure ou égale à l'intervalle défini. Question donc : quel type d'exécution ?
    - la fréquence de rafraichissement de l'écran ne doit pas être perdue de vue si, comme je le devine, les réactions (analysées par ailleurs) du patient dépendent de cet affichage

    Je crois qu'il est important de vous poser ces questions avant même de poursuivre ici. Si, après réflexion, vous décidez qu'il est bon de continuer, vous recevrez toute notre aide pour y parvenir.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Par défaut
    Bien je m'excuse pour le précédent post, peut etre aurais-je dû négliger certaines explications. Grand merci pour ta réponse, jmfmarques. cla m'a fait prendre conscience de mes mauvais questionnement.

    concernant le problème du timer, je compte effectivement analyser des temps de réaction. pour donner un exemple, j'affiche une image contenant des "1" et un seul "L" et propose à l'utilisateur de taper sur une touche à droite du clavier, si le L se trouve à dans la partie droite, une touche à gauche si L se trouve dans la partie gauche.

    mes résultats sont de l'ordre de 60 ms, j'aurais aimé que l'image s'affiche, le timer débute en même temps. l'utilisateur répond. le timer s'arrête dès que l'utilisateur a appuyé sur la touche et inscrit le temps qu'il s'est écoulé entre l'affichage de l'image et l'événement "taper touche". seulement, l'intervalle en milliseconde me paraît trop faible. j'aimerais un degré de précision de plus, donc. étant donné que le timer et son exécution ne consiste en fait qu'à comptabiliser les unités de temps, l'instruction est fort simple :

    Compteur = Compteur + 1

    Il est vrai cependant que j'y ai ajouté d'autres instructions, négligeant ainsi la portée sur le temps d'exécution. merci de me le rappeler.

    bon pour le moment, je me contenterai de demander s'il y'a un moyen d'éxécuter cette instruction tous les dixièmes de miliseconde plutôt que toutes les milisecondes.

    Merci également de m'avoir remis en mémoire le problème du rafraîchissement de l'image. oh là là, tout cela est beaucoup plus compliqué que je ne l'imaginais je crois me souvenir d'un post sur le site permettant de calculer le temps d'éxécution de code, je m'y atelle de suite, ainsi qu'à cette API (ne sais pas encore ce qu'est exactement une API, mais je me débrouillerai ^^) Gettickcount.

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Bien !
    Tu as choisi le tutoiement et je t'en remercie, car cela facilite les choses.
    Fais déjà une recherche sur ce forum avec le mot Gettickcount, mais il me semble d'ores et déjà que cette api pourra être utilisée hors timer, ce qui facilite les choses, puisque tu nous dis vouloir mesurer le temps de réaction.
    Ou encore à l'intérieur du timer. On pourra ainsi déterminer la durée écoulée entre le moment de l'affichage d'un symbole et celui de la pression d'une touche.
    Je te propose de scinder ton problème en plusieurs sujets, un après l'autre.
    Le 1er sujet pourrait donc être :
    Comment afficher un symbole quelconque à l'écran, l'affichage étant provoqué par un timer, et mesurer le temps écoulé entre son affichage et une pression sur le clavier ?
    Pourquoi un timer ? par ce que tu nous as expliqué que tu voulais des affichages successifs et aléatoires.
    Considérons-nous donc ce sujet comme limité à cette 1ère question, les autres questions faisant ensuite l'objet d'un sujet séparé par question ? Es-tu d'accord ?

    Edit :
    en attendant ta réponse, lis celà :
    http://www.developpez.net/forums/sho...t=gettickcount

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Par défaut
    Absolument, tout ceci me parait très clair et très réfléchis. je lis et je reviens éditer ce message pour apporter une réponse plus constructive que celle-ci.

  6. #6
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    Pour info,
    l'utilisation du timer pour des intervals de moins de 100 ms devient aléatoire (évidement,cela dépend du code dans le timer et du PC sur lequel s'execute le programme), en gros, le code à exécuter prend plus de temps que l'interval => certains événements ne sont pas vus.

Discussions similaires

  1. Evenement asynchrone VB6 (Timer)
    Par laurent1 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/07/2006, 19h27
  2. [VB6] Timer et Form ......
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 27/04/2006, 18h37
  3. [VB6] Timer et Groupe indexé
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 27/04/2006, 15h48
  4. [VB6][fichier texte]limite des 32 ko
    Par hawk14 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/02/2006, 23h45
  5. [VB6] timer plus rapide que 1 d'interval
    Par windob dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/02/2004, 00h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo