問題タブ [winapi]
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.
delphi - Delphi で非同期ソケット プログラミングを行う慣用的な方法は何ですか?
Delphi でネットワーク コードを書いている人が、Windows スタイルのオーバーラップ非同期ソケット I/O を使用する通常の方法は何ですか?
この質問に関する私の以前の調査は次のとおりです。
Indyコンポーネントは完全に同期しているようです。一方、ScktComp ユニットは WSAAsyncSelect を使用しますが、基本的には BSD スタイルの多重化されたソケット アプリのみを非同期化します。ループ内の select() から戻ってきたかのように、単一のイベント コールバックにダンプされ、すべてのステート マシン ナビゲーションを自分で行う必要があります。
.NET の状況は、継続が Socket.BeginRead に直接渡される Socket.BeginRead / Socket.EndRead を使用すると、かなり良くなり、そこから元に戻ります。クロージャーとしてコード化された継続には、明らかに必要なすべてのコンテキストとそれ以上のものがあります。
winapi - 非表示のウィンドウ アプリケーションからダイアログを表示するにはどうすればよいですか?
WTL モーダル ダイアログを表示する Edit() メソッドを実装する COM コンポーネント (dll) を開発しました。
この COM コンポーネントへの完全なインターフェイスは、化学プロセス業界で使用されているソフトウェア標準 (CAPE-OPEN) に対応しており、その結果、この COM コンポーネントは、私が制御できないさまざまなサードパーティの実行可能ファイルで使用できるようになっています。
私のコンポーネントは、これらの EXE の多くで期待どおりに動作しますが、特に 1 つの場合、ダイアログが表示されずに Edit() メソッドがハングします。
::MessageBox()
ただし、ダイアログが表示される直前に呼び出しを行うと、DoModal()
最初に MessageBox を表示した後に正しく動作します。
この問題は、この特定の EXE が「隠しウィンドウ アプリケーション」として実行されていることに関係している可能性があるのではないかと疑っています。
::GetConsoleWindow()
ダイアログの親としてNULL と戻り値の両方を使用しようとしましたが、どちらも機能しませんでした。
ダイアログ自体は ATL/WTL CPropertySheetImpl です。
問題の親アプリケーション (EXE) は、(やや敵対的な) サード パーティによって開発されているため、私の手に負えません。
::MessageBox()
COM コンポーネントから標準の Windows ファイル ダイアログを正常に呼び出したり、表示したりできることはわかっています。実行後、カスタム ダイアログを表示できるようになります。最初に「標準」ダイアログを表示しないと、カスタム ダイアログを表示できません。
不要な MessageBox を最初に表示せずにダイアログを表示する方法を誰かが提案できますか? この EXE が同じインターフェイスに対応する他の COM コンポーネントからのダイアログを表示するのを見たので、それが可能であることはわかっています。
.net - .Net でディスクを直接読み取るにはどうすればよいですか?
.Net でディスクを直接読み取ることは可能ですか? 直接とは、ファイル システムをバイパスするデバイス経由を意味します。たとえば、「\Device\Ide\IdeDeviceP2T0L0-1」という方法でデバイスを開くことで、これを行うと思います。
.NET API でデバイスを開くことができない場合、使用する Win32 API を知っていると役立ちます。
c++ - 32 ビット コードと 64 ビット コードの DWORD の大きさはどれくらいですか?
Visual C++ では、DWORD は、マシン、プラットフォーム、および SDK に依存する単なる unsigned long です。ただし、DWORD はダブル ワード (つまり 2 * 16) であるため、DWORD は 64 ビット アーキテクチャでも 32 ビットなのでしょうか?
winapi - プログラムへのパス-リモートコンピュータ上のファイル
リモートコンピュータの「ProgramFiles」ディレクトリの(ローカル)パスを確認するにはどうすればよいですか?リモートコンピューターの名前をパラメーターとして受け取るSHGetFolderPath(または関連する関数)のバージョンには表示されません。
リモートレジストリを使用してHKLM\Software \ Microsoft \ Windows \ CurrentVersion \ ProgramFilesDirにクエリを実行できると思いますが、「文書化された」方法があることを期待していました。
winapi - システム内のデフォルトの録音デバイスの存在を検出する方法は?
システムにデフォルトの録音デバイスがインストールされているかどうかを検出するにはどうすればよいですか? これは、Win32 API へのいくつかの呼び出しによって実行できると思いますが、これに関する経験がある人はいますか?
コントロール パネルを開いてサウンド オプションを確認するのではなく、コードを使用してこれを行うことについて話しているのです。
c++ - c++ で ::CreateProcess を呼び出して Windows 実行可能ファイルを起動するにはどうすればよいですか?
次の例を探しています。
- EXE を起動します
- EXE が終了するのを待ちます。
- 実行可能ファイルの終了時に、すべてのハンドルを適切に閉じます。
winapi - 現在どのウィンドウにキーボード フォーカスがあるかを監視する方法
現在どのウィンドウにキーボード フォーカスがあるかを追跡する方法はありますか。すべてのウィンドウで WM_SETFOCUS を処理できますが、代替のより単純な方法 (つまり、どこかに単一のメッセージ ハンドラー) があるかどうか疑問に思っています。
MFC で OnIdle() を使用して GetFocus() を呼び出すこともできますが、それは少しハックなようです。
c - コマンド プロンプト ウィンドウのタイトルを変更する方法
C 言語で、dos ベースのプログラムをダブルクリックして実行するたびに、コマンド プロンプト ウィンドウのタイトルを変更するにはどうすればよいですか。Windows API を使用する必要がありますか?
c++ - リストビューとツリービューの色を変更する最も簡単な方法
WTLまたはプレーンWin32コードのテキストと背景の色listview
とコントロールを変更する簡単な方法を見つけようとしています。treeview
これらのコントロールに完全な所有者の描画を実装する必要はありません。使用する色を変更するだけです。
画像が適切な透明度で描画されていることを確認したいと思います。
助言がありますか?