J'ai un souci dans l'utilisation de la lib shellapi.h, pour l'adaptation de la commande Waitforsingleobject sous l'OS Solaris 8.

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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <ShellApi.h>
...
//Dans la méthode :
 
STARTUPINFO         siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
 
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
if(CreateProcess("conv.bat",
                           0,0,0,FALSE,
                           CREATE_DEFAULT_ERROR_MODE,0,0,                              
                           &siStartupInfo,&piProcessInfo) == FALSE)
{
// erreur
}
else
{  // attente
   WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
 
   ::CloseHandle(piProcessInfo.hThread);
   ::CloseHandle(piProcessInfo.hProcess);
}
Premier probleme :

Shellapi.h n'est pas reconnu sous Solaris, (code conçu sous environnement dev c++/windows). Existe-t-il une librairie similaire sur le nouvel environnement ?

Deuxieme probleme :

Le fichier "conv.bat" est un batch, donc utilisable sous DOS.

Sous un shell de type solaris, comment rédiger un shell bash de telle sorte que je lance une commande tethereal ? (car c'est ce que fait le batch en question)

Mon idée, créer un toto.sh du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#!/bin/bash
tethereal -r temp.pcap -d udp.port==1234,h245 -V -l -T text
Est-ce possible de cette manière ? Dans ces cas la, suffit il juste de faire un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
createprocess("toto.sh",
J'espere que j'ai été suffisamment clair. N'hésitez pas à me poser des questions dans le cas contraire.