Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 2009
-
16 janv. 2008 à 18:06
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 2009
-
17 janv. 2008 à 23:16
Bonjour,
J'essaye de faire quelque chose que je pensais simple, mais qui me pose un problème assez étrange.
J'ai CutePDF (un petit programme qui installe une imprimante virtuelle servant à "imprimer" dans un fichier pdf), et mon but est d'automatiser l'impression de documents en pdf.
J'arrive à demander au programme ouvrant ces documents de lancer l'impression en sélectionnant l'imprimante CutePDF, mais ensuite, CutePDF affiche une boite de dialogue demandant où je veux enregistrer mon pdf. Boite de dialogue que j'aimerais pouvoir remplir automatiquement. Je récupère le handle de la boite de dialogue, puis celui du controle "Edit" qu'elle contient afin de modifier le chemin d'enregistrement.
Voici mon code :
//hwnd est le handle du Edit
//Modifie le texte :
SendMessage(hwnd, WM_SETTEXT, IntPtr.Zero, dest);
//Thread.Sleep(500);
//Envoie la touche enter pour valider la boite de dialogue :
PostMessage(hwnd, WM_KEYDOWN, new IntPtr((int)Keys.Enter), IntPtr.Zero);
Lorsque je l'exécute au pas-à-pas, ça marche, la valeur de l'Edit control se met bien à jour, par contre lorsque je l'exécute normalement (avec ou sans le Sleep), l'Edit control garde sa valeur par défaut.
Quelqu'un pourrait m'expliquer ?
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 17 janv. 2008 à 23:16
C'est pareil, SetWindowsText envoie un SendMessage sur le handle avec WM_SETTEXT comme message (enfin d'après la doc msdn)... Maintenant vu la nature quelque peu étrange du bug ca vaudrait le coup d'essayer, mais demain, il est un peu tard aujourd'hui.
Merci, bonne nuit