Bonjour,
Je suis sur l'adaptation d'un programme de windows vers unix (solaris).
Dans la version windows il y'a
dans la version unix j'ai remplacé par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if (CreateProcessW(NULL, (LPWSTR)tcarCommand, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi)) { Sleep(10000); //sleep utilisé car le WaitForInputHandle ne semble pas avoir d'effet switch (WaitForInputIdle(pi.hProcess, FRAME_TIMEOUT)) { case 0 : pContext->processId = pi.dwProcessId; pContext->hProcess = pi.hProcess; pContext->hThread = pi.hThread;
J'arrive donc à lancer l'application, mais comment puis (si c'est possible sous unix récupérer le handle sur le process et sur la thread? Je n'ai ici que le PID.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 swprintf(tcarCommand,256, L"%s /progid:FrameMaker.Session-%s", tcarPath, (pContext->connectToSession ? L"Connect" : L"New")); switch(pid=fork()){ case (pid_t)-1: fprintf(stderr, "Error: Can't duplicate process (%d)\n",errno); exit(-1); break; case (pid_t)0: if(execl(tcarCommand,"FrameMaker",NULL)==-1){ fprintf(stderr, "Error: Can't create process '%s' (%d)\n", tcarCommand, errno); }
merci d'avance
Partager