jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
24 févr. 2007 à 11:41
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
25 févr. 2007 à 18:54
Ma demande va, je le sais, paraître assez curieuse, mais ceux qui voudront bien tenter cette expérience contribueront peut-être à comprendre (ou à "cerner") ce qui se passe derrière tout celà.
On va commencer par mon enronnement personnel de travail
OS : Windows 2000 Pro
Version VB : VB5 Entreprise
ATTENTION (pour le cas où les choses se passeraient comme sur ma machine)
Sauvegardez et fermez vos travaux en cours avant de faire et de lancer la suite
projet :
Une form avec sa propriété Keypreviw = True et ce seul code :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 18 Then SendKeys "%{ENTER}"
End Sub
Maintenant,
1) lancer le run de ce projet depuis l'IDE (pas l'exe)
2) appuyer, dans cet ordre, sur les touches (demeurées pressées) CTRL + ALT + DEL
Celà conduit, chez moi, à l'apparition du dialogue habituel du gestionnaire de tâches, mais en même temps, à un blocage total de ma machine et donc à la nécessité d'une interruption forcée (par l'interrupteur) puis à un redémarrage.
Si certains vopulaient bien essayer dans leur environnement et nous dire si ce phénomène se produit également chez eux, ils ouvriraient sans doute la voie à une réflexion intéressante.
Comme ce phénomène n'est constaté chez moi qu'en utilisant le Run de l'IDE, VB a sans aucun doute une responsabilité dans cette affaire. (Aucun blocage en lançant l'exe obtenu de la compilation)
Merci d'avance à ceux qui voudront bien se prêter à cette expérience et rendre compte de ce que celà aura entraîné dans leur environnement.
Avec un DoEvents, j'ai une erreur 28 : Espace de pile insuffisant.
Sinon, je suis sous XP Home SP2 (Casy, c'est ma config qui fait que Ctrl+Alt+Suppr m'amène à l'info de session) et VB6 SP6.
__________
Kenji
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 24 févr. 2007 à 14:10
Il semblerait qu'il y est vraiment une spécificité, car le keyCode 18 correspond à vbKeyMenu donc à une touche Menu.
Personellement je n'ai jamais vu cette touche sur un clavier, donc ça vient bien je pense du fait que le système intercepte le ctrl+alt+supp pour afficher la page d'ouverture de session donc plus exactement de l'affichage de cette page.
pour info, normalement c'est supp que devrait intercepter keydown et supp correspond au keyCode 46
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 24 févr. 2007 à 15:19
Effectivement, bien vu PCPT.
Alors j'ai refais le test, chez moi. Avec ctrl+alt+supp, rien s ce n'est l'ouverture du gestionnaire de tache.
Par contre avec Alt seul, blocage de l'appli. Dès qu'elle pert le focus, elle se débloque mais lide reste un peuu pertubé. Il suffit de rappuyer sur Alt pour tout remettre en ordre
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 févr. 2007 à 13:00
Un grand Merci à vous deux.
Charles, je ne sais toujours pas si c'est un problème d'OS différentes ou de versions VB différentes.
Autre curiosité découverte grâce à toi :
Si chez moi (VB5 + Win 2000 pro) j'ajoute le beep ===>> même phénomène mais avec, en plus, necessité de réinitialiser le Desktop au redémarrage !
Avec un peu de chances, passera par là un possesseur de VB5 (car je crois que c'est VB5 et non l'OS qui, finalement, est le véritable responsable)
Je laisse le sujet ouvert car je crois vraiment qu'il y a quelque chose d'intéressant "derrière"
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 24 févr. 2007 à 13:51
salut,
idem que casy XP pro SP1 VB6 sp6, beep désactivé dans les param windows donc pas testé avec...
peut-être que le ctrl+alt+entree (celui de sendkeys) amène des soucis pour Win2K ou VB5
ou un dérivé de ctrl+arrêtdefil mais mettant VB et Win dans les choux
as-tu essayé avec un doevents avant le senkeys?
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 24 févr. 2007 à 15:45
peut-être une piste... jmfmarques, ta form contient-elle un menu?
le alt puis entrée (pas +) ouvre le menu par défaut, ou ouvre le menu system à défaut...
il est possible que l'appli gèle sur le down en continu si un menu est déroulé (peut-être invisible) puisque modal (comme la fonction popup)
simple supposition
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 févr. 2007 à 16:55
Rebonjour;
D'abord un très grand Merci pour ce que vous avez bien voulu expérimenter
Il doit définitivement y avoir un problème inhérent à l'IDE de VB
Pour répondre à PCPT, d'abord : non : aucun menu ni même le mondre contrôle sur la Form
Mais vien maintenant le plus curieux :
en n'utilisant que la touche ALT, avec mon IDE VB : j'obtiens presque ce qu'obtient Casy, mais dans l'ordre suivant :
1) blocage apparent
2) perte des touches numériques
3) impossibilité de déclencher maintenant le gestionnaisre (par CTRL + ALT + DEL)
4) mais si j'appuie à nouveau sur ALT, il m'est cette fois possible de déclencher le gestionnaire de tâches par CTRL + ALT + DEL
Une espèce de "compromis", donc, entre ce qu'a Casy et ce que j'obtenais en allant, dès l'étape 1) à l'emploi de CTRL + ALT + DEL.
Je me suis donc demandé si je n'avais pas la berlue et ai recommencé, mais cette fois-ci en allant directement à CTRL + ALT + DEL ===>>> et là : plantage total sans possibilité aucune de "rattrapage" par un nouvel appui dsur ALT ...
Ma conclusion : oui, celà doit avoir quelque chose à voir avec la gestion des menus, comme vous l'avez entrevu. Et (l'IDE seul étant concerné par ce phénomène) je pense que l'IDE de VB5 et celui de VB6 ne réagissent pas de la même façon. Je ne crois pas que l'OS soit quant à lui concerné (encore que... si l'IDE sous-classe... tout demeure possible)
Bon... que dire et que faire ?
- Je valide les réponses qui ont apporté quelques éclaircissements
- Je remercie à nouveau
- et explique comment j'en suis arrivé à cette "expérimentation" : ayant réussi ce matin, en réponse à un anglophone, à faire un petit "truc" permettant de prendre en considération la frappe de la conjugaison de 2 lettres (pas de toutches autres que "normales") , par exemple G + K, il m'est idiotement venu l'idée folle que je pourrais tenter d'appliquer cette méthode à CTRL + ALT + DEL... sans succès, bien entendu... autre que, en "trifouillant" et m'amusant, que le plantage fortuit dénoncé..
Voilà !
Il faut m'enfermer..
Ceci dit : si vous avez besoin du truc (là j'y suis parvenu) permettant de faire reconnaitre la frappe de X + Z, je le mets là bien volontiers.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 25 févr. 2007 à 08:36
Bonjour Exploreur,
Ce n'est que la mise en oeuvre d'une petit mécanisme.
Voilà :
Private touche1 As Boolean, touche2 As Boolean
Private Sub Form_Activate()
Me.KeyPreview = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
controle_touche "C", "D", KeyCode ' c'est ici que l'on décide des touches réactives (ici C + D)
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
touche1 = False
touche2 = False
End Sub
Private Sub controle_touche(T1, T2, KC)
If touche1 And touche2 Then
touche1 = False
touche2 = False
End If If UCase(Chr(KC)) T1 Then touche1 True If UCase(Chr(KC)) T2 Then touche2 True
If touche1 And touche2 Then MsgBox T1 & "+" & T2 & " sont présenteùent enfoncés"
End Sub