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

  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec shellapi.h

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec shellapi.h

n°1399607
Thordax
Shop smart. Shop S-Mart !
Posté le 03-07-2006 à 16:16:53  profilanswer
 

J'ai un souci dans l'utilisation de la lib shellapi.h
 
En effet, j'ai besoin de shellexecute dans une de mes méthodes pour lancer une commande du shell.
 
J'ai donc fait comme suit :
 

Code :
  1. #include <ShellApi.h>
  2. ...
  3. //Dans la méthode :
  4. STARTUPINFO         siStartupInfo;
  5. PROCESS_INFORMATION piProcessInfo;
  6. memset(&siStartupInfo, 0, sizeof(siStartupInfo));
  7. memset(&piProcessInfo, 0, sizeof(piProcessInfo));
  8. siStartupInfo.cb = sizeof(siStartupInfo);
  9. if(CreateProcess("conv.bat",
  10.                            0,0,0,FALSE,
  11.                            CREATE_DEFAULT_ERROR_MODE,0,0,                             
  12.                            &siStartupInfo,&piProcessInfo) == FALSE)
  13. {
  14. // erreur
  15. }
  16. else
  17. // attente
  18.    WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
  19.    ::CloseHandle(piProcessInfo.hThread);
  20.    ::CloseHandle(piProcessInfo.hProcess);
  21. }


 
Premier probleme, Shellapi.h n'est pas reconnu sous Solaris, (code concu sous environnement dev c++/windows et que je dois adapter sous solaris 8/unix).
 
Deuxieme probleme, je demande a la méthode de lancer le fichier "conv.bat", ceci est un batch, cependant sous un shell de type solaris, existe t il des "batches" a l'égal des batches windows pour effectuer des commandes directement ?
 
J'espere que j'ai été suffisamment clair. N'hésitez pas à me poser des questions dans le cas contraire.


---------------
Atari 520 ST 256 Ko
mood
Publicité
Posté le 03-07-2006 à 16:16:53  profilanswer
 

n°1399966
Thordax
Shop smart. Shop S-Mart !
Posté le 04-07-2006 à 09:26:32  profilanswer
 

drapal


---------------
Atari 520 ST 256 Ko
n°1399992
_darkalt3_
Proctopathe
Posté le 04-07-2006 à 10:19:12  profilanswer
 

A priori je dirais que sous solaris, on a affaire à des scripts en .sh, et que les .bat ca ne se trouve que sous windows. Je peux cependant me gourrer.
 
D'autant plus que les outils qu'utiliseront ton batch seront fatalement liés à un OS, soit win, soit solaris.

n°1399999
Thordax
Shop smart. Shop S-Mart !
Posté le 04-07-2006 à 10:30:48  profilanswer
 

_darkalt3_ a écrit :

A priori je dirais que sous solaris, on a affaire à des scripts en .sh, et que les .bat ca ne se trouve que sous windows. Je peux cependant me gourrer.
 
D'autant plus que les outils qu'utiliseront ton batch seront fatalement liés à un OS, soit win, soit solaris.


Tout à fait, j'ai créé  un sh a la place du batch. Mais pour le probleme de shellapi ? une parade ?


---------------
Atari 520 ST 256 Ko
n°1400219
breizhbugs
Posté le 04-07-2006 à 14:01:33  profilanswer
 

Salut,
Si c'est juste pour lancer une commande du shell, peut etre que la fonction "system"' peut convenir?
 
Sinon solaris je suppose que c'est un peu comme linux, donc un fork() + un "exec" qqch dans le fils?

n°1400272
Thordax
Shop smart. Shop S-Mart !
Posté le 04-07-2006 à 14:22:47  profilanswer
 

Je ne sais pas si avec la commande system cela fonctionnera. En fait il faut bien attendre que chaque commande soit terminée avant d'en entamer une nouvelle.
 
Or la commande lancant le script est dans une boucle, et sous dos, j'avais ce fameux probleme de chevauchement des applis.  
 
En utilisant un fork, on pourrait s'assurer que cette éventualité peut être évitée ?


---------------
Atari 520 ST 256 Ko
n°1400352
breizhbugs
Posté le 04-07-2006 à 15:26:23  profilanswer
 

Ma foi j'en sais rien, je programme pas sous linux mais je suppose qu'il y a des mecanismes de synchronisation. le mieux est que tu lise la doc.
Fork duplique le processus courant l'original est le pere, l'autre le fils, et une fonction comme "exec..." permette de transformer le processus courant en un autre programme  (groso modo hein les explications!)
 
( http://www.linux-kheops.com/doc/ma [...] ecl.3.html )

n°1400361
Thordax
Shop smart. Shop S-Mart !
Posté le 04-07-2006 à 15:32:54  profilanswer
 

hmmmm je me demande s'il ne vaut mieux pas creuser au niveau des threads et de l'exclusion mutuelle ...


---------------
Atari 520 ST 256 Ko

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

  Probleme avec shellapi.h

 

Sujets relatifs
Page valide mais problème d'affichageProbleme avec req sql tte simple
Probleme sur petit programme de débutant[HTML / PHP] Problème de formulaire entre 2 pages
Problème validation W3C avec Tidy validatorProblème de condition sur un COUNT
Probleme pour envoyer un mail avec ExcelProblème Passage de Paramètres à une fonction Javascript
problème de variable 2Problème d'affichage d'images
Plus de sujets relatifs à : Probleme avec shellapi.h


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