web-dev-qa-db-ja.com

UIの一部が画面に表示されたままになっているプログラムを特定するにはどうすればよいですか?

「インデントを増やす」というツールチップのように見えるものがホームレスで画面上に浮かんでいることに気づきました。これは、その下にあるブラウザウィンドウの端です。

enter image description here

それはほぼ無限のZオーダーを達成し、タスクマネージャーでさえ、私が移動できる他の何よりも上に位置しています。 (ロック画面に重畳しません)

これを所有しているプログラムを特定して、終了できるようにするにはどうすればよいですか?私はこれを最小限の侵襲的な方法で実行したいと思います-つまり、再起動するだけではありません。

私は推測作業だけで特定のアプリケーションをすでに閉じていますが、犯罪者に運ばれませんでした。 (おそらく、これはバグのように見えるため、閉じられたアプリケーションは実際には適切にクリーンアップされませんでした)。

このように具体的に浮動している「インデントを増やす」を検索しても何も起きませんでしたが、これが一般に知られている問題であると期待していました。

UI要素をクリックしてそのプロセスを特定できるユーティリティ(Windowsまたはサードパーティに組み込まれている)があると思いますか?


編集: 以下の答え のおかげで、ツールチップのソースを見つけました。これは、Chromeで実行されているWebアプリでした:

enter image description here

42
UuDdLrLrSs

あなたはおそらく 却下できないツールチップをもたらすChromeバグ を経験しています。

基本的に、Webページ上の何かの上にマウスを置いた後、マウスがウィンドウの外に予期しない方法で移動した場合(ウィンドウを最小化するなど)、ツールチップが表示されますウィンドウが非表示になり、ツールチップを閉じる方法がありません(ソースウィンドウにマウス移動メッセージが表示されなくなったため、カーソルが移動しているため)。

ツールチップを取り除くには、次のことができます

  1. 元のタブを見つけて、マウスを動かすだけです。ツールチップが消えるはずです。 (残念ながら、ツールチップがどのタブから来たのかを判別する簡単な方法はないため、推測する必要があります。ウィンドウ階層には直接の関連付けはなく、その親はデスクトップウィンドウです。)
  2. ツールチップのHWNDを取得できる場合は、それを送信できますWM_CLOSEとなくなります。 (下記参照)
  3. 終了Chrome(または他の問題のあるアプリ)

このバグは、Chromeに基づくソフトウェアにも影響します。たとえば、Blinkベースのブラウザー(EdgeおよびOpera)、および Electron (Slackおよび 数百人 )。


質問自体に答えるために、Spy ++または WinCheat などのデバッグツールを使用して、ツールチップを所有するプロセスを見つけることができます。

ウィンドウピッカーツールをツールチップの上にドラッグすると、所有プロセスを含むウィンドウの詳細が表示されます。

using WinCheat

次に[アクション]タブに移動すると、ツールチップウィンドウに WM_CLOSE メッセージを入力すると、表示されなくなります。 (このツールには注意してください-大きな力、大きな責任があります。アプリはその下からウィンドウが閉じられることを期待しない場合があります。これを行ってもChromeがクラッシュするようには見えません。)

29
josh3736

「インデントを増やす」というツールチップのように見えるものがホームレスで画面上に浮かんでいることに気づきました。

2つの可能性があります。

  1. 基になるウィンドウマネージャーコードによって正しく再描画されていない不具合

  2. 移動/閉じることができない実際のウィンドウ

正しく再描画されない不具合

  • 削除するには、タスクバーの右端にある[デスクトップの表示]ボタンを切り替えます。

画面上の古いGUIの不要なフラグメントを削除するにはどうすればよいですか?(Windows 7)-スーパーユーザー は、他のいくつかの可能な解決策を示しています。

  • ウィンドウのテーマをAeroからClassicに変更してから、もう一度Aeroに戻します。
  • [スタート]メニュー> [シャットダウン]> [ユーザーの切り替え]で、ようこそ画面でログインし直します

コメントに従って、あなたも試すことができます:

  • ほとんどの場合、Windowsエクスプローラーを再起動することでもうまくいきます。そうでない場合は、dwm.exeを再起動します

移動/閉じることができない実際のウィンドウ

Process Explorer の「Find Window's Process」機能(Process Explorerウィンドウのツールバーにある十字線)を使用できます。識別したいウィンドウの上でクリックしてドラッグすると、Process Explorerは、それが属するプロセスを強調表示します。

ソース 小さなウィンドウは削除できませんシアン で回答

ウィンドウが属するプロセスがわかっている場合は、タスクマネージャを使用して、そのプロセスを終了することを選択できます。

25
DavidPostill

Spy ++(SPYXX.EXE)を使用して、このバグのあるプログラムを見つけます。 https://docs.Microsoft.com/en-us/visualstudio/debugger/introducing-spy-increment

この記事はあなたに役立つはずです https://docs.Microsoft.com/en-us/visualstudio/debugger/how-to-use-the-Finder-tool

4
Roman Blinkov