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

VBScript Discussion :

VbScript PDFCreator ?


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de e040098k
    Inscrit en
    Avril 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 197
    Par défaut VbScript PDFCreator ?
    Bonjour, Je suis actuellement en stage dans un cabinet comptable, et je viens d'installer PDFCreator. Je remarque que l'on peut lui faire executer des scripts après l'enregistrement(action après l'enregistrement).

    Je crois que c'est codé en VBscript mais je ne suis pas sur. Exemple de script qui ouvre un popup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    ' PopUpMessage script
    ' Part of PDFCreator
    ' License: GPL
    ' Homepage: <a href="http://www.sf.net/projects/pdfcreator" target="_blank">http://www.sf.net/projects/pdfcreator</a>
    ' Version: 1.1.0.0
    ' Date: September, 1. 2005
    ' Author: Frank Heindörfer
     
    Option Explicit
     
    Const AppTitle = "PDFCreator - PopUpMessage"
    Const SecondsToWait = 5
     
    Dim objArgs, WshShell
     
    Set objArgs = WScript.Arguments
     
    If objArgs.Count = 0 Then
     MsgBox "This script needs a parameter!", vbExclamation, AppTitle
     WScript.Quit
    End If
     
    Set WshShell = WScript.CreateObject("WScript.Shell")
     
    WshShell.Popup "Le pdf à été crée" & vbcrlf & vbcrlf & _
     "Filename:" & vbtab & vbtab & objArgs(0) & vbcrlf, SecondsToWait, AppTitle, 0
    J'aimerais pouvoir ouvrir une MsgBox qui me propose d'effacer le fichier original (.doc)

    Quelqu'un peut-il m'aider ? Je commence à désespérer !! Merci beaucoup

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pour ouvrir un msgBox l'instruction c'est Msgbox..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     rep = MsgBox("Voulez-vous effacer le fichier ", vbYesNo + vbQuestion, "Effacer fichier source?")
     If rep = vbYes Then
       MsgBox "On efface"
      Else
       MsgBox "on Conserve"
     End If

  3. #3
    Membre confirmé Avatar de e040098k
    Inscrit en
    Avril 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 197
    Par défaut script pdf creator : Je progresse un peu !
    J'ai avancé un peu dans mon initiation a VB script, je cherche toujours à supprimer un fichier après la création d'un pdf.
    J'ai réussi à programmer ma MsgBox mais lorsque j'éxécute mon scrip, le fichier n'est pas supprimer !

    Quelqu'un sait-il résoudre mon problème ?

    voila mon code (désolé pour la mise en page je pense que cela viens d'opéra) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    Option Explicit
     
    Const AppTitle = "PDFCreator - MSAgent"
    Const TextToSpeech = "Le fichier pdf à été créé ! Pensez à supprimer le fichier original"
    Const AgentName = "Merlin"
     
    Dim objAgent, objCharacter, c, HideID, LastID
     
    LastID = 0
     
    On Error Resume Next
     
    Set objAgent = CreateObject("Agent.Control.2")
    If Err.Number <> 0 Then
     MsgBox "This script needs MS SAPI runtime." & vbcrlf & vbcrlf & _
      "For more informations use this link." & vbcrlf & _
      "http://www.microsoft.com/MSAGENT/downloads/user.asp#sapi" & vbcrlf & vbcrlf & _
      Err.Number & " " & Err.Description, vbCritical, AppTitle
     
     WScript.Quit
    End If
     
    WScript.ConnectObject objAgent, "Agent_"
     
    objAgent.Connected = TRUE
    objAgent.Characters.Load AgentName, AgentName & ".acs"
    If Err.Number <> 0 Then
     MsgBox "Try to load the agent character file: " & AgentName & ".acs" & vbcrlf & vbcrlf & _
      "For more informations use this link." & vbcrlf & _
      "http://www.microsoft.com/MSAGENT/downloads/user.asp#character" & vbcrlf & vbcrlf & _
      Err.Number & " " & Err.Description, vbCritical, AppTitle
     WScript.Quit
    End If
     
    Set objCharacter = objAgent.Characters.Character(AgentName)
     
    With objCharacter
     .Show
     .LanguageID = &H0409 ' English
     .Play "GetAttention"
     .Speak TextToSpeech
     Set HideID = .Hide
    End With
     
    c = 150 ' Don't wait more than 15 seconds
    Do While (c > 0) and (LastID <> HideID)
     c = c -1
     Wscript.Sleep 100
    Loop
     
    Public Sub Agent_RequestComplete(ByVal Request)
     LastID = Request
     If MsgBox("Voulez vous supprimer le fichier source ?",vbQuestion + vbYesNo + vbSystemModal + 0,"Suppression du fichier source") = vbYes Then
            'déclaration file system object
            Dim fso
     
            'instanciation
            Set FSO = CreateObject("Scripting.FileSystemObject")
            'Suppression du fichier
            Set Ftxt = fso.GetFile("C:\Documents and Settings\stagiaire1\Bureau\Nouveau_Document_texte.txt")   'Fichier origine
            Ftxt.delete
            Else Wscript.Quit
    End if
    End Sub

  4. #4
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Alors là, plusieurs choses.

    Premièrement, ton code contient des erreurs. Tu peux les voir en enlevant la ligne de ton code (comment tu veux débugger sinon?)


    Une des erreurs que tu as fait est de ne pas définir toutes tes variables (je pense à Ftxt) alors que tu as l'option qui t'oblige à définir TOUTES tes variables. Dans un premier temps, tu peux enlever cette ligne, ce qui te permettra de créer des variables sans avoir à les déclarer à chaque fois...


    Deuxièmement, tu crée une fonction Agent_RequestComplete() qui fait ta suppression mais tu ne l'as appelée nulle part, donc ce code n'est pas interprété...


    Sinon j'ai testé ta suppression (en déclarant la variable Ftxt) et elle fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
     
    If MsgBox("Voulez vous supprimer le fichier source ?",vbQuestion + vbYesNo + vbSystemModal + 0,"Suppression du fichier source") = vbYes Then
    'déclaration file system object
    	Dim fso
    	Dim Ftxt
     
    	'instanciation
    	Set FSO = CreateObject("Scripting.FileSystemObject")
    	'Suppression du fichier
    	Set Ftxt = fso.GetFile("C:\Nouveau_Document_texte.txt") 'Fichier origine
    	Ftxt.delete
    	Else Wscript.Quit
    End if
    Voilà j'espère que ça peut t'aider.

    sers toi des balises de code (fournies pas le forum) pour poster tes codes, ce sera plus lisible

  5. #5
    Membre confirmé Avatar de e040098k
    Inscrit en
    Avril 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 197
    Par défaut
    Merci pour ton aide pitchalov,

    Pour terminer mon petit script, je doit récupérer le nom du fichier pdf que j'ai créer (monfichier.pdf) afin de d'avoir le nom du fichier source (monfichier.doc).

    J'ai réussi à retrouver ce nom grace à objArgs. Mais cela ne me permet que de l'afficher dans une MsgBox, je n'arrive pas à le réutiliser dans la routine de suppression ! Il me faut récupérer le nom du fichier auquel je concaterais ".doc"

    Merci pour votre aide !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Option Explicit
    'déclaration file system object
    	Dim fso
    	Dim Ftxt
            Dim objArgs, WshShell
     
    Set objArgs = WScript.Arguments
     
    If objArgs.Count = 0 Then
     MsgBox "This script needs a parameter!", vbExclamation
     WScript.Quit
    End If
     
    Set WshShell = WScript.CreateObject("WScript.Shell")
     
    WshShell.Popup "Le pdf à été crée" & vbcrlf & vbcrlf & _
     "Filename:" & vbtab & objArgs(0) & vbcrlf, 0
     
    If MsgBox("Voulez vous supprimer le fichier source ?",vbQuestion + vbYesNo + vbSystemModal + 0,"Suppression du fichier source") = vbYes Then
     
    	'instanciation
    	Set FSO = CreateObject("Scripting.FileSystemObject")
    	'Suppression du fichier
    	Set Ftxt = fso.GetFile("C:\Documents and Settings\stagiaire1\Bureau\Nouveau Document texte.txt") 'Fichier origine
    	Ftxt.delete
    	Else Wscript.Quit
    End if

  6. #6
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Que contient la chaîne de caractère objArgs(0) ?

    le chemin du nouveau fichier pdf créé? ou seulement un nom de fichier?


    ou le chemin de l'ancien fichier .doc?
    Dans ce cas ce serait facile, il suffirait de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Ftxt = fso.GetFile(objArgs(0)) 
    Ftxt.delete
    Sinon il faut que tu trouves le moyen de récupérer le chemin du fichier d'origine, et faire exactement pareil.

    regarde si par hasard dans ta config de PDFCreator tu pourrait pas lui demander de passer un deuxième argument au script, qui contiendrait le chemin du fichier source.
    Si tu arrive à faire ça, tu le récupèrera dans objArgs(1)

    +

  7. #7
    Membre confirmé Avatar de e040098k
    Inscrit en
    Avril 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 197
    Par défaut
    Pardon, objArgs(0) contient le chemin d'accès complet du fichier pdf crée.

    Je ne vois pas comment faire passer un nouvel argument objArgs(1) dans la config de PDF Creator ! Je débute !

    N'est-il pas possible de récupérer oblArgs dans une variable string et ainsi changer l'extension ?

  8. #8
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Bonjour.

    objArgs(0) est un argument passé au script, c'est donc une chaine de caractère.

    Si le fichier pdf est créé au même au même emplacement que le fichier doc, alors le code serait le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    str_a_changer = objArgs(0)
    'WScript.Echo str_a_changer
    str_a_changer = Left(str_a_changer, Len(str_a_changer) - 4) & ".doc"
    'WScript.Echo str_a_changer
     
    If MsgBox("Voulez vous supprimer le fichier source ?",vbQuestion + vbYesNo + vbSystemModal + 0,"Suppression du fichier source") = vbYes Then
     
    	'instanciation
    	Set FSO = CreateObject("Scripting.FileSystemObject")
    	'Suppression du fichier
    	Set Ftxt = fso.GetFile(str_a_changer) 'Fichier origine
    	Ftxt.delete
    	Else Wscript.Quit
    End if

    es-tu sur que le fichier source est forcément un .doc?
    cette technique est assez limitée, le mieux serait de pouvoir passer en paramètre le fichier source.

    Pour le moment ton script est appelé comme ça : Tonscript.vbs chemin_nouveau_fichier.pdf

    Il faudrait que tu puisses l'appeler comme ça : Tonscript.vbs chemin_nouveau_fichier.pdf chemin_fichier_source.doc

    dans ce cas Set objArgs = WScript.Arguments te donnerait :
    objArgs(0) = chemin_nouveau_fichier.pdf
    objArgs(1) = chemin_fichier_source.doc

    tu peux pas définir l'appel du script dans pdfcreator?

    +

Discussions similaires

  1. Une doc VBScript complète et compacte
    Par jérôme dans le forum ASP
    Réponses: 5
    Dernier message: 13/03/2013, 09h46
  2. [ASP][VBscript]Bouton et procédure
    Par Petitjean_85 dans le forum ASP
    Réponses: 2
    Dernier message: 09/06/2004, 14h57
  3. VBScript pour obtenir l'espace disque libre
    Par Archangelo dans le forum ASP
    Réponses: 2
    Dernier message: 05/05/2004, 12h33
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. ASP,JavaScript,VBScript
    Par Zazeglu dans le forum ASP
    Réponses: 6
    Dernier message: 01/09/2003, 10h56

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