Получение активного процесса в Compact Framework C # - PullRequest
1 голос
/ 20 декабря 2010

Я пытаюсь получить имя исполняемого файла, которому принадлежит окно, которое в данный момент находится в фокусе, от другого процесса. Цель программы - отслеживать, сколько времени вы проводите в каждой программе. Я попытался сделать это с GetWindowThreadProcessId (GetForegroundWindow ()) (оба в "coredll.dll"), а затем использовать Process.GetProcessById () для этого, но объект процесса, который я всегда получаю "" для Process.StartInfo.FileName. Кажется, он не работает должным образом в Windows Mobile. Кто-нибудь знает, как это можно сделать? Спасибо

Ответы [ 2 ]

0 голосов
/ 31 июля 2012

Я использую библиотеку OpenNETCF:

string appName = string.Format("{0}.exe",    Assembly.GetExecutingAssembly().GetName().Name.ToLower());
var processes = ProcessEntry.GetProcesses().Where(p => appName.Equals(p.ExeFile.ToLower()));

и текущий процесс находится в процессе

0 голосов
/ 21 декабря 2010

Если GetwindowThreadProcessId завершается с ошибкой, возможно, получение всех процессов и вызов EnumWindows для каждого процесса вернет окно с тем же дескриптором, что и у окна переднего плана.

...