1

Je travaille sur une application de type gestion de licence qui copie un fichier zip protégé par mot de passe à la racine de l'application. L'utilisateur clique sur un bouton "Open Presentation" et le fichier compressé est extrait dans le dossier racine, puis j'utilise Office interop pour ouvrir le fichier dans Powerpoint. À ce stade, à ma grande surprise, je suis en mesure de supprimer le fichier extrait qui est actuellement ouvert dans l'application Powerpoint. J'avais supposé qu'essayer de supprimer le fichier échouerait car le fichier est toujours ouvert dans Powerpoint.Le fichier Powerpoint peut être supprimé sans conséquence

Pourquoi me permet-il de supprimer le fichier? Le fichier est-il copié en quelque sorte dans un dossier temporaire, puis ouvert dans PowerPoint? Puis-je avancer avec l'application en me basant sur cette possibilité de supprimer le fichier dès qu'il est ouvert dans Powerpoint? Ce serait optimal car cela permet de s'assurer que le fichier ne peut pas être copié (j'utilise aussi le xml pour arrêter "Save As" et "Save" d'apparaître dans le Powerpoint).

Répondre

3

De nombreuses applications ne conservent pas le fichier ouvert après l'avoir chargé en mémoire. C'est peut-être le cas avec powerpoint aussi. En outre, certains systèmes d'exploitation vous permettent de supprimer des fichiers ouverts à moins qu'ils ne soient spécifiquement verrouillés. De nombreux systèmes Unix présentent un tel comportement. En ce qui vous concerne, qu'est-ce qui empêcherait l'utilisateur d'enregistrer simplement le fichier Power Point dans un emplacement différent?

En outre, dans le point de puissance future pourrait maintenir le dossier ouvert après avoir lu dans la mémoire

+0

Ce qui arrête l'utilisateur est le fait que la seule façon de décompresser le fichier sécurisé est d'exécuter l'application que j'ai produite. Dès que le fichier est décompressé, il est ouvert dans Powerpoint puis le fichier décompressé est immédiatement supprimé, ce qui donne à l'utilisateur une très petite fenêtre pour trouver le fichier et le copier (très faible risque pour 90% des utilisateurs). Votre dernière instruction soulève une nouvelle question: Si je référence une version spécifique de l'interopérabilité Office Powerpoint, sera-t-elle affectée par des versions futures ou antérieures de Powerpoint sur la machine de l'utilisateur? –

+0

Mais l'utilisateur peut simplement utiliser Power Point pour enregistrer votre fichier. En ce qui concerne votre dernière question, je le dis probablement. La spécification Office COM ne mentionne rien sur la sémantique de l'opération "File Open". Donc, Microsoft est libre d'agir de toute façon. La version interop est mappée à la version COM. Habituellement, la même application gère les appels interop pour toutes les versions. La version affecte seulement les méthodes et les paramètres qui sont exposés par certains intefaces. Dans de rares cas, le comportement de l'application peut également dépendre de la version de l'interface que vous utilisez, mais cela peut aller jusqu'à M $. – Vlad

+0

J'utilise la capacité d'Office 2007 à désactiver les éléments de menu pour empêcher l'utilisateur d'avoir des options pour "Enregistrer" ou "Enregistrer sous". Merci pour les informations COM. –

0

Même si cette version spécifique de PowerPoint ne manque pas quand ce fichier spécifique est supprimé alors qu'il est ouvert, Je ne compterais pas sur ce comportement pour les versions futures (ou passées) de Powerpoint, ni pour d'autres (plus grand contenant des liens OLE?). Rappelez-vous que tout ce que vous utilisez est essentiellement documenté par "implémentation de référence". Pour être franc, votre application ressemble à une solution technique agaçante à un problème social.