問題タブ [window-handles]

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

ui-automation - GUI 自動化テスト - ウィンドウ ハンドルに関する質問

当社は現在、コンパクトなフレームワーク アプリケーション用の GUI 自動化テスト ツールを作成しています。最初に多くのツールを検索しましたが、適切なものはありませんでした。

このツールを使用すると、テスト ケースを記録し、それらをグループ化してテスト スイートにすることができます。テスト スイートごとにアプリケーションが生成されます。このアプリケーションは、テスト対象のアプリケーションを起動し、ユーザー入力をシミュレートします。

通常、このツールは問題なく動作しますが、シミュレーション ユーザー入力にウィンドウ ハンドルを使用しているため、多くのことを実行できません。たとえば、コントロールの名前を取得することはできません (キャプションを取得するだけです)。

ウィンドウ ハンドルを使用するもう 1 つの問題は、変更のチェックです。現時点では、コントロールのクリックをシミュレートし、その結果に応じて、アプリケーションが次のステップに進んだかどうかがわかります。

そのようなことを行うための他の(より簡単な)方法はありますか(たとえば、メッセージキューなど)?

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

.net - .NETアプリからアプリケーションウィンドウを取得して移動しますか?

.NETアプリケーションが現在開いているすべてのウィンドウハンドルを取得し、これらのウィンドウを移動/サイズ変更することは可能ですか?

P / Invokeを使用すれば可能だと確信していますが、この機能用のマネージコードラッパーがあるかどうか疑問に思いました。

0 投票する
10 に答える
116307 参照

c# - Winforms の問題 - ウィンドウ ハンドルの作成中にエラーが発生しました

Winform アプリケーションでこのエラーが発生しています。このエラーが表示される理由と、さらに重要なことに、エラーを修正または回避する方法について、誰でも助けてもらえますか。

0 投票する
3 に答える
12488 参照

c# - C# アプリケーションでの「ウィンドウ ハンドルの作成中にエラーが発生しました」というエラーについてはどうすればよいですか?

私はすでにこの質問を見て、そこで行われた提案をすでにチェックアウトしました。私のプログラムは、多くの UI コントロール (多くの UI コントロール) を作成および破棄します。コントロールが「破棄」された後にハングアップすると、この問題が発生します。(興味深い事実:コンテナーを破棄する前にToolStripコントロールのVisibleプロパティを false に設定しないと、テーマ変更イベントを受け取るためにまだ Windows に登録されているため、破棄されません。表示されていない場合にのみ、自分自身を登録解除します。そして、コンテナが破棄されているときにこれが起こっていることを知る方法がないようです.)

問題は、私のアプリケーションが実際にウィンドウ ハンドルを使い果たしている可能性があるということです。プログラムには、ネストされたタブ コントロールを持つ単一のフォームがあります。各親タブには 12 個または 13 個の子タブがあり、子タブには 30 個または 40 個のコントロールを含めることができます。ユーザーがいつでも 15 個の親タブを開いている可能性は十分にあり、それはアプリケーション内の 5000 以上のライブ コントロールの領域に入りつつあります。また、私のコントロールの多くが複数のウィンドウ ハンドルを使用していることもわかっています。

(そして、「まあ、UI の設計が間違っているようだ」と言う前に、それを誤解させてください。そもそもアプリケーションが存在する理由は、ユーザーが必要とするデータの膨大なスペースを持っているからです。タブ内のタブは、実際には非常にうまく機能します。)

私の理解では、アプリケーションごとに 10,000 ウィンドウ ハンドルというハード リミットがあります。それが実際に真実である場合 (真実ではない多くのことを理解しています)、アプリでのそれらの使用を管理する必要があります。たとえば、ウィンドウ ハンドルが少なくなり始めたら、使用頻度が最も低いタブの内容を破棄できます。

しかし、ウィンドウ ハンドルが不足し始めたことをどのように判断すればよいでしょうか。そして、これは本当に問題への正しいアプローチですか?

(これは、この UI を WPF で再構築したい多くの理由の 1 つにすぎません。)

0 投票する
3 に答える
4587 参照

macos - Mac OS X: あるプロセスが別のプロセスのウィンドウにレンダリングできますか?

ご挨拶!

私は現在、Web ブラウザ プラグインを Win32 から MacOSX に移植しています。プラグインの機能の 1 つは、プラグインが読み込まれると、プラグインの「エンジン」として機能する別のプロセスを生成し、プラグインのウィンドウへの描画操作を実行することです (具体的には、OpenGL コンテキストを親プロセスのウィンドウとそのコンテキストへの OpenGL レンダリング コマンドの実行)。これは、通常、プラグインがブラウザ プロセス内のスレッドとして読み込まれるためです。プラグインがクラッシュすると、ブラウザ全体がダウンしてしまいます。「重労働」を別のプロセスに分割し、プラグイン コードを非常にスリムに保つことで、ユーザーをこのようなクラッシュから保護することができます。

この子プロセス レンダラー アーキテクチャを MacOSX で保持したいのですが、MacOSX ではプロセスがそのウィンドウへのアクセスを別のプロセスに渡すことを許可していないという (Google Chrome Web ブラウザーに関連する) 嫌な噂を耳にしました。 . この分野での私自身の調査は決定的ではありませんでした。誰かがこの問題について何らかの知識を持っていて、この目標を達成する方法についてアドバイスを提供できるか、より決定的な「実行できない」場合は、非常に役に立ちます。

ご協力ありがとうございました!

0 投票する
3 に答える
2482 参照

c# - ウィンドウなしでウィンドウメッセージを送受信できますか?

私たちが持っている古い MFC ベースのライブラリの周りに .NET ラッパーを書いています。これは、ウィンドウ メッセージを使用して通知を送信するクラスに基づいています。ユーザーがハンドルをウィンドウに渡すことができる関数があり、そのウィンドウはメッセージを受け取ります。

メッセージを受信するために、ラッパーのユーザーにサブクラスControl化してコントロールのハンドルを渡すように要求することもできますが、それは恐ろしいことです。古いライブラリがメッセージを送信するたびに発生するイベントをラッパー クラスに持たせ、メッセージを意味のあるものにデコードできるようにしたいと考えています。しかし、ラッパー クラスをコントロールにする必要はありません。

「ダミー」ウィンドウ ハンドルを作成し、ウィンドウを作成せずにそのハンドルに送信されたメッセージを受信する方法はありますか?

0 投票する
4 に答える
5588 参照

c# - Windows フォームからメッセージのみのウィンドウを作成するにはどうすればよいですか?

winforms アプリケーション内で、MFC ライブラリ クラスからウィンドウ メッセージを受信するメッセージのみのウィンドウを作成しようとしています。

サブクラス化を試みましNativeWindowたが、コンストラクターで次のようなウィンドウ ハンドルを要求しています。

しかし、「ウィンドウハンドルの作成中にエラーが発生しました」というメッセージとともに Win32Exception がスローされます。Windows フォームからメッセージのみのウィンドウを作成するにはどうすればよいですか? NativeWindow適切なアプローチを使用していますか?

0 投票する
7 に答える
53519 参照

c# - コンソール アプリケーションのウィンドウのハンドルを取得する方法

C# で Windows コンソール アプリケーションのハンドルを取得する方法を教えてもらえますか? Windows フォーム アプリケーションでは、通常はthis.Handle.

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

c# - C#から任意のウィンドウの不透明度を変更する

C#から開いているすべてのウィンドウの不透明度を変更することは可能ですか?私はウィンドウを最小化するためにグーグルで検索しました、そして私はそれがpInvoke呼び出しで可能であることを知るようになりました。それもうまくいきました。同様に、開いているすべてのウィンドウの不透明度をC#から変更することは可能ですか?

また、私はMFCのものには興味がありません。dllで公開されているAPIのリストを知るためのツールはまだありますか?

0 投票する
4 に答える
20218 参照

c# - C#は、プロセスの開始後にウィンドウハンドルを取得します

Process.Start()を使用してC#アプリから起動した後、ウィンドウのウィンドウハンドル(IntPtr)を取得する方法はありますか?