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

  FORUM HardWare.fr
  Programmation

  [Visual C++] problème pour ouvrir un prog externe grace a shellexecute

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Visual C++] problème pour ouvrir un prog externe grace a shellexecute

n°15134
BlackWolf
Posté le 20-02-2001 à 19:17:10  profilanswer
 

Salut a tous alors tapez pas trop fort svp car je débute, bon mon visual c++ 6.0 (celui de pc team) est en anglais et pour ce qui est de lire des sites webs des articles et tout y a pas trop de problème mais par contre quand il s'agit d'un truc un poil technique comme le VC++ ... LOL ;-). (vous connaissez pas le canard vc++ nan bon ok c'est nul je me tais ;-) ).
 
Bon a en croire l'aide la fonction pour executer un prog externe est :
HINSTANCE ShellExecute(
    HWND hwnd,  
    LPCTSTR lpOperation,
    LPCTSTR lpFile,  
    LPCTSTR lpParameters,  
    LPCTSTR lpDirectory,
    INT nShowCmd
);
ok bon alors si j'ai bien compris p.ex si j'applique ca pour obtenir mon ping vers hardware.fr (vi je sais c un peu inutile comme prog vu que ca ferais la meme chose si j'ouvrais direct le prog windows enfin dos) mais c juste un exemple
 
HINSTANCE ShellExecute  
(  
HWND hWnd,
"open",
 "C:\\windows\\ping.exe",
 "www.hardware.fr",
 "C:\\windows",
 SW_SHOWNORMAL  
);  
(euh une 2ème question c juste de mettre 2 \ pask si j'en met qu'un il dit qui reconnait pas le caractère après le \ ce qui me fait croire que c une commande "système" (un peu comme pour avoir un ' en turbo pascal il falait mette ''), je me trompe ? )
et la il me met un beau : error C2059: syntax error : 'string' à la ligne du "open", j'ai fait quoi de faux ? Le reste est-il correct ?
 
Merci bcp svp répondez si vous avez la solution ;-)
@+
Black Wolf

 

--Message édité par BlackWolf--

mood
Publicité
Posté le 20-02-2001 à 19:17:10  profilanswer
 

n°15145
SoWhatIn22
Posté le 20-02-2001 à 20:30:23  profilanswer
 

Alors prenons les choses dans l'ordre...
 
1. oui, il faut mettre un double '\' pour que celui ci ne soit pas considéré comme un caractère de commande
 
2. HINSTANCE est un type... il faut donc que tu declares 1 variable de ce type. genre: HINSTANCE hinst = ShellExecute(...);
 
3. HWND est aussi un type. Qd tu appeles une fonction, tu ne fais jamais toto(int 3). Ben la c pareil. Donc c'est ShellExecute ( hWnd, ...)
et la hwnd, c le handle de fenetre de la fenetre de l'application que tu lances.
(essaye avec NULL, mais je sais plus si ca marche...)

n°15148
BlackWolf
Posté le 20-02-2001 à 21:09:25  profilanswer
 

merci de ta réponse mais quand je suis tes instructions j'ai 2 autres erreurs qui apparaissent : error C2065: 'ShellExecute' : undeclared identifier, faut ajouter un include ou une ressource pour pouvoir utiliser shell execute ? (y a rien dans l'aide sous shellexecute a ce propos ou alors j'ai pas vu)
 
et la deuxième mais ca je pense que tu pensais que je pourrais convertir moi meme ce qui n'est pas vraiment le cas (vi je sais je grille un peu les etapes de la prog, je ferais mieux de maitriser à 100% (impossible ou presque mais bien maitriser quoi) le c++ normal avant de faire du win mais c'était juste pour tester un truc)
error C2440: '=' : cannot convert from 'int' to 'struct HINSTANCE__ *'
pour la ligne du  HINSTANCE hwnd = ShellExecute(paramètres ...);
 
EDIT : le NULL comme 1er paramètre ca a pas l'air de poser problème
 
merci de ton aide
@+
Black Wolf

 

--Message édité par BlackWolf--

n°15152
gilou2
Posté le 20-02-2001 à 23:41:42  profilanswer
 

Il faut "caster" (ie faire une conversion) le résultats que retourne ShellExecute car ShellExecute retourne un int et hInst est de type HINSTANCE.
 
HINSTANCE hInst = (HINSTANCE) ShellExecute(hWnd, "open", "C:\\windows\\ping.exe", "www.hardware.fr", "C:\\windows", SW_SHOWNORMAL);
 
Je pense que tu devrais d'abord apprendre les bases de C++ et de C avant de t'aventurer comme ça dans la prog sous Windows.


---------------
Développeur de FreeVCR : http://freevcr.ifrance.com [:gilou2]
n°15159
BlackWolf
Posté le 21-02-2001 à 02:03:57  profilanswer
 

merci bcp, nan mais t'inquiètes j'ai quand meme des bases de c++, ainsi que de turbo pascal, d'assembleur, de delphi (+ que des bases pour ce dernier) , de visual basic et bien sur de basic ;-) . Mais c vrai que pour tout ce qui est du le prog objet et tout c vraiment des bases.
Bah merci beaucoup
 
@+
Black Wolf

n°15160
BlackWolf
Posté le 21-02-2001 à 02:19:25  profilanswer
 

Euh désolé d'encore faire c... le monde mais la j'ai un beau Shell execute : unknown identifier, ai-je loupé un include ? j'ai pourtant mis  
#include "shlwapi.h" pour tester mais ca change rien.
Help ;-) LOL
 
@+
Black Wolf

n°15186
seblamb
Posté le 21-02-2001 à 11:15:17  profilanswer
 

Moi ShellExecute est defini dans "ShellApi.h"

n°15207
BlackWolf
Posté le 21-02-2001 à 13:40:04  profilanswer
 

Merci bcp c clair que si je declare pas le bon header ca va pas aller ;-)
 
@+
Black Wolf


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

  [Visual C++] problème pour ouvrir un prog externe grace a shellexecute

 

Sujets relatifs
comment ouvrir et fermer un graveur (ou lecteur CD) logiciellement?Que peut on faire avec Visual Basic C++ ?
Meu veux pas s ouvrir mon vbscriptvisual basic : keyDown ?
visual basic : ya t'il un moyen de rechercher les ports libres ?Problème de connectivité Access2000 et VB
Windows : comment interdire de lancer 2 fois un prog (en C ou autre)[C/C++] mettre des #ifdef avec Visual Studio suivant OS
[VC++6.0] problème de socket .... bizarre ...[javascript + visual] modifier une variable java script
Plus de sujets relatifs à : [Visual C++] problème pour ouvrir un prog externe grace a shellexecute


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