Das Verhalten von SetForeGroundWindow_() ist normal. Zu viele Programmierer haben das missbraucht,
um unbedingt ihr Fenster in den Vordergrund zu bringen. Das stört den User aber, wenn sich dauernd
irgendwelche Fenster in den Vordergrund bringen. Deshalb wurde es in das Blinken geändert, so dass
der User darauf aufmerksam wird, aber nicht direkt gestört wird. Glaube das ist schon seit Win98 so, das
andere Prozesse sich nicht einfach selbst nach vorn bringen können. Nur der aktive Vordergrundprozess darf
seine Fenster nach vorn bringen.
Du kannst mal
SetForegroundWindowEx() probieren. Für 64bit musst Du aber die .l (Long) nach .i (Integer) ändern.
Dann gibt es noch
SetWindowPos_() mit dem Flag HWND_TOP: Places the window at the top of the Z order.
To use SetWindowPos to bring a window to the top, the process that owns the window must have SetForegroundWindow permission.