Salutations Tout le monde et bonne année.
Je viens d'apprendre à propos de PowerShell il y a deux jours et cela montre. J'essaie de faire des conseils de ballon personnalisés et de ne pas faire de scripts PS1 distincts pour chaque événement possible. Ce dont j'avais besoin était un PS1 avec des paramètres. P>
J'ai trouvé ce bit de code sur ce site: GITUB INVOKE-BallOonTip P>
Et j'appelle l'appelez avec succès à partir de la fenêtre PS avec: p> Cependant, j'ai besoin d'appeler ceci à partir d'un VBScript. J'ai essayé: p> et p> et quelques autres avec des résultats insatisfaisants. Ces deux exemples sont les seuls qui ne montrent aucune erreur dans la fenêtre PS lorsqu'elle fonctionne. Avec ces deux exemples, la fenêtre PS affichera brièvement et n'indique pas de messages d'erreur, mais aucune pointe de ballon s'affiche. P> Je suis certain que c'est une question de syntaxe, mais je suis à court d'idées sur ce que cela pourrait être. Toute idées ou suggestions sont les bienvenues et appréciées. P> p>
3 Réponses :
Je pense que le problème est avec l'original invoke-balloontep.ps1 code> car il essaie d'utiliser le type
system.windows.forms.tooltipicon code> Type avant qu'il soit disponible (via Chargement
System.Windows.Forms code>). L'ajout plus tôt dans votre commande devrait corriger les choses (bien qu'elle semble un peu haçonneuse):
invoke-balloontip.ps1 code> fonctionne immédiatement dans le
PowerShell Ise Code> Comme l'assemblage correct est déjà chargé par défaut, mais pas dans
PowerShell.exe code> ou
vscode code>. P> p>
Vous êtes monsieur (madame?) Sont un génie! Cela fonctionnait parfaitement et j'apprécie vraiment l'explication. Maintenant sur le prochain numéro!
Pour le bien de quelqu'un d'autre qui vient ici avec un problème similaire, cela ne fonctionnera pas s'il y a des espaces dans votre message ou votre titre. Pour le réparer, j'ai entouré les cordes avec des guillemets simples:
Vous pouvez utiliser ce code.
Dim strTitle, srtContext, strCommang strTitle = "Title" srtContext = "Text" strCommang = "powershell.exe -executionpolicy bypass -command " & _ "[reflection.assembly]::loadwithpartialname('System.Windows.Forms')" & vbNewLine & _ "[reflection.assembly]::loadwithpartialname('System.Drawing')" & vbNewLine & _ "$notify = new-object system.windows.forms.notifyicon" & vbNewLine & _ "$notify.icon = [System.Drawing.SystemIcons]::Information" & vbNewLine & _ "$notify.visible = $true" & vbNewLine & _ "$notify.showballoontip(10,'" & strTitle & "','" & srtContext & "',[system.windows.forms.tooltipicon]::None)" Set objShell = CreateObject("Wscript.shell") objShell.Run strCommang, 0 Set objShell = Nothing
Peut vouloir utiliser VBCRLF au lieu de VBNewline. Promotic.eu/fr/pmdoc/scriptLangs/vbscript/ConSt.htm < / a>
Préparez les arguments
-Command code> avec
-NOexit code> pour que la fenêtre reste ouverte afin que vous puissiez voir des erreurs qui pourraient lancer:
"PowerShell -Noexit -Command" ". .. " code>
Merci pour ça, je garderai ça à l'esprit