I believe you have four options (in order of preference)
- Return
proc.MainModuledirectly and extract the necessary information from the caller.
public static ProcessModule GetProcessInfo (IntPtr hwnd)
{
uint pid = 0;
GetWindowThreadProcessId (hwnd, out pid);
Process proc = Process.GetProcessById ((int) pid);
return proc.MainModule;
}public class ProcessInformation
{
public string FileName;
public string ProcessName;
}
public static ProcessInformation GetProcessInfo(IntPtr hwnd)
{
uint pid = 0;
GetWindowThreadProcessId(hwnd, out pid);
Process proc = Process.GetProcessById((int)pid);
var pi = new ProcessInformation
{
proc.MainModule.FileName,
proc.MainModule.ProcessName
}
return pi;
}public static Tuple<string, string> GetProcessInfo(IntPtr hwnd)
{
uint pid = 0;
GetWindowThreadProcessId(hwnd, out pid);
Process proc = Process.GetProcessById((int)pid);
return return Tuple.Create(proc.MainModule.FileName,proc.MainModule.ProcessName);
}string GetProcessInfo(IntPtr hwnd, out fileName, out processName)