問題タブ [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.
.net - Spy++ によって明らかにされたウィンドウ ハンドルは、そのコンピューターに固有か、アプリケーションに固有か
わかりましたので、.Net からハンドルを取得しようとしているテキスト ボックスを含む Microsoft Access フォームがあります。
私のフォームは以下です:
Spy++ を使用して、テキスト ボックス ハンドルを見つけました。スクリーンショーは以下のとおりです。
このハンドルは私の PC または frmTest に固有のものですか? 同様に、別のコンピューターで frmTest を開いた場合、テキスト ボックスのハンドルは 001E1A6E のままになりますか?
ありがとう
.net - .NET アプリケーション用の Spy++ に似たプログラムはありますか?
私は周りを見回しましたが、私のニーズに合ったものは見つかりませんでした。Visual Basic で記述された自分のアプリケーションに送信される Win32 (?) メッセージをプログラムがインターセプトできるようにしたいと考えています。
補足として、「Win32 メッセージを傍受する」というのは正しい言い回しですか?
いずれにせよ、精緻化は問題ありません。スパイ ツールが、WndProc を使用してプログラムで傍受するのと同じメッセージ、つまり SendMessages と PostMessages を傍受することを望みます。
.NET フレームワーク イベントをインターセプトするプログラムを探しているわけではないことを明確にしたいと思います。
ありがとう。
編集:ウィンドウとその子コントロールのハンドルは表示されますが、メッセージは表示されません。Windows7 64ビットを使用しています。Spy++ のバージョンは 8.00.50727 です
半解決済み; 仮想マシンで動作する Spy++ の代替手段 ( Window Detective ) を手に入れました。これには間違いなく満足しており、落ち着いても問題ありません。
私が見つけたすべての「スパイのような」プログラムがなぜ「メイン」の PC で動作しなかったのか、まだ疑問に思っていますが、気にする必要はないと思います。
c# - C#でspy++の関数「find window...」を作る
spy++の同じ機能「窓を探す…」をC#で作りたいと思っています。私はWINAPIのこの機能を試しました:
http://msdn.microsoft.com/en-US/library/ms633558.aspx しかし、無効または非表示になっているため、すべての要素を取得することはできません。
たとえば、プログラマー モードのウィンドウ 7 電卓では、プログラムが無効になっている場合、プログラムで "ABCDE F" を取得できず、spy++ で取得できます。
編集:私はこれを試しましたが、うまくいきません:
myPoint はマウスの位置です。
私は WINAPI に慣れていないので、あなたの説明は私の理解不足だと思います。ChildWindowFromPointEx 関数の小さな例を持っているか、私のコードが機能していないかを知ることは可能ですか? 答えてくれてありがとう
ループを作成しようとしましたが、ハンドルが他のハンドルの下にあるようですが、ハンドルの子ではないようです。ループは常に同じハンドルを送信し、キー「abcde f」が無効になっている場合は希望の子は送信しません。別のアイデアはありますか?
c# - アクションを適切にシミュレートできません。C#のSendMessage(spy ++)
ゲームのプロセスでこのアクションをシミュレートする際に問題が発生しました:-mouse_down --mouse_move --mouse_up
手動で行うと、spy++の出力になります。
mouse_down:
mouse_move:
mouse_up:
だから私は以下のコードでそれをシミュレートしようとしましたstartx、y:(618,392)final x、y:(618,432)しかしそれは機能していません。
コードを使用した後のspy++の出力は次のとおりです。
なぜ機能しないのかよくわかりません。私はしばらくの間、この方法を使用してキーをシミュレートしてきました。ctrl+ q、マウスクリックなどのアクションは問題ありませんでした。さらに、それは私のために一度だけ機能しましたが、一度だけでした。私はここで立ち往生しています。助けてくれてありがとう:)
c++ - WM_KEYDOWNメッセージが送信されません
私は自分のプログラムのバグを突き止めようとしてきました。上下の矢印キーを押しながらスペースバーを押すと、WPARAMがVK_SPACEのWM_KEYDOWNメッセージがWndProcによって受信または処理されないことに気付きました。
少し興味があったので、Spy ++を開いて、ウィンドウに送信されたメッセージを表示し始めました。左矢印キーと上矢印キーを押しながら別のキー、たとえばAを押すと、WM_KEYDOWN(およびWM_CHAR)メッセージがウィンドウに送信されることに気付きました。
しかし、上下の矢印キーを押しながらスペースバーを押すと、スペースバーがヒットしたことを示すWM_KEYDOWNメッセージがウィンドウに送信されません。
これの理由は何ですか?誰かがこの動作を確認できますか?
windows - Spy++ (Spyxx) のコマンド ライン アナログ
Spy++ (Spyxx) のコマンド ライン アナログを探しています。
出力では、ツリーのようなウィンドウ コントロール (プッシュボタン、チェックボックスなど) のリストが期待されます。
例えば:
[CalcFrame]電卓[CalcFrame]...[ボタン]MC
[CalcFrame]電卓[CalcFrame]...[ボタン]=
[CalcFrame]電卓[CalcFrame]...[ボタン]1
[CalcFrame]電卓[CalcFrame]...[ボタン]2
... すぐ
誰かが私に何か提案してもらえますか?
c# - Sending Click with user32.dll, messages appear in spy++ but button isn't clicked
I have problems with sending a Click to an application with the user32.dll. the button does not be clicked, but in spy++ the message do appear. i'm using win7 x64
The code is written in c#:
Here are the messages of spy++ of that button:
If i send the the messages i get following: i don't if that is that problem but the lbuttondown, buttoup appears 2 times ( S + R ) and if i'm clicking it manuelly it gets 1 message (P) also tried to do it with WM_CLICK but then i have the same problem with it
Edit: Using now PostMessage so spy++ shows the same messages as i click it manually, but still the button seems not to be clicked
With this library I have the same problem.
code:
Message are sent, but button isn't be clicked
Edit:
thanks for that link (http://www.hanselman.com/blog/IntroducingLync2010SuperSimpleAutoAnswerVideoKioskWithFullScreen.aspx), but also with this library i have the same problem :/
code:
Message are sent, but button isn't be clicked
Edit2:
Answer of user was deleted, because i posted my comment as an answer:
This is not an answer, this belongs in your question. It doesn't match your code, clearly you are still posting BM_CLICK. Which is wrong, it should be sent and you should either send BM_CLICK or post the mouse messages. And you are looking at the wrong window, it is button's parent that gets the BN_CLICK notification and acts on it. Having the processs' keyboard state wrong would be a typical failure mode. – Hans Passant 18 hours ago
Regarding to that, why should it be the parents windows? bcs in spy++ (screenshot below i serached for that button (Class: BarButton) and the handle i get from user32.dll is also the same as that one in spy++
c++ - Spy++ ウィンドウからテキストを取得する
C++を使用して、スパイ++の「メッセージ」ウィンドウからテキストを取得しようとしています。
WM_GETTEXT
、LB_GETMESSAGE
メッセージをウィンドウとその子に送信しようとしましたが、機能しません。
コードはメモ帳でテストされ、正常に動作しましたが、これを行う方法は?
この関数を EnumChildWindows(spyHwnd,EnumChildProc,1); と呼びます。//spyHwnd は「メッセージ」ウィンドウのハンドルです
windows-services - サービスによって生成されたプロセスの Windows Proc が「利用できません」
(自動テスト目的で)リモートマシンでプロセスを生成しようとしていpsexec
ますが、生成されたプロセスがメッセージに正しく応答していないことに気付きました(WM_GETOBJECT
、それはまったく別の質問です)。spy++
理由を確認しようとして開きましたが、プロセスのウィンドウに送信されるメッセージをログに記録できませんでした。ウィンドウのプロパティは、ウィンドウの「Windows Proc」が「使用不可」であることも示しました。
.
psexec
リモート マシンの組み込みサービスを使用して要求されたアプリケーションを起動するため、これは Windows サービスの動作だと思います。同じ資格情報で両方のマシンにログオンしていたので、ユーザーのセキュリティの問題ではなく、サービス関連の動作だと思います。
健全性チェックとして、プログラムをリモートで実行する簡単なスタンドアロン サーバーとクライアントを作成したところ、すべてが期待どおりに機能しました。ウィンドウ プロシージャはもはや「使用不可」ではなく、メッセージをスパイすることができました。
calc
すべてのテストに通常の Windows Calculator ( ) を使用しました。
私の質問:サービスから生成されたプロセスのメッセージ キューが表示されない理由を誰かが確認、説明、および/または引用できますか? また、これに対する回避策はありますか?psexec
カスタムソリューションよりも使用したいです。WM_GETOBJECT
この状況でもカスタム UI オートメーション プロバイダーが返されない理由を説明できる場合は、それが私の最初の問題であるため、ボーナスです。
sendmessage - 他のウィンドウからのコントロール名
他のウィンドウからテキスト値を読み取り、その値を別のアプリケーションに照会する必要があります (私の質問は最初のタスクに関するものです)...つまり、他のウィンドウを「スパイ」しています (私たちの製品に関連して使用するサードパーティのアプリケーション) )、「受け入れる」ボタンがクリックされるのを待って、テキストボックスから値を読み取ります。この別のアプリケーションであるダイアログ ボックスには、複数のテキスト ボックスとコマンド ボタンがあります。マウス フックを作成し、このアプリケーションの表示時にアクティブにしています。このウィンドウの四角形内のすべてのマウスの動きを読み取っています。テキスト、キャプション、子ウィンドウ ID、四角形、左/右/中央/ホイール クリックをつかみます。「受け入れる」ボタンのクリックをつかむことができます。ボタンのキャプションを見ることができ、そのウィンドウを読み取ったり、テキストを取得したり、クリックされたボタンを特定したりできます。これで、すべての EDIT クラスの値を読み取り、それらのウィンドウ ハンドルや四角形などを取得できます。しかし、それらをクラス コレクション内の一意のアイテムとして識別できません。目的のテキスト ボックスの値を具体的に読み取る必要があります。幸いなことに、私が興味を持っているテキスト ボックスは、EDIT クラス ループからテキストを読み込んでいるときに、ALWAYS COMES FIRST IN MY LOOP です。ただし、より具体的にしたいと思います。NAMEのテキストボックスを読んでいることを確認してください。知っている。開発中に、その名前を読み取り、プログラムにハードコーディングすることができました。私の疑いは、コントロール名がバイナリコードに保存されていないことです。私の理解では、コントロール ID、ウィンドウ ハンドルはウィンドウの作成時に作成され、コントロール名 (たとえば txtOrderNumber) への参照はまったくありません。ボタンのキャプションのために特定できる場合 (つまり、どのボタンがクリックされたかを判断できます)、EDIT クラス項目でロックされ、値を読み取るときに幸運な最初の推測にスローされます。私の質問は、別のウィンドウからコントロール名を取得する方法です。このタスクでは、EDIT クラスのインスタンス名について知りたいと思っています。プロジェクトからのいくつかのコード(短縮)を次に示します。
Dim hWnd As IntPtr = FindWindow(Nothing, _windowText)
'API: FindWindowEx 'API: SendMessage 'API: GetClassName 'API: GetWindowTextLength 'API: GetWindowText 'API: WM_GETTEXT
私は GetWindowLong と GetDlgCtrlID API を見て、ほとんどのフラグを試しましたが、これまでのところ成功していません...
ヒント、手がかり、指示をいただければ幸いです。ありがとうございました