2010-04-30 7 views
1

J'ai un programme console écrit en C++. Maintenant, je veux ouvrir un document manuel (au format .txt ou .pdf) chaque fois qu'un utilisateur du programme tape 'manuel' dans la console. Comment puis-je faire ceci? Tous les liens vers un didacticiel seraient utiles.MerciOuverture d'un document par programmation en C++

+3

Sur quelle plateforme? –

+0

En outre, prévoyez-vous d'écrire le visualiseur vous-même, ou allez-vous ouvrir une visionneuse tierce pour afficher le contenu du document.Quelques détails supplémentaires pourraient vous aider à obtenir la réponse que vous recherchez. –

+0

@ James McNellis Je l'ai programmé sur Windows mais je voudrais aussi l'exécuter sur des machines Linux. Le code peut-il être indépendant de la plateforme? Où vous juste changez le paramètre d'application puis recompilez la source. @Rob Je prévois de l'ouvrir en utilisant notepad sur windows ou gedit sur linux. – James

Répondre

2

En supposant que vous êtes sous Windows, vous recherchez la fonction ShellExecute. (Utilisez le "ouvert" verbe)

4

Essayez de compiler ce code (Open.cpp) à Open.exe Ensuite, vous pouvez l'exécuter avec (par exemple), ces paramètres:

Ouvrez "C: \ votre file.doc"

Open "C: \ votre file.exe"

ouvrir le bloc-notes

#include "windows.h" 

int main(int argc, char *argv[]) 
{ 
    ShellExecute(GetDesktopWindow(), "open", argv[1], NULL, NULL, SW_SHOWNORMAL); 
} 

Explication du programme:

  1. Vous devriez d'abord inclure les fenêtres bibliothèque (windows.h) pour obtenir ShellExecute et la fonction GetDesktopWindow.
  2. ShellExecute est la fonction d'exécuter le fichier avec le paramètre argv [1] qui est le chemin du fichier à ouvrir
  3. Une autre option pour lpOperation arguments au lieu de "open" est NULL. "explore" et "find" sont également les options, mais ils ne sont pas pour l'ouverture d'un fichier.
  4. SW_SHOWNORMAL est la constante de montrer le programme en mode normal (non minimiser ou maximiser)
+0

N'utiliseriez-vous pas 'start' comme votre' open'? – Blindy

+0

Oui, c'est la même chose, mais nous voulons ouvrir un programme/fichier sans 'dependency' pour utiliser la commande' start' – Zai

1

En standard, la plate-forme indépendante, C et C++, vous pouvez utiliser la fonction system pour transmettre le nom de une application pour ouvrir vos fichiers.

Par exemple, l'utilisation de Windows:

const char text_filename[] = "example.txt"; 
const char text_application[] = "notepad.exe"; 

std::string system_str; 
system_str = text_application; 
system_str += " "; 
system_str += text_filename; 

// Execute the application 
system(system_str.c_str()); 

Le texte envoyé à la fonction systemest propre à la plateforme.

+0

Merci, ça marche! Il échoue lorsque j'essaie d'ouvrir un fichier pdf en utilisant Adobe. Il est dit "acrord32.exe n'est pas reconnu comme un fichier de commande interne ou externe, exécutable ou par programme". – James

1

managé C++ est très facile

System :: Diagnostics :: Process :: Démarrer (chemin);

fait!

Questions connexes