Windows C#アプリケーションを使用して、他のすべてのアプリケーションの前面にフォームを強制的に押し込む強力な方法は何ですか?真フォームを強制的に前面に移動させる強力な方法は何ですか?
答えて
利用SetWindowsPos()API関数ここ
設定Form.TopMostは力強く、タスクバーでアプリケーションウィンドウのアイコンをクリックして、ユーザーを強制します。
既にTopmost = trueを使用して試してみました。しかし、まだいくつかのサードパーティのアプリケーションがこのフォームをオーバーライドしているため、このフォームが遅れています。 このフォームを使用する目的は、ユーザーが他のアプリケーションを表示するのをブロックすることです。 – Anuya
さて、フォームをオーバーライドする他のアプリについてのそのステートメントへの応答として。おそらく、 "Topmost = true"をオーバーライドする方法や "this.bringToFront();をオーバーライドする方法" C#で...おそらく、これらのサードパーティのアプリケーションがそれを行う方法です。 私のロジックは...あなたと同じようにすれば、フォームを前面に持っていくことができるはずです。自分のフォームも上書きするからです。 –
this.BringToFront();
いいです。
これはコード化する必要があります(マークアップの意味)。 –
リマインダーに感謝します。完了しました。 –
は私のために働いていたコードです:
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace LicenseManager {
public static class WinApi {
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
static private IntPtr HWND_TOPMOST = new IntPtr(-1);
private const uint SWP_NOSIZE = 0x0001;
private const uint SWP_NOMOVE = 0x0002;
static public void MakeTopMost(Form f) {
SetWindowPos(f.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
}
}
明らかに、名前空間の名前を変更します。 –
これは、実際に指のかぶりに応答するのではなく、書かれた質問に実際に答える数少ない回答の1つと思われる。 –
は有用である可能性があるこれについてのいくつかのより多くの情報。私は、form.loadイベントハンドラの "MakeTopMost"関数を呼び出すことで、私のwinformsアプリケーションを最上位にするためにCharles Jenkinsの答えを使用しました。 winformsアプリケーションがMSIインストールで起動され、Windowsインストーラのプログレスバーが上に表示されるので、この関数が必要でした。
ただし、メインフォームを表示する他のサブフォームの上部にメインフォームを配置します。これを回避するには、Form.shownイベントハンドラで関数MakeWindowNormalを呼び出して、メインフォームを通常のウィンドウとして戻し、ロードしてアクティブ化したWindowsインストーラの進行状況バーの前に表示します(イベントの場合はhttp://msdn.microsoft.com/en-us/library/86faxx0d(v=vs.110).aspxを参照)。注文)。これにより、サブフォーム(およびユーザーが移動する場合は他のウィンドウ)がメインフォームの前に移動できるようになります。
static public void MakeWindowNormal(Form f)
{
SetWindowPos(f.Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
- 1. スクロールバーを強制的に下に移動
- 2. 強制的にスクロールバーを下に移動
- 3. HTMLリンクを強制的に強制する方法は?
- 4. QGLWidgetに画面を強制的に更新させる方法は?
- 5. フォームを強制的に画面に表示する
- 6. anglejsフォームで強制的にダンプする
- 7. Windowsフォームすべての画面を強制的に強制して、フォームを上に置きます
- 8. ブートストラップ静的navbar強制的に小さな画面で拡大
- 9. 強制的にgitでファイルにプルを強制するには?
- 10. なぜmp3を強制的にクラッシュさせるのですか?
- 11. フォームが表示される前にコンポーネントにフォーカスを強制する方法
- 12. UIViewにサブビューを強制的にリリースさせる方法はありますか?
- 13. 強制的にmqをドラフト上でのみ動作させる
- 14. Windows phone mangoのテーマを強制的に動作させない
- 15. QTP Web Extensibilty - QTPにテスト実行を強制的に強制する方法
- 16. Androidに強制的にサービスを強制終了し、再開させる
- 17. 強制的にブラウザに強制的にサーバー側コードなしで再ロードする
- 18. アプリケーションを起動する前に画面の向きをポートレートに強制する方法はありますか?
- 19. ブラウザでフォーム要素を強制的にウィンドウビューに表示させない
- 20. クライアントに強制的にウェブページを再読み込みさせる最良の方法は何ですか?
- 21. Thread.sleepの前に強制スクリーン出力
- 22. formtasticフォームを挿入する方法を強制するには?
- 23. アクティビティを強制的に強制的に破棄し、スタックに残す方法はありますか?
- 24. 強制的な値の強制伝播
- 25. 動的にロードされたファイルを強制的にダウンロードする
- 26. jbossポータルサーバで強制的にユーザセッション(ログアウト)を強制終了する
- 27. infiniteScrollをjQuery.htmlコールで追加された動的コンテンツに強制する方法
- 28. Visual StudioにhttpsでWebサイトを強制的に実行させる方法
- 29. 強制的にコンピュータを自動的に起動しますか?
- 30. マウスを強制的に動かせますか?
私はあなたの「パワフルな」使用に興味を持っています...「強力な」持ち運びが必要な理由を推測できますか? – jrista
私はあなたのアプリケーションが自分自身を前面に持って来ることを望んでいません。それは窓の中で私の第1位のペットです。あなたが望むすべてのタスクバーを点滅させますが、もしあなたがフォーカスを取れば... –
@prista、私はすでにTopmost = trueを使っているので、powefullという言葉を使いました。しかし、まだいくつかのサードパーティのアプリケーションがこのフォームをオーバーライドしているため、このフォームが遅れています。 – Anuya