2012-06-12 4 views
2

Dans le passé, si nous voulons exécuter l'application office 2003,2007 en arrière-plan, nous pouvons définir la valeur de la propriété "Visible" à $ False. Mais nous ne pouvions pas faire une action même dans le bureau 2010, si je mets la valeur à Fasle $ ou « msoFalse », il va faire passer le message d'erreur, quelque chose comme:Comment masquer l'application Office 2010 à l'aide de PowerShell?

========== =================

paramètre d'exception "visible": "application (membre inconnu):. requête invalide Hiding la fenêtre d'application n'est pas

autorisé."

À la ligne: 1 Caractère: 1

  • $ app.Visible = "msoFalse"

Ou

Exception paramètre "Visible": « Impossible de convertir la valeur "False" pour "Microsoft.Office.Core.MsoTriState" Erreur:

"Distribution non valide de 'System.Boolean' à 'Microsoft.Office.Core.MsoTriState'" "

=============================

Si je mets la valeur de "visible" à "msoTrue", cela fonctionne bien et aucune erreur ne se produira.

Quelqu'un a-t-il une idée de ce que cela pourrait causer? Et comment activer l'application Office 2010 s'exécutant en arrière-plan? Au fait, j'utilise la même action sur le mot, Excel 2010 aucune erreur ne se produira, et cela fonctionne bien. Mais seulement en cours d'exécution sur Powerpoint 2010, j'ai reçu le message d'erreur.

Répondre

0

Il suffit d'utiliser le MsoTriState enumerator:

$app.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue 

ou

$app.visible = [Microsoft.Office.Core.MsoTriState]::msoFalse 
+0

merci pour la réponse. En utilisant $ app.visible = [Microsoft.Office.Core.MsoTriState] :: msoFalse toujours obtenir un message d'erreur. –

+0

Essayez de donner quelques conseils d'ici: http: //naimishpandya.wordpress.com/category/power-point-office-automation/Désolé, mais je ne peux pas convertir et tester maintenant pour PowerShell, mais je crois que cela peut fonctionner. –

+0

Désolé mauvais lien. Essayez ceci: http://naimishpandya.wordpress.com/2010/12/31/hide-power-point-application-window-in-net-office-automation/ –

0

je peux faire la même chose avec Office 2010. Par exemple, en montrant et Word cacher:

$word = New-Object -ComObject Word.Application 
$word.Visible=$true 
$word.Visible=$false 
+0

Ceci est valable pour Excel ou mot, mais pas pour powerpoint. –

+0

Oui, je peux montrer la fenêtre mais je ne peux pas la cacher, $ pp.Visible = [Microsoft.Office.Core.MsoTriState] :: msoFalse Paramètre d'exception "Visible": "Application (membre inconnu): Demande non valide. Masquer la fenêtre de l'application n'est pas autorisé. " –

+0

Oui. S'il vous plaît, lisez le commentaire dans ma réponse. –

1

CB. était correct en ce que vous pourriez utiliser MsoTriState mais ses options ne sont pas si évidentes à partir des liaisons powershell. Vous pouvez revoir la définition de la commande Ouvrir:

PS C:\Users\jidar\Documents> $doc.Presentations.Open 

OverloadDefinitions 
------------------- 
Presentation Open (string, MsoTriState, MsoTriState, MsoTriState) 

Toute tentative de suivre la définition ci-dessus, je suis en mesure d'utiliser les éléments suivants:

$doc.Presentations.Open($item, [Microsoft.Office.Core.MsoTriState]::msoFalse, [Microsoft.Office.Core.MsoTriState]::msoFalse, [Microsoft.Office.Core.MsoTriState]::msoFalse) 

Je ne creuse dans laquelle msoFalse était nécessaire ou pas, donc cela peut nécessiter une vérification.

Edit: Vous avez oublié de mentionner, cela a été testé sur Office 2016 (YMMV sur les autres versions)

Questions connexes