タスクトレイのアイコンをダブルクリックでFormをアクティブにしたい(他のアプリなどが存在しても上に表示したい)
のですが
うまくいきません。

NotifyIconのダブルクリックイベントでform.BringToFrontをしても 上に行かないし
.Netは別のプロセスのFormをいじれないからダメかなと思い
Win32APIのShowWindow,SetForegroundWindowを使用すると上にはなるのですが
アプリ@.NETを最大化してから最小化し、タスクトレイをダブルクリックして復元しようとしても
通常状態のウィンドウで復元されてしまいます(最大化した状態で上にきてほしい)

[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
private static extern int ShowWindow(IntPtr hWnd, int nCmdShow);

[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
private static extern bool SetForegroundWindow( IntPtr hWnd);

//処理
ShowWindow(form.Handle, SW_RESTORE);//SW_RESTORE=9
SetForegroundWindow(form.Handle);
そもそもWin32APIを使わないで何とかしたいのですが・・
何か良い方法はありませんでしょうか?