問題タブ [setforegroundwindow]

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 投票する
0 に答える
789 参照

c# - SetForegroundWindow を使用してウィンドウにフォーカスする

上記のコードを使用して、ターゲット ウィンドウのハンドルを使用して、別のウィンドウにフォーカスを置きました。上記のコードは、ショートカット キーが押されたときに呼び出されるメソッド内に配置されます。私が直面している問題は、初めてフォーカスがウィンドウで動かなくなることです。つまり、フォーカスがウィンドウ内の他のコントロールに移動しません (タブを押したとき)。そのため、マウスを使用してウィンドウ内にフォーカスを移動する必要があります。ショートカットを 2 回目に押すと、フォーカスが動かなくなり、タブを押すと正しく移動します。また、SetFocus を使用してみましたが、同じ問題が発生していることにも注意してください。

コードに何か問題があるか、または別の方法を使用して同じ動作を実現できるかどうかを提案してください。ありがとう。

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

python - Python win32gui SetAsForegroundWindow 関数が正しく機能しない

タイトルを検索してウィンドウを見つけるプログラムを作成しようとしています。ウィンドウが見つかると、それを前面に移動しようとします。win32guiこれを実現するためにAPIを使用しています。ほとんどの場合、動作させることができますが、タスクマネージャーが前面にあると、何らかの理由で動作しません。次のサンプルコードがあります。

これを複数のオンライン ソースからつなぎ合わせました。ほとんどの場合は機能するようですが、タスク マネージャーなどの一部のウィンドウでは、機能することもありますが、残りは失敗します。正常に動作しない場合、アプリケーションのアイコンが黄色に点滅するだけです。私が興味を持っているウィンドウが 100% の時間前景に設定されていることを確認するためにこれを行う適切な方法はありますか? これが関連しているかどうかはわかりませんが、Service Pack 1 を適用した Windows 7 Professional (32 ビット) を使用しています。

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

c++ - アプリケーションでブロックされた SendInput の最初の文字

だから私はゲームで動作するアプリケーションを持っています。プログラムのある段階で、テキスト フィールドをクリックし、テキストを入力してから、別のものをクリックします。

問題はこれです。最初に入力した文字がブロックされることがあります。つまり、テキスト フィールドに「This is a test」と入力すると、「his is a test」と表示されます。消えるのは常に最初の文字です。1 文字のみを出力するようにコードを変更すると、Windows の入力フィールドに無効な文字を入力したときに聞こえる従来の Windows の「ビング」サウンドが聞こえます。ただし、私の文字はどれも無効ではありません。

とにかく、これはすべて、プログラムがテキスト フィールドをクリックする方法を変更したときに起こり始めました。カーソルを移動する前に、クリックをシミュレートします。現在は、カーソルに触れずにクリックをシミュレートするだけです。

次のシナリオを除いて、すべてのテキストボックスでこの問題を修正することができました:コードの一部が同じテキストボックスを複数回再クリックします(そのため、それをクリックし、テキストを入力し、他のことを行い、同じテキストボックスをクリックし、入力しますテキスト...など)。問題は、テキストが初めて入力され、最初の文字が欠落することはなく、後続のエントリでは最初の文字が欠落する可能性が非常に高いことです (ただし、そうでない場合もあります (おそらく 5% の時間))。

各クリックとテキストの入力の間に遅延があり、私はこれらを実験するために非常に長くしました (これには、TypeInfo で送信されるキーストローク間の遅延が含まれます)。タイミングの問題ではないようです。

関連するすべてのコードは次のとおりです。

次のコードでは、xPos と yPos は、クリックしたい画面に相対的な座標です。また、 SetForegroundWindowInternal(ctrl_handle)を削除すると、最初の文字が常にすべてのテキスト フィールドに表示されなくなります。コードは次から取得されます: http://www.cplusplus.com/forum/windows/63948/

 

これは、上記のコードがメインで呼び出される方法です。

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

python - リモート デスクトップ接続 - SetForeground ウィンドウが機能しない

私はこれと非常によく似た問題を抱えています:リモート デスクトップ接続の SetForegroundWindow 接続して RDC を見ているときはすべてが機能しますが、そうでないときは..何も起こりません。私は Python と pywinauto を使用して、SendKeys メソッドを使用しようとしています: SetForegroundWindow はその後 GetLastError と同じように 0 を返します。そのため、何が問題を引き起こすのかわかりません。

編集:BringWindowToTopやSetActiveWindowなどの他の方法も試しました。また、ウィンドウを変更する前にaltキーを送信しようとしましたが、何も機能しませんでした。

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

c# - c# 他のアプリから親フォームにフォーカスを戻す

メインアプリの子フォームから .exe を起動しようとしていますが、問題は、他の .exe を開いて作業を終了し (指紋をスキャンして)、終了すると、アプリが最小化されることです。私はこれを試します:

しかし、それは機能しません。私のメインアプリはフォーカスを失いました。多くの解決策を見つけましたが、どれもうまくいきました。他の .exe も私がやっているアプリです。

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

winapi - e2e テストで「名前を付けて保存」ウィンドウを閉じる必要があります。C# を使用した SendKey

GUIを使用した印刷プロセスのエミュレーションとして、ファイルへの印刷のe2e自動テストを実装する必要があります。私は持っている

  1. Selenium と nunit で実行される Web アプリケーション。印刷ボタンを押します。
  2. コンピューターにインストールされている印刷アプリケーション。テストの必要に応じて、Web サーバーからユーザーのプリンターまたはファイル (デフォルトの XPS Windows プリンター) にデータを出力します。
  3. 自動化された e2e テスト プロセスは、TFS エージェントがインストールされた専用サーバーをフォアグラウンド コンソール アプリケーションとして使用し、「管理者として」実行されました。
  4. ログオフし、CI サーバーでスケジューラーによるテスト実行を行います。

印刷されたxpsファイル(またはpdfプリンターが使用される場合はpdf)を保存する必要がある「名前を付けてファイルを保存」ウィンドウを処理します。

  1. ファイル名を設定します。SendKyes.SendWait(myFileName) を使用します
  2. OKボタンを押します。SendKyes.SendWait("{ENTER}")

    /li>

問題は次です。

テストが実行されている専用サーバーに(RDP経由で)ログインした場合、ウィンドウが処理されるため、すべて問題なくファイルが保存されます。

サーバーからログオフすると、SetForeground は 0 を返し、ファイルは保存されず、ウィンドウが開きます。

Windows 7 以降の UAC の制限については知っています。UAC はまったく無効になっていました。Windows Server 2012 を使用しています。回避策が必要です。おそらく、この操作についてUACから通知され、レジスタを変更し、おそらくいくつかのメソッドまたはライブラリ...

もちろん使ってる

設定で


アップデート

UAC の問題ではないように見えますが、RDP マシンからログオフするか、rdp ウィンドウを最小化するときの GUI フリー モードの問題です。Windowsはデスクトップをロックし、アクティブなウィンドウなしでGUIフリーモードを設定します

詳細:リモートデスクトップによるテスト

解決策の 1 つ - GUI のテスト中に RDP 接続を維持する

RDP ウィンドウを最小化し、切断中にロックしないようにするためのバリアントも考えられます。