Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1455 connectés 

  FORUM HardWare.fr
  Programmation

  Lancér Notepad à partir d'un programme C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lancér Notepad à partir d'un programme C++

n°52546
braisik
Montpel's c'est de la braise..
Posté le 13-08-2001 à 13:30:10  profilanswer
 

Salut les gars,
 
je suis en train de faire (pour le fun...) une appli Win32 et j'aimerai qu'à un moment donné cette appli ouvre un fichier Note Pad, que l'utilisateur puisse écrire dedans. Puis il faudrait que l'appli puisse commander la sauvegarde du .txt créé.
 
A vrai dire je n'ai aucune idée de la manière dont il faut que je m'y prenne. je crois que ca à voir avec les objets COM, mais bon...
 
Merci d'avance

mood
Publicité
Posté le 13-08-2001 à 13:30:10  profilanswer
 

n°52550
seblamb
Posté le 13-08-2001 à 13:52:53  profilanswer
 

Pour ouvrir un programme :
 ShellExecute
Pour ouvrir un programme et et pour que l'appli qui ouvre puisse le fermer :
 CreateProcess
 
Pour pouvoir faire executer des commandes par un application lancée par une autre application :
 Méthode propre : met il faut que l'application qui lance soit un "client COM" et que l'application commandée soit un " serveur COM" ( ce qui n'est pas le cas du NotePad)
 Methode bidouille :
Récuperer le Handle de la fenetre du notepad et lancer des évenement  du type WM_LBUTTONDOWN ...

n°52591
braisik
Montpel's c'est de la braise..
Posté le 13-08-2001 à 15:45:59  profilanswer
 

Où puis je trouver un example de utilisation de ces fonctions??

n°52593
seblamb
Posté le 13-08-2001 à 15:50:51  profilanswer
 

Dans l'aide sur les API Win32 ( fournis en général avec le compilateur)
ou sur msdn.microsoft.com

n°52596
barbarella
Posté le 13-08-2001 à 16:00:57  profilanswer
 

salut,
 
'ai retrouvé ce vieu truc en C d'un vieu prog
 
<pre>
void  manuel(HWND hwnd,char *fiche)
{
   char command[300];
   char chemin1[300];
   char chemin2[300];
   LPTSTR val;
 
  HANDLE Pross;
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
 
  memset(command,0,300);
  memset(chemin1,0,300);
  memset(chemin2,0,300);
 
  if(recherche_wordpad(chemin1) != 0)
  {
   GetFullPathName(fiche,MAX_PATH,chemin2,&val);
   strcpy(command,"wordpad.exe " );
   strcat(command,chemin2);
   ZeroMemory(&si,sizeof(STARTUPINFO));
   ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
   si.cb = sizeof(STARTUPINFO);
   CreateProcess(chemin1,command,NULL, NULL,FALSE,IDLE_PRIORITY_CLASS, NULL, NULL, &si, &pi);
   Pross = pi.hProcess;
 
   WaitForSingleObject(&Pross,INFINITE);
 
   CloseHandle( pi.hProcess );
   CloseHandle( pi.hThread );
  }
  else
  {
    wsprintf(command,"Wordpad.exe est introuvable \n Veuillez le copier dans le \n répertoire de LOG2PI.exe" );
    MessageBox(hwnd,command,"WORDPAD INTROUVABLE",MB_OK|MB_ICONASTERISK);
  }
  RedrawWindow(hwnd,NULL,NULL,RDW_ERASE | RDW_INVALIDATE);
  lulu(hwnd);
}
</pre>
 
fichie1 contient le nom du fichier.doc exemple. "manuel.doc"

n°52597
barbarella
Posté le 13-08-2001 à 16:03:03  profilanswer
 

ah et la fonction recherche wordpad ressemble a  
 
<PRE>
int recherche_wordpad(char *chemin)
{
  LPTSTR val;
 
  if(SearchPath("C:\\Program Files\\Windows NT\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
  {
   if(SearchPath("D:\\Program Files\\Windows NT\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
     {
    if(SearchPath("C:\\Program Files\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
    {
     if(SearchPath("D:\\Program Files\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
           {
             return(0); /* echec ... proposer de mettre Wordpad dans le repertoire */
           }
    }
     }
  }
  return(1);
}
 
</PRE>

 

[edtdd]--Message édité par barbarella--[/edtdd]

n°52611
braisik
Montpel&#039;s c&#039;est de la braise..
Posté le 13-08-2001 à 16:38:26  profilanswer
 

Je vous remercie de votre aide... :hello:

n°52684
rufo
Pas me confondre avec Lycos!
Posté le 13-08-2001 à 23:52:20  profilanswer
 

et plus simplement, Winexec(chemin d'acces, paramètres) ;

n°52694
barbarella
Posté le 14-08-2001 à 08:40:53  profilanswer
 

j'avoue ne pas avoir trop suivi l'actualité des API Windows.
 
Micro$ a réintégré winexec ? car elle n'avait été conservée dans l'API32 qu'a des  fins de compatibilité.

n°52720
rufo
Pas me confondre avec Lycos!
Posté le 14-08-2001 à 10:37:55  profilanswer
 

barbarella a écrit a écrit :

j'avoue ne pas avoir trop suivi l'actualité des API Windows.
 
Micro$ a réintégré winexec ? car elle n'avait été conservée dans l'API32 qu'a des  fins de compatibilité.  




 
ben oui :) Je m'en suis servi y'a 2 mois environ...

mood
Publicité
Posté le 14-08-2001 à 10:37:55  profilanswer
 

n°52722
robUx4
misc coder
Posté le 14-08-2001 à 10:45:15  profilanswer
 

barbarella a écrit a écrit :

ah et la fonction recherche wordpad ressemble a  
 
<PRE>
int recherche_wordpad(char *chemin)
{
  LPTSTR val;
 
  if(SearchPath("C:\\Program Files\\Windows NT\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
  {
   if(SearchPath("D:\\Program Files\\Windows NT\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
     {
    if(SearchPath("C:\\Program Files\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
    {
     if(SearchPath("D:\\Program Files\\Accessoires","wordpad.exe",NULL,MAX_PATH,chemin,&val) == 0)
           {
             return(0); /* echec ... proposer de mettre Wordpad dans le repertoire */
           }
    }
     }
  }
  return(1);
}
 
</PRE>  
 
 




 
Plus simple : chopper le contenu de la clef : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Lancér Notepad à partir d'un programme C++

 

Sujets relatifs
programme dos[php] Recuperer le programme TV
[VC++] lancer un fichier .chmProgramme pour ejecter un cd
[Access 97] : Creer une table à partir d'une requete UnionExporter une class template à partir d'un DLL avec Borland C++ Builder
[PHP] Calculer a partir de constantes ?Comment envoyer un mail a partir d'une application?
[C++] compilation de programme qtprogramme java pour creer des fichiers xsl
Plus de sujets relatifs à : Lancér Notepad à partir d'un programme C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR