Das geht mit einem ShellHook der CreateProcess hooked.
Was ist bei dir "Programm"? Der Prozess oder ein Fenster zu einem Prozess? Das fenster mit dem der Benutzer gérade arbeitet bekommst du mit
GetForegroundWindow.
Ich weiß nicht, wie viel Erfahrung du schon hast. Aber deine sehr schwammige Formulierung, was du eiegtnlich willst und die Tatsache, dass du anscheinend auch nicht mit den Begriffen vertraut bist, läßt daraufschließen, dass du noch nicht allzu vile Ahnung von Systemprogrammierung hast.