У меня вопрос. Я хочу использовать winapi, чтобы скрыть процесс другого приложения. Я устанавливаю SetWinEventHook и получаю имя процесса, чтобы проверить имя с именем процесса, не разрешающим запуск.
public static void Main()
{
processQueue = new Queue();
processList = new List<ProcessDetails>();
// Listen for foreground changes across all processes/threads on current desktop...
IntPtr hhook = SetWinEventHook(EVENT_OBJECT_CREATE, EVENT_OBJECT_CREATE, IntPtr.Zero,
procDelegate, 0, 0, WINEVENT_OUTOFCONTEXT);
// MessageBox provides the necessary mesage loop that SetWinEventHook requires.
//MessageBox.Show("Tracking focus, close message box to exit.");
Application.Run(new Form1());
UnhookWinEvent(hhook);
}
скрыть процесс, я использую ShowWindowAsyn c, чтобы скрыть процесс
static void WinEventProc(IntPtr hWinEventHook, uint eventType,
IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime)
{
uint pid;
GetWindowThreadProcessId(hwnd, out pid);
p = Process.GetProcessById((int)pid);
if (p.ProcessName == "EXCEL")
{
ShowWindowAsync(hwnd, 0);
}...
}
Но пока я нахожу имя и скрыть оконный процесс, UI отображения приложения. Иногда я вижу, что пользовательский интерфейс отключается. Я хочу получить имя процесса быстрее или остановить несколько миллисекундных процессов другого приложения. Там в любом случае? Спасибо