Bonsoir a tous , je m'arrache les cheveux depuis deux jour j'utilise la fonction
CreateProcess pour "creer" mon processus ici "cmd.exe", et ensuite j'utilise
OpenProcess pour récuperer a partir du PID le handle de mon process "cmd.exe".
Mes fonctions on l'air de s'executer sans erreur et pourtant lorsque j'utilise ReadConsole GetLastError me renvoi code erreur (6) (ce qui signife handle invalide) n'etant pas, je l'admet un spécialiste des differents handle et surtout un débutant j'avoue que je seche et demande votre aide si il vous plait . voici le bout de code.

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
 
#include <stdio.h>
#include<stdlib.h>
#include<windows.h>
 
int main(int argc, char *argv[])
{
 
HWND  handle;
 
STARTUPINFO si;
PROCESS_INFORMATION pi; 
 
 
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
 
 
 
BOOL f1;
DWORD b6;
char *tp[1000]={0};
DWORD PID;
 
 
 
f1=CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
 
if(f1==0)
{
printf( "CreateProcess failed (%d).\n\n\n", GetLastError() );
 
}
 
printf("%ld\n",pi.dwProcessId);
 
handle=OpenProcess(READ_CONTROL ,TRUE,pi.dwProcessId);
 
 
 
if(handle==NULL)
{
printf("OpenProcess erreur (%ld)\n",GetLastError());
}
else
{
printf("%ld\n",handle);
}
 
f1=ReadFile(handle,&tp,sizeof(tp),&b6,NULL);
 
if(f1)
{
printf("Good\n");
}
else
{
printf(" Erreur ReadFile (%ld)\n",GetLastError());
}
 
 
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
 
 
  system("PAUSE>0");	
  return 0;
}
MERCI par avance.