2010-12-10 23 views
0

Mon scénario: J'ai une exigence dans mon projet (C#) .J'ai besoin de donner à l'utilisateur seulement la capacité de lecture pour ma présentation powerpoint ouverte par mon application.Toutes les autres featues comme couper, copier, coller , enregistrer, saveas, imprimer, les menus contextuels de clic droit doivent être désactivés.Comment puis-je réaliser cela dans powerpoint en utilisant C#? quelqu'un peut-il étendre son aide?Désactiver les fonctionnalités PowerPoint en utilisant C#

+0

Je ne pense pas que cette exigence peut être implémentée. Même si vous prenez des mesures drastiques, telles que le service de pixels bruts à l'aide de Flash ou de Silverlight, rien n'empêche l'utilisateur de prendre des captures d'écran de votre présentation et d'exécuter un programme OCR sur les images résultantes. –

+0

Je voulais juste faire un suivi pour voir si le ci-dessous répond à votre question. –

Répondre

1

Pouvez-vous publier le ppt comme pps et utiliser ce fichier à la place?

+0

rien n'empêche l'utilisateur de lancer powerpoint d'abord, puis file-> open choisissez vos .pps et éditez-les au contenu de leur coeur. Enregistrer une présentation comme un Power Point ne signifie pas nécessairement que les utilisateurs ne peuvent pas couper, copier, coller, enregistrer, sauvegarder, imprimer, cliquer sur les menus contextuels etc ... –

+0

@Peter, vrai, mais je pensais que OP ouvrirait le ppt/pps en utilisant son programme et donc cacher l'emplacement du fichier. Sinon, si l'utilisateur peut physiquement accéder au fichier, cette question n'aura aucun sens. – Bolu

0

Vous devez utiliser le composant COM Powerpoint, un peu comme ce qui est décrit ici ... Using C# to display powerpoint Je ne l'ai utilisé les Word et Excel, et je dois dire qu'ils sont extrêmement faciles à utiliser.

Ou est que vous devez faire en lecture seule complètement, id suggèrent d'écrire votre propre analyseur ODF, ou d'enquêter dans le composant COM ODF, peut-être que cela pourrait fonctionner aussi bien :)

0

Une solution pourrait être d'utiliser quelque chose comme Aspose.Slides pour rendre les diapositives au format TIFF ou PDF, puis les afficher dans votre application.

+0

Les dernières versions de PowerPoint peuvent enregistrer directement au format PDF –

0

En supposant que vous utilisez Powerpoint Automation. Arrêtez l'objet PowerPoint.Application, puis passez en revue la propriété CommandBars et pour chaque barre de commande, définissez Visible sur false.

Cela devrait supprimer les barres de commandes au moins. Et il peut y avoir d'autres propriétés sur l'objet Application qui vous permettent de désactiver les menus contextuels, mais je n'ai jamais vraiment utilisé PowerPoint, donc je ne suis pas sûr de savoir lesquels.

Je ne pense pas qu'il y ait un bon moyen de désactiver l'impression, etc. Cependant, cet article de MS KB discute d'une manière hacky de rejeter n'importe quelle boîte de dialogue automatiquement, donc supposant que l'impression/sauvegarde etc. ouvrirait toujours un dialogue (dont je ne suis pas sûr) vous pourriez utiliser quelque chose de là: How To Dismiss a Dialog Box Displayed by an Office Application with Visual Basic

Tout le code VB est dans cet article, mais les idées seront similaires.

2

Exporter chaque diapositive au format JPG ou PNG et afficher ceux-ci: Slide.Export. Ce serait pour les vues de diapositives statiques. Si vous souhaitez conserver des animations, des transitions, des fonctionnalités vidéo/audio et de navigation pour votre PPT/PPTX, un convertisseur PowerPoint-en-Flash est un meilleur moyen de le faire. iSpring fait une version gratuite de son convertisseur: www.ispringfree.com.