まず、私は .NET を使ったプログラミングの経験がないので、これはかなり厄介な質問になる可能性があります...
ゲーム内のポップアップをユーザーに表示する xFire のようなアプリケーションを構築できるかどうか疑問に思っています。
主要なアプリケーションにフォーカスがあるため、アプリケーションはどのようにメッセージ/ポップアップを表示できますか? プライマリ アプリケーションはアクセスなどを許可する必要がありますか?
乾杯!
まず、私は .NET を使ったプログラミングの経験がないので、これはかなり厄介な質問になる可能性があります...
ゲーム内のポップアップをユーザーに表示する xFire のようなアプリケーションを構築できるかどうか疑問に思っています。
主要なアプリケーションにフォーカスがあるため、アプリケーションはどのようにメッセージ/ポップアップを表示できますか? プライマリ アプリケーションはアクセスなどを許可する必要がありますか?
乾杯!
を探しているようですNotifyIcon
。Windows と同じように小さなポップアップが表示されます。例は少し長いですが、ドキュメントは理解に役立つはずです。
using System;
using System.Drawing;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.NotifyIcon notifyIcon1;
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.ComponentModel.IContainer components;
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
public Form1()
{
this.components = new System.ComponentModel.Container();
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
// Initialize contextMenu1
this.contextMenu1.MenuItems.AddRange(
new System.Windows.Forms.MenuItem[] {this.menuItem1});
// Initialize menuItem1
this.menuItem1.Index = 0;
this.menuItem1.Text = "E&xit";
this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
// Set up how the form should be displayed.
this.ClientSize = new System.Drawing.Size(292, 266);
this.Text = "Notify Icon Example";
// Create the NotifyIcon.
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
// The Icon property sets the icon that will appear
// in the systray for this application.
notifyIcon1.Icon = new Icon("appicon.ico");
// The ContextMenu property sets the menu that will
// appear when the systray icon is right clicked.
notifyIcon1.ContextMenu = this.contextMenu1;
// The Text property sets the text that will be displayed,
// in a tooltip, when the mouse hovers over the systray icon.
notifyIcon1.Text = "Form1 (NotifyIcon example)";
notifyIcon1.Visible = true;
// Handle the DoubleClick event to activate the form.
notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);
}
protected override void Dispose( bool disposing )
{
// Clean up any components being used.
if( disposing )
if (components != null)
components.Dispose();
base.Dispose( disposing );
}
private void notifyIcon1_DoubleClick(object Sender, EventArgs e)
{
// Show the form when the user double clicks on the notify icon.
// Set the WindowState to normal if the form is minimized.
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;
// Activate the form.
this.Activate();
}
private void menuItem1_Click(object Sender, EventArgs e) {
// Close the form, which closes the application.
this.Close();
}
}
MSDNを参照してください。
「プライマリ アプリケーションにフォーカスがあるため、アプリケーションはどのようにメッセージ/ポップアップを表示できますか?プライマリ アプリケーションはアクセスなどを許可する必要がありますか?」
アプリケーションは、自分自身を「TopMost」として設定できます。これは、TopMost ではない他の「通常の」アプリケーションの前に表示されることを意味します。適切に動作する通知は、現在のアプリケーションからフォーカスを奪うことなく表示されます (これは通常、ShowWindow() API と SW_SHOWNA フラグで実現されます)。これには、現在アクティブなアプリケーションからの許可は必要ありません。
TaskbarNotifier を見てみましょう。これは、C# のスキン可能な MSN Messenger のようなポップアップであり、現在は VB.NET にもあります。