問題タブ [spy++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1080 参照

winapi - Spy++ で表示されないウィンドウを `FindWindow` する方法は?

IDA Pro を使用して Windows アプリケーションをデバッグしています。ある時点でFindWindowA、指定されたクラス名のウィンドウが呼び出され、正常に検索されることがわかりました。

ただし、Spy++ を使用して指定されたクラス名のウィンドウを見つけると、どこにも存在しないように見え、見つけることができません。

アプリケーションが呼び出されたときに何らかの方法で内部的に見つけるこの同じウィンドウをどのように見つけることができるのだろうかFindWindowA? 外部アプリケーションが同じウィンドウを見つけられないのはなぜだろうか...

0 投票する
1 に答える
1217 参照

windows-8 - Windows 8 で Spy++ を使用する

Windows 8 でプログラムを書いています
。SPY++ を使用しているときに問題が発生しました。

通常、Windows 7 では SPY++ から "Window Proc" を取得できますが
、Windows 8 では "(Unavailable)(Unicode)" しか取得できません。
私が試したプログラムは「Install Wizard」です。

おなじみの問題に遭遇した人はいますか?
どうすればこれに対処できますか?

0 投票する
0 に答える
47 参照

windows - Spy++アイコンの意味は何ですか

重複の可能性:
Spy ++のWindowsビューで一部のアイテムがグレー表示されるのはなぜですか?

Spy ++ウィンドウビューのさまざまなアイコンの意味を知っている人はいますか?灰色のものもあればそうでないものもあります。Spy++がウィンドウに対して表示するプロパティに基づいて違いを見つけることができませんでした。

ここに画像の説明を入力してください

0 投票する
1 に答える
1908 参照

c# - Spy ++では、コントロールの名前はどのような値ですか?

System.Windows.Automationを使用して、グループボックスのラベルからいくつかのUIコントロールテキスト値を取得しています。探しているコントロール名を取得するためにspy++を使用しようとしています。

ここに画像の説明を入力してください

私が探しているものを表す値は何ですか?たとえば、次のように変更します... ... AutomationIdProperty、 "Window 00031BB0"));

spy++によって提供されるすべての情報が実際に何を表しているのかわかりません。

助けてくれてありがとう!

0 投票する
1 に答える
187 参照

windows - Spy ++の「前のウィンドウ」の定数は何ですか?

Spy ++では、リスト内のウィンドウをクリックして右クリックし、[プロパティ]を選択すると、[ウィンドウ]タブを選択できるタブウィンドウが表示されます。

このウィンドウには、「次のウィンドウ」、「前のウィンドウ」、「親ウィンドウ」などのオプションが表示されます。

「前のウィンドウ」をクリックすると前のウィンドウが表示されますが、Spy++が実際に「前のウィンドウ」をどのように決定するかはわかりません。

Spy ++はGW_PREVIOUSのような定数を使用して前のウィンドウを検索した可能性があると思いますが、そのような定数はありません。

このような場合、Spy ++はどのようにまたは何をしますか?それとも、ウィンドウのzオーダーのみを使用しますか?

ありがとうございました。

0 投票する
2 に答える
1942 参照

automation - ToolStrip ボタン クリックの問題の自動化

vb.net を使用して Windows フォーム アプリケーションを自動化しようとしています。自動化したいプログラムのソースコードがありません。

Spy++ では、これまでのところボタンのハンドルを使用しており、問題なくボタンをクリックしています。しかし、ツールストリップ ボタンに関する問題に出くわし、それを回避するのに苦労しています。これらのボタンは(私が読んだことから)非表示または非表示であり、spy ++には表示されないため、ハンドルがないようです。したがって、ボタンが存在しないため、ボタンのハンドルを使用してクリックすることはできません。

この問題を解決するには、マウス カーソルを特定の画面位置に移動し、ウィンドウの位置を変更して、マウス クリック イベントを開始する必要がありました。ただし、自動化コードの実行中はマウスを使用できないため、この方法は最適ではありません。誰かが代替案を提案できますか? 私は解決策を求めてインターネットとこのサイトを 3 日間探し回っていますが、成功しませんでした。

どんな助けでも大歓迎です。

0 投票する
1 に答える
2550 参照

c++ - FindWindowEx()を使用してコントロールを見つけることができません

Microsoft Security Essentialプログラムを開き、VCで[今すぐスキャン]ボタンをクリックします。ウィンドウは見つかりましたが、コントロールが見つかりません。これは私のコードです。このコードを実行すると、Controlnotfoundが表示されます。[プログラムの実行]の[参照]ボタンをクリックしてこのコードをテストしようとしましたが、Microsoft Security Essentialで使用しようとすると、コントロールが見つかりませんでした。なぜこのコントロールがタブにあるのかわかりません。FindWindowEx()の使用方法Microsoft Security Essentialの[今すぐスキャン]ボタンをクリックしますか?

Microsoft SecurityEssentialのボタン付きのSpy++を使用すると、次のように表示されます

しかし、コントロールが見つかりませんでした。

0 投票する
1 に答える
1576 参照

wpf - FindWindowByClassName InnoSetup 関数で使用する WPF アプリケーションのクラス名を知る方法

InnoSetup には、プログラムが既に使用されているかどうかを知るための関数 "FindWindowByClassName" があります。私の場合、InnoSetup アップデートを実行する前に wpf アプリケーションが使用中かどうかを知りたいのですが、wpf アプリケーションのクラス名を知る方法がわかりません。アプリケーションで Spy++ を使用する場合、クラス名は次のとおりです。

ご覧のとおり、私のクラス名には GUID があり、この GUID は起動するたびに変更されます。しかし、いずれにせよ、InnoSetup を (デバッグ モードで) 実行すると、このクラス名を使用すると、FindWindowByClassName 関数は 0 を返します。

「MyProgram.exe」のみを使用しようとしましたが、関数は常に 0 を返します (アプリケーション「MyProgram.exe」はテスト中に起動されます)。この問題を解決するアイデアはありますか? wpf コードでクラス名を設定できますか?

0 投票する
1 に答える
1620 参照

c# - C# のネイティブ ウィンドウ階層とクラス名

次のように、ウィンドウ階層を指定して特定のウィンドウを見つける関数を作成しています。

これは大まかなコードですが、目的は、[Window]クラスを使用して階層を作成し、実際の階層を使用して[EnumChildWindows]一致するかどうかを確認することです。これは明らかにうまくいきますが、私はこの SO の質問, Hans Passant's commentに出くわしました"Every unique window in a desktop session must have a unique Windows class name".それを解釈する方法がわかりませんでした (同じクラス名の複数のウィンドウについては下の画像を参照してください)。おそらく、彼が言及していることはマネージ コード (WinForms、WPF など) にのみ適用されます。

さらに、Spy++ のようにハンドル (hWnd) を持っている場合、ウィンドウのクラス名とテキストを取得する方法がわかりません (下の画像を参照)。[Find Window]ダイアログではなく、ツリー ビューでテキストがどのように取得されるかに注目してください。

スパイ++

質問:

  • ネイティブ アプリのみをターゲットにしているので、Han のコメントについて心配する必要がありますか?
  • ウィンドウのハンドルを指定してクラス名を取得する方法は?
  • ウィンドウのハンドルを指定してウィンドウテキストを取得する方法(画像のように)?
0 投票する
1 に答える
256 参照

c# - テキストボックスのテキストを強制的に更新する方法

それで、さまざまなコマンドを使用してテキストボックスにテキストを設定することについて、stackoverflow でおそらく 5 から 10 の質問を見てきました。EM_SETSEL と EM_REPLACESEL を使用した SetWindowText、SendMessage、および頭の中で考えられない他のいくつかを試しました。1 つの奇妙な出来事を除いて、ほとんどの場合、私は成功しています。

この特定のテキスト ボックスのテキストを設定すると、何も表示されず、何も変化しません。最初は、データを正しく設定していないと思いました。ただし、Spy++ または Winspector を使用してテキスト ボックスのテキストを表示すると、変更を加えた正しいデータがそこにありますが、実際のテキスト ボックスには表示されません。さらに奇妙なことに、「編集」したテキストボックスでフォームをクリックして戻すと、spy++ と Winspector のデータがテキストボックスに表示されているものに変わります。

友人と話したところ、競合状態である可能性があるとのことでした。このボックスを編集しようとしていますが、テキストボックスは他のスレッドによっても編集されています。

誰かに提案があれば、本当に感謝しています。

編集:わかりましたので、テキストが元に戻る問題の原因をさらに掘り下げました。Winspector を開いて、テキストボックスを監視させました。そこから、テキスト データが最後に正しくなってから最初に変更されるまでの間に、ウィンドウに送信されたメッセージを特定できました。また、パラメーターを使用して結果を xml ドキュメントにエクスポートしましたが、長さは約 680 行です。

メッセージのリストはこちら: http://i.imgur.com/SBCFHK8.png