バックグラウンドで起動したいプログラムがあり、後で表示したいときに、ショートカットリンクまたは実行可能ファイルをクリックして、アプリケーションを起動させることができます。これはWindowsMobileエミュレーターで機能するようになりましたが、実際にデバイスで試してみると、アプリは最小化されますが、組み込みのタスクマネージャープログラムに移動して[切り替え]をクリックしない限り、元に戻すことはできません。エミュレーターとデバイスの両方がWM6.1.4を実行しています。スマート最小化に最小化コントロールボックス(「X」)を使用してもアプリは最小化されますが、.exeファイルをクリックしてもアプリを元に戻すことができません。
何かご意見は?助けに感謝します!
編集:わかりました、それで私はおそらくいくつかの重要な情報を省略しました。これはマルチスレッドプログラムです。スレッドを開始せず、メインUIスレッドを実行させるだけの場合、プログラムは最小化して正常に復元します。実行する必要のあるバックグラウンドスレッドを開始するとすぐに、プログラムは最小化されますが、復元されません。この場合、SW_MINIMIZE以外のものを使用する必要がありますか?
プログラムを最小化する私のコードは次のとおりです。
private void HideForm()
{
if (this.InvokeRequired)
{
HideFormCallback del = new HideFormCallback(HideForm);
this.Invoke(del);
}
else
ShowWindow(this.Handle, SW_MINIMIZE);
}
private const int SW_MINIMIZE = 6;
[DllImport("coredll.dll")]
private static extern bool ShowWindow(IntPtr wHnd, int cmdShow);