1

C# (.net CF) で記述されたアプリケーションがあり、次の動作が必要です。1. アプリケーションは、デバイスの起動時にサーバーに接続するためにバックグラウンドで起動します。2. ユーザーがプログラムからアイコンをクリックすると、アプリケーション UI が表示されます。

4

2 に答える 2

0

少なくとも同じプロセスインスタンスでは、これを行う方法はありません。やりたいことを実行するための唯一の方法は、2つのプロセスを作成することです。1つ目は、サーバーに接続するUIのない​​プロセスです。2つ目は、実際のUIプロセスです。2つの間でデータを交換するには、プロセス間通信の手段(ソケットかもしれませんか?)を考案する必要があります。

于 2012-10-17T12:28:26.180 に答える
0

これは、通知 API を使用してアプリケーション コードで行うことができます。通知 API を使用すると、タスクバーまたはホーム画面 (デスクトップ Windows タスクバーの通知領域など) にアイコンを表示できます。アプリケーション自体は最小化 (非表示) で開始されます。ユーザーが通知アイコンをクリックすると、UI を直接表示するか、アプリを表示するリンク付きのバブルを表示できます。

http://www.christec.co.nz/blog/archives/104 (通知アイコン)も参照してください。

http://msdn.microsoft.com/en-us/library/aa446525.aspx (今日の画面アイコン)も参照してください。

編集:

オプション 3 で最も簡単なオプション: 通常、Windows モバイル アプリは 1 回だけ実行する必要があります (単一インスタンス)。そのために、MS Win32 C++ SmartDevice コードは、現在起動中のインスタンスと同じタイトルとクラスを持つ以前に起動されたウィンドウをチェックするコードを挿入します。その場合、C++ コードは、前のウィンドウのウィンドウ ハンドルと引数 SW_SHOWNORMAL を使用して ShowWindow を実行し、終了します。Program.cs WinMain() 関数で以前に開始されたインスタンスを確認できる Compact Framework でも同じことが実現できます。前のインスタンスが存在する場合は、見つかったインスタンスのハンドルで ShowWindow() を使用し、以降の実行を終了します。このように、アプリは最小化された状態で起動しますが、プログラム アイコン (または exe ファイル) をクリックして再度起動しようとすると、フォアグラウンドになります。C# では、FindWindow() および ShowWindow() PInvokes が必要です。

于 2012-10-18T07:17:54.677 に答える