oulipan
Messages postés46Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention19 février 2024
-
20 août 2012 à 15:09
oulipan
Messages postés46Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention19 février 2024
-
20 août 2012 à 17:01
Bonjour, j'ai un problème sur VB6 avec sendkeys:
Si quelqu'un pouvait m'éclairer sur sendkeys, qui, dans mon petit outil suivant,
fait son travail comme ça lui chante!
Merci d'avance.
'*************************************************************************************
'* BUT: Ouvrir un fichier-txt, qui servira de fichier de données,
'* et lui transmettre les éléments de texte sélectionnés dans une richtextbox,
'* encadrés de leur position et de leur longueur.
'*************************************************************************************
' ...mais "sendkeys" est un facteur un peu lunatique qui ne transmet pas toujours le courrier!
'(contrôles: la form; la richtextbox ; un bouton de commande[Cmdchargrtf] qui lance une [CommonDialog box])
'(plus un text1 et un label1 -pas nécessaires)
'avec XP, fonctionne presqu'à tous les coups,
'mais avec W7, impossibilité "permission refusée" ,sauf si je lance l'exe, auquel cas, fonctionnement aléatoire
Dim notepad
Dim mess
Dim fois
Private Sub Cmdchargrtf_Click()
' ######### Choix du .rtf à traiter (CHARGER RTF) #########
Cmdchargrtf.visible = false
CommonDialog1.Filter = "Fichiers au format RTF (*.rtf)|*.rtf|"
CommonDialog1.FilterIndex = 1
CommonDialog1.ShowOpen
RichTextBox1.LoadFile CommonDialog1.FileName, rtfRTF
RichTextBox1.Locked = True 'rendre impossible une modif du doc.rtf
End Sub
Private Sub Form_Load()
Form1.Height 9000: Form1.Width 11000 ' pour laisser la place, à côté, au "notepad.txt" qui s'ouvrira
fois = 0
notepad = Shell("notepad.exe", 1)
End Sub
Private Sub RichTextBox1_Click()
posd = RichTextBox1.SelStart: 'position départ
lgs = RichTextBox1.SelLength: 'longueur sélection
repe = Mid(RichTextBox1.Text, posd + 1, lgs)
mess = Trim(Str(posd)) & "," & Chr(34) & repe & Chr(34) & "," & Trim(Str(lgs)) & ",": 'message à écrire sur notepad
AppActivate notepad, False
SendKeys Str(fois) & " - " & mess & "{ENTER}", True
'For i 0 To 10000: i i + 1 - 1: Next i '(essayé sur W7 ...J'ai l'impression que sendkeys fait un peu mieux son travail si je le retiens à bavarder)
Label1 = Str(fois) 'pour compter les saisies qui passent ou non
fois = fois + 1
Form1.SetFocus
Text1.SetFocus 'plutôt 2 fois qu'une!!
End Sub
(Bien entendu, je me rabats sur une ouverture manuelle d'un fichier.txt, une mise de la sélection dans le presse-papiers, puis un clic sur le fichier.txt ouvert à côté et un [control-V], mais "sendkeys" me paraissait plus facile.)
Encore merci d'éclairer ma lanterne.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 20 août 2012 à 15:14
Bonjour,
Quel bidouillage ! On ne "pilote" pas notepad par des sendkeys.
Un dichier texte n'est qu'un fichier texte. On utilise l'instruction Open pour y lire (For Input) et y écrire (For Output).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 20 août 2012 à 16:30
Rien ne t'empêche alors de l'afficher parallèlement (mais uniquement accessoirement) dans une textbox, si tu y tiens. Mais ne le modifie pas autrement que par l'instruction Open !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
oulipan
Messages postés46Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention19 février 2024 20 août 2012 à 16:09
Bonjour, Ucfoutu,
D'abord merci pour ta réponse ultra-rapide.
J'ai effectivement utilisé auparavant "open, etc...", mais je préfèrerais avoir mon fichier.txt visible à côté pour y ajouter diverses infos selon les données pointées.
Comme fichier de données, (à mon niveau), le fichier-txt fonctionne bien.
oulipan
Messages postés46Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention19 février 2024 20 août 2012 à 17:01
Donc, tu me conseilles de continuer à faire comme je faisais avant, et de laisser tomber sendkeys.
Et encore merci pour ta réponse immédiate.
A bientôt.