タスクスケジューラ起動時のWindows FormアプリがActiveにならない。


C#で開発しています。

管理者権限のWindows Formアプリケーションを作成しており、  
PC起動時にこのフォームアプリケーションを起動するようにタスクスケジューラに登録しています。  
(Windows10で管理者権限を必要とするアプリをスタートアップから起動できないという記載を見つけた為)

本題です。  
タスクスケジューラ起動時にアプリケーションをアクティブ状態にしたいのですが、  
this.Activate();  
や  
this.TopMost = true;  
を実施しても「Form.ActiveForm」がtrueになってくれません。

手動でダブルクリック起動時はActive状態になってくれます。

なにか方法はあるでしょうか？




以下のページに示されているような状態となっていることが考えられます。

>
> あるプロセスが別のプロセスのウィンドウをフォアグランドにするには、幾つかの条件が必要になりました。条件が満たされない場合は、ウィンドウがフォアグランドになる代わりに、タスクバーのアイコンが点滅します。  
>  [外部アプリケーションのウィンドウをアクティブにする -
> DOBON.NET](https://dobon.net/vb/dotnet/process/appactivate.html#section4)
>
> (注釈)上記条件の説明は以下のページです。  
>  [SetForegroundWindow - MSDN](https://msdn.microsoft.com/ja-
> jp/library/cc411039.aspx)

Win32APIを使用しても問題ないようでしたら、[AllowSetForegroundWindow -
MSDN](https://msdn.microsoft.com/ja-
jp/library/cc430255.aspx)か[BringWindowToTop -
MSDN](https://msdn.microsoft.com/ja-jp/library/cc410618.aspx)を使用してみてはいかがでしょうか。  
なお、[上記ページ](https://dobon.net/vb/dotnet/process/appactivate.html#section4)に説明・注意事項がありますので、事前によくお読みください。

備考:  
私が経験したパターンでは、Win32APIを使用したくなかったので、「タスクバーのアイコンが点滅」で満足していました。(メインプロセス→サブプロセスへ移行する際に、サブプロセスのフォームハンドルが取得できるまで待機してから、メインプロセスで表示しているフォームを非表示するという手法で解決しましたが、サブプロセス→メインプロセスの手順でアクティブにならない現象に遭遇し、妥協しました)

