I cannot seem to find a way to determine whether a Process has a user interface e.g. a window, which is visible to the user?
Process
EnumWindows
GetWindowThreadProcessId
IsWindowVisible
IsIconic