Envoyer un Fax par script

Envoyer un Fax par script - VB/VBA/VBS - Programmation

Marsh Posté le 30-10-2009 à 10:51:41    

Bonjour,
 
Je cherche à envoyer des fax par script, idéalement en vbs ou vb6.
Je possède une imprimante / scan / photocopieur / fax pour lequel j'ai plusieurs drivers d'imprimante, dont un "Fax".
Ainsi, lorsque j'imprime (dans Word par exemple) et que je sélectionne l'imprimante "Fax", je rentre le numéro de fax et au lieu d'imprimer, ça fax :)
Je souhaiterais attaquer cette imprimante par script, mais je ne sais pas comment faire. Je sais aller jusqu'à l'étape de sélection de l'imprimante, mais je ne vois pas comment ajouter le numéro de fax...
 
Quelqu'un a-t-il déjà fait un tel programme ?
 
NB : Je n'ai pas de serveur SMTP, donc je ne souhaite pas utiliser de FaxToMail et vice versa.
 
Merci pour votre aide,
 
Lionel

Reply

Marsh Posté le 30-10-2009 à 10:51:41   

Reply

Marsh Posté le 11-11-2009 à 15:19:46    

Bon alors j'ai fini par trouver après pas mal d'heures de recherches et de tentatives de codes plus ou moins fructueuses...
Je partage donc :
J'empile mes docs à faxer dans un répertoire.
J'utilise un fichier .vbs que j'appelle de manière quotidienne à heure fixe qui :
 
- Définit l'imprimante par défaut comme étant celle du Fax au début du programme puis remet la bonne imprimante par défaut à la fin du programme
CONST IMP_DEF = "TOSHIBA e-STUDIO6530CSeriesPCL6"
CONST IMP_FAX = "TOSHIBA e-STUDIO Series Fax"
...
SetDefaultPrinter IMP_FAX
...
SetDefaultPrinter IMP_DEF
 
Sub SetDefaultPrinter(p)
Dim oPrinter
Set oPrinter = CreateObject("WScript.Network" )
oPrinter.SetDefaultPrinter p
End Sub
 
 
- Ouvrer mon fichier et l'imprime avec des "SendKeys" : le principe c'est de faire comme si c'était un humain qui appuyait sur les touches avec des combinaisons de CTRL / TAB / ENTER
Set oShell = CreateObject("WScript.Shell" )
oShell.Run CheminFichier
WScript.Sleep 1000
oShell.SendKeys "^(p)" 'simule un CTRL + P pour print
WScript.Sleep 500
oShell.SendKeys "{TAB}"
oShell.SendKeys "{ENTER}"
WScript.Sleep 200
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{ENTER}"
WScript.Sleep 200
oShell.SendKeys NumeroFax
WScript.Sleep 200
oShell.SendKeys "{ENTER}"
WScript.Sleep 200
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{TAB}"
oShell.SendKeys "{ENTER}"
WScript.Sleep 200
oShell.SendKeys "{ENTER}"
 
 
- Tue Acrobat à la fin du script
KillAcrobat
 
Sub KillAcrobat()
Set oService = getObject("winmgmts:" )
For Each p in oService.InstancesOf("Win32_process" )
If Instr(lcase(p.Name), "acrord32.exe" ) > 0 Then
p.Terminate()
Exit Sub
End If
Next
End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed