Ho un problema con l’ottenimento di un PID specifico di un processo, il problema con questo processo è che si tratta di un processo nascosto, che non viene mostrato su Task Manager / PowerShell, completamente nascosto.
quello che ho fatto è l’handle della finestra principale di questo processo, la domanda è, come posso ottenere il pid di esso.
quello che sto cercando di fare è leggere la memoria di questo processo e modificarlo, ma non posso farlo senza il PID credo (dal momento che ho bisogno di ottenere il suo indirizzo di base in memoria).
Quindi, se qualcuno ha qualche soluzione o qualcosa per me, sarà fantastico.
PS: questo processo non viene mostrato in Process.GetProcesses ().
ty!
È ansible utilizzare la seguente API di Windows:
[DllImport("user32.dll", SetLastError=true)] static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId);
Si passa in HWND e si utilizza il parametro out per restituire il PID.
Puoi leggere di più su questa funzione qui su MSDN – http://msdn.microsoft.com/en-us/library/windows/desktop/ms633522(v=vs.85).aspx
Dovrai usare P / invocare con l’API di Windows.
Dichiara una funzione nella tua class come
[DllImport("User32.dll")] static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
e poi chiamalo nella tua class.
Vedi PInvoke .