私は、本質的に他のアプリケーションの前の画面に常に表示され、他のウィンドウにフォーカスしているときにバックグラウンドに落ちないタイマーウィンドウであるアプリケーションを開発しようとしています。たとえば、全画面表示のゲームをプレイしているときに、このタイマーをゲームに重ねて表示したいのですが、ウィンドウのタイマー ボタンをクリックしてもゲームが閉じません。
C#/java/C++ でこれを達成する方法はありますか?
ありがとう
私は、本質的に他のアプリケーションの前の画面に常に表示され、他のウィンドウにフォーカスしているときにバックグラウンドに落ちないタイマーウィンドウであるアプリケーションを開発しようとしています。たとえば、全画面表示のゲームをプレイしているときに、このタイマーをゲームに重ねて表示したいのですが、ウィンドウのタイマー ボタンをクリックしてもゲームが閉じません。
C#/java/C++ でこれを達成する方法はありますか?
ありがとう
C#: ウィンドウ (フォーム) の AlwaysOnTop プロパティを設定してみてください
Java: フレームまたはダイアログで setAlwaysOnTop(true) を呼び出します
あなたが達成したいことは 、C#でフォームのプロパティTopMost 、およびJava WindowでsetAlwaysOnTopで達成できると思います...
Windows 上の C++ では、SetWindowPos関数を呼び出し、引数としてHWND_TOPMOST属性を渡す必要があります。
アップデート
フルスクリーン モードのアプリケーションがあるので、Win32 API 関数SetForegroundWindowを使用してアプリケーションをフォアグラウンドに設定してみてください。
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
SetForegroundWindow(this.Handle);
それ以外の場合は、次のようなもので Win32 SetForegroundWindow関数を使用しないようにすることができます。
this.TopMost = true;
this.Activate();