Есть небольшая проблема.Одна вызывающая программа может иметь несколько HWND из нескольких окон.И нет, я боюсь, что нет способа получить PID вызывающей программы или что-то подобное.Нет способа получить «родительский» процесс вашего процесса, по крайней мере, в Windows.Вы ничего не можете сделать, не зная имени вызывающей функции, тогда вы можете найти ее PID и получить список ее активных окон.
Я предлагаю работать в обратном направлении, передавая HWND вызывающего процесса в качестве командыПараметр линии к вашей программе.Например, «Запустите YourProgram.exe / hwnd: 1234»
РЕДАКТИРОВАТЬ: Я только что обнаружил, что есть способ, но просто не поставляется Windows.http://www.codeproject.com/KB/threads/ParentPID.aspx.Но есть одна оговорка.PID генерируются и перерабатываются постоянно, поэтому, если вы получите PID, нет гарантии, что его родитель не умер (сбой или завершение процесса) и PID используется чем-то другим.Тогда взаимодействие с предполагаемым родительским процессом станет очень опасным и нестабильным.Так что да, вы можете сделать это.Но будьте осторожны, если родительский сбой и вы пытаетесь получить к нему доступ через его старый PID, вы столкнетесь с серьезными проблемами, особенно если вы случайно внедрили что-то, скажем, в хост службы Windows.