anche se in realta il problema e' un po cambiato ora
posto il codice che e' meglio
int main (int argc, char *argv[]) {
HANDLE mutex;
BOOL proc;
STARTUPINFO s;
PROCESS_INFORMATION p;
DWORD exit_code;
memset(&s,0,sizeof(s));
memset(&p,0,sizeof(p));
s.cb=sizeof(s);
int OK=1;
if (argc==1) {
proc = CreateProcess("prova_cancellare.exe","prova_cancel lare.exe son",
NULL,
NULL,
TRUE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&s,
&p);
if (proc==0) printf("Chiamata fallita\n");
mutex = CreateMutex (NULL,TRUE,"mutex");
if (mutex==NULL) {printf("\nErrore creazione mutex");system("PAUSE");ExitProcess(0);}
printf("\nMutex nel padre: %d ",mutex);
//WaitForSingleObject(mutex,INFINITE);
}
else {
mutex = OpenMutex(MUTEX_ALL_ACCESS,FALSE,"mutex");
if (mutex==NULL) {printf("\nErrore apertura mutex\n");system("PAUSE");ExitProcess(0);}
printf("\nMutex nel figlio: %d \n",mutex);
system("PAUSE");
}
}
il problema e' che non riesco a far aprire il mutex (creato nel primo processo) all'altro processo, che non lo vede

Rispondi quotando