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

 


Dernière réponse
Sujet : [Visual C++] problème pour ouvrir un prog externe grace a shellexecute
BlackWolf Merci bcp c clair que si je declare pas le bon header ca va pas aller ;-)
 
@+
Black Wolf

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
BlackWolf Merci bcp c clair que si je declare pas le bon header ca va pas aller ;-)
 
@+
Black Wolf
seblamb Moi ShellExecute est defini dans "ShellApi.h"
BlackWolf 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
BlackWolf 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
gilou2 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.
BlackWolf 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--

SoWhatIn22 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...)
BlackWolf 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--


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