3

Один из моих коллег теряет фокус на своем текущем окне каждые 5 минут или около того. Теперь мне интересно, какой процесс крадет фокус

Я нашел это классное приложение focus.exe, в котором будет отображаться текущее окно переднего плана - окно с фокусом.

Всякий раз, когда фокус был украден, программа печатала эту информацию:

9524:Could not open process | Wed Oct 18 14:57:15 2017
19304:Could not open process | Wed Oct 18 14:57:15 2017

Как вы можете видеть, фокус может быть украден из-за процесса, который не удалось открыть, поэтому эта информация мне не сильно помогает. Что помогает мне, так это то, что он все еще регистрирует PID процессов.

Поэтому я написал небольшой PowerShell Oneliner, который должен отлавливать каждый новый созданный процесс и выводить информацию о процессе:

$p = ps ; while (1) { ps | ? { $_.id -notin $p.Id } ; sleep -milliseconds 1 }

Но это не уловило ни одного из указанных PID focus.exe .

Как я могу поймать процессы, которые не могли быть запущены, но все еще получили PID?

1 ответ1

2

Хорошо, я понял, PID просто не был распознан, потому что PowerShell выложил так много, что он был перезаписан. поэтому , когда я только out-file «d новые процессы я мог видеть PID в журнале.

$p = ps ; while (1) { ps | ? { $_.id -notin $p.Id } | out-file C:\install\PID.txt -append ; sleep -milliseconds 1 }

процесс кражи фокуса был второстепенной задачей Avira. :)

редактировать: здесь решение без записи файла журнала. Мне просто нужно было обновить $p чтобы каждый новый процесс печатался только один раз.

$p = ps ; while (1) { ps | ? { $_.id -notin $p.Id } ; $p = ps ; sleep -milliseconds 1 }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .