問題タブ [user32]
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.
c# - .NET c# で Win32 GetMonitorInfo() を使用するには?
ウィンドウの最後の位置が保存される機能を実装する必要があります。アプリケーションの起動時に、この位置を取得して復元する必要があります。
現在、2 台目のモニターが解体されている可能性があります。最後の位置が現在表示されていないモニター上にある場合 (つまり、保存された座標が表示されている座標の外にある場合)、このケースをキャッチし、座標を最後の位置ではなくデフォルトに設定する必要があります。
モニターに関する情報を取得するには、Win32 を使用する必要があります。私がこれを機能させるのは簡単ではありません。
ヘルパー クラスを作成しました。
そして、これらは MonitorInfo および Rect クラスを作成する私の試みです:
このコードを次のように使用して、可視モニターを取得しています。
実行しようとすると、最後のメソッドが例外をスローします
これを修正するために何をする必要があるか提案はありますか?
vb.net - システム サービスから user32.dll getlastinputtime を取得できますか
ユーザーがアクティブかどうかを検出し、そうでない場合はプロセスを起動できるシステム サービスを作成しようとしています。ユーザーがログインしているかどうかにかかわらず、これを機能させたいので、サービスを使用しています。user32.dll API にフックして、最後のユーザー入力からの時間を取得しようとしています。ただし、返される整数は常に 0 であるため、正しく機能しているとは思えません。システムサービスとして実行している場合、これは不可能ですか?
c# - C# PostMessage の使用
アプリケーションにキーを送信しようとしています。ブレークポイントを使用してHandlewindow値をテストして、何をしているのかを理解しましたが、解決策が見つかりません。もう少し詳しく言うと、ちょっとしたゲームで、ゲーム内でチャットバーを起動するとそこに送信したいキーが書かれているのですが、プレイ中にコマンドを使用するために機能させたいと思っています。ゲームにはガードや保護機能がありません。
これが私のコードです:
私が言ったように、1000000回正常に送信できますが、何も起こりません。最小化または非表示で動作する Windows アプリケーションにキーを送信する別の方法はありますか? 私のアプリにのみ送信する必要があります。
c# - c# システム トレイからウィンドウを最大化する
アプリケーション ウィンドウを前面 (つまり、他のすべてのウィンドウの上) に移動しようとすると問題が発生します。ユーザーがシステム トレイの notifyIcon をダブルクリックできるようにしたいのですが、アプリケーションのウィンドウが既に開かれている場合は、前面に購入することができます。次の 2 つの P/inovke を使用してみましたが、どちらも一貫して機能していないようです。ウィンドウを前面/上部に移動する方法を知っている人はいますか?
winapi - VB6 フォームの所有者としてウィンドウ ハンドルを使用する
Form2.Show vbModeless, Form1
所有者 (親ではない) を任意の hWnd に設定し、デフォルトの位置などを設定できるWin32 の同等物は何ですか?
私の知る限り、これはウィンドウを作成するときにのみ設定できます。
c# - ウィンドウが MDI ウィンドウかどうかを確認する方法はありますか?
DefMDIChildProc を使用して失敗するかどうかを確認するなど、ウィンドウが MDI ウィンドウであるかどうかを確認するために使用できる user32.dll 呼び出しがあると思いますが、これに制限があるかどうか、またはこれを行うためのより良い方法があるかどうか疑問に思います? 親の確認で十分ですか?
簡単にするために、私が最終的に望んでいるのは IsMDI(IntPtr ptr) のような呼び出しです...
考え?提案?
c# - 現在アクティブなプロセスへの PostMessage はすべてのプロセスで機能しませんか?
私はこのコードを持っています:
KeyUp/KeyDown を呼び出すと、一部のプロセス、テキスト編集、ビジュアル スタジオなどのプロセスでのみ機能します。
ただし、Explorer.exe、iTunes.exe、Chrome.exe、Outlook.exe、FileZilla.exe などでは動作しません..
コンソールでデバッグを実行しました:
ここで、いくつかのアプリケーションから得たもの:
そして Explorer.exe で空の行が表示されます..
c# - IE内のActiveXユーザーコントロールのハンドルを検索する
IEで実行されているWebページでユーザーコントロールのハンドルをプログラムで見つけるにはどうすればよいですか?
Spy ++を使用して見つけることができますが、ハンドルが変化し続けるため、行き詰まります。
私はFindWindow()を使用しようとしていますが、運がありません:(何か間違ったことをしているのか、それとも単にWindowsでしか機能しないのか疑問に思います...
前もって感謝します、
ズブロッカ
c# - 他のアプリケーションから押されたキーを取得する C#
他のアプリケーションでユーザーが押したキーを取得したいと思います。たとえば、メモ帳では、プログラム自体ではありません。これは、メソッドを使用してキーをメモ帳に連続的に送信するコーディングですが、PostMessage
キーが押されたときに停止したいと考えています。
したがって、私の考えは、ユーザーがメモ帳でキーを押したときにに設定ControlKeyDown
されます。インターネットで調査した後、このコードを見つけて編集しました:false
X
X
はい、これにより、間違いなくループが停止しますが、ユーザーがプログラムのキーを押したときにループが停止するため、これは望ましくありませんが、メモ帳では停止しません。これは、メモ帳でKeyEventArgs
はSystem.Windows.Forms.KeyEventArgs
なくメモ帳であるためです。
助けが必要 :(
vb.net - 2 番目のアクティブなウィンドウを取得 vb.net
AlwaysOnTop = True
ブラウザが表示されるフォームを作成する必要があります。これにより、ある種の「オーバーレイ」が作成されます。ロジックは次のように機能します。
- プログラムは、アクティブなウィンドウをチェックします。
- アクティブなウィンドウが特定のプロセスである場合、私のフォームは TopMost ユーティリティを初期化し、アクティブなウィンドウ自体になります。
- 特定のプロセスがアクティブ ウィンドウでなくなると、フォームが消えます。
私がそれをした方法:
- 私のプログラムは、ブラウザーがアクティブなウィンドウであるかどうかをチェックします。(私の一番上のフォームが現在アクティブなウィンドウであるため)。
- ここで、プログラムはフォームの下のウィンドウが何であるかを確認する必要があります。これは 2 番目のアクティブなウィンドウです。
- ブラウザーではない場合、フォームを非表示にする必要があり、プログラムはアクティブなウィンドウが何であるかを再度確認します。
最初にアクティブなウィンドウが何であるかをチェックする機能はすでに完了していますが、
2番目のアクティブなウィンドウが何であるかをチェックする関数を取得することに固執しています。