0

私は 3 つの異なるサイトに ping を実行するプログラムを作成しており、ユーザーにインターネットがあるかどうかを通知します。

私はこのプログラムを機能させる上で多くの成功を収めてきましたが、これはコミュニティの素晴らしさのおかげでもあります。

私のコードはネイティブ C++ で書かれています。これは、言語を最もよく知っているためです。私が望んでいるのは、コミュニティが、.net プログラミングを使用せずに私のプログラムをシステム トレイで実行する方法を教えてくれることです。

Visual Studio 2008 を使用しており、セットアップ プロジェクトを使用してコードをインストールしました。皆さんが私に見せてくれるどんな助けにも感謝します。ありがとう。

4

3 に答える 3

2

ネイティブ C++ systray アプリケーションは、Win32 Shell API Shell_NotifyIconに基づいています。

アイコンを sys トレイに追加するには、次のようなものが必要です。

memset(&iconData, 0, sizeof(NOTIFYICONDATA));
iconData.hIcon = ::LoadIcon(hResourceModule, MAKEINTRESOURCE(IDR_MAINFRAME));
iconData.hIcon = ::LoadIcon(hResourceModule, MAKEINTRESOURCE(IDI_ICON));
iconData.cbSize = sizeof(NOTIFYICONDATA);
iconData.uFlags = NIF_ICON | NIF_TIP;
iconData.hWnd = this->m_hWnd;
strncpy(iconData.szTip, programTitle_buffer, programTitle_length);
if(iconData.hIcon)
{
  Shell_NotifyIcon(NIM_ADD, &iconData);
}

アイコンを削除するには、次のようにします。

Shell_NotifyIcon(NIM_DELETE, &iconData);
于 2010-11-09T00:20:58.523 に答える
1

Shell_NotifyIcon関数を使用します。これは、Win32 ドキュメントよりもチュートリアルのようなアプローチの記事です。

于 2010-11-09T00:06:25.103 に答える
0

C++ で実行する場合は、Zildjohn01 で述べたように、Windows の低レベル API を使用する必要があります。それほど難しくありません。この古いコード プロジェクトの投稿をいつでも見ることができます: http://www.codeproject.com/kb/shell/systemtray.aspx

于 2010-11-09T00:10:20.043 に答える