問題タブ [win32-process]
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.
internet-explorer - EXEから「メモリ内HTML」ブラウザを読み取る
「InternetExplorer8」に表示されるWebページの「メモリ内」HTMLを外部プロセス(EXEアプリケーション)から読み取る必要があります。
簡単に言うと、ブラウザに「入力テキスト」が表示されているページを読み込んでから、入力を入力し、ページを送信する前に、EXEアプリケーションに切り替えて、入力した値を読み取る必要があります。入力。
SPY ++を試しましたが、WebページにINPUTの「クラス」がなく(通常のWin32アプリのテキストボックスのように)、ブラウザーのクライアント領域全体が「InternetExplorer_Server」クラスとして表示されます。
私はこれを何度もアプリケーション間でデータを統合するために行ってきましたが、常にWin32アプリに対して、Imがブラウザーから読み取ろうとするのはこれが初めてであり、Imはここで本当に途方に暮れています。
私が確かに理解している唯一の考えは、実行中のブラウザーの実際のDOMにアクセスする必要があるということです。
ロードされたページは空になり、必要なのはページを送信する前にユーザーが入力したデータであるため、ある種のWebコントロールを使用してページをロードしてから解析することはできないことに注意してください。
どこから探し始めるかについての提案はありがたいです:)
c++ - プロセスが REAL_TIME 優先度に設定されていることを確認する方法
Windows XP で Visual Studio を使用してコンソール C++ アプリケーションを開発しています。このアプリケーションは、スケジューラに対して可能な限り高い優先度でなければなりません。
これは、10 ミリ秒ごとにフレーム バッファを更新するように調整されたリアルタイム データ取得システムであるため、他のシステム プロセスが干渉してはならないということです。
各フレームの時間的な長さをファイルに保存しようとしましたが、目的の時間の周りに奇妙な「量子化」が見つかりました。なんで?
また、長さが基本フレーム時間の倍数になることもありますが、これは内部 OS プロセスの干渉が原因ですか?
プログラムの優先順位を最高にする方法はありますか?
windows - 指定されたプロセス ID のプロセスのすべてのスレッドを見つける
現在のプロセスに属するすべてのスレッド ID を見つけるためのより良い方法があるかどうかを調べようとしています。TH32CS_SNAPTHREAD で CreateToolhelp32Snapshot を使用し、スレッドを繰り返し処理して、スレッドのプロセス ID が現在のプロセス ID と等しいかどうかを確認することは解決策のようですが、実行中のすべてのスレッドの繰り返しを避けたいと考えています。特定のプロセスに属するスレッドを繰り返し処理したいだけです。高速でシンプルな API があれば教えてください。私はC ++でそれを行う必要があります。
ありがとう、アビナイ。
c++ - FindFirstFile() を使用してファイルを移動できますか
FindFirstFile() を使用して、あるディレクトリから別のディレクトリにファイルを移動またはコピーできますか? ハンドルを返すので、このハンドルを使用して実行できますか?
c++ - RemoveDirectory 関数が一番上のフォルダを削除しないのはなぜですか?
参照: codeguru.com/forum/showthread.php?t=239271
以下の機能を使用してフォルダを削除すると、最上位のフォルダを除いて、すべてのフォルダ、サブフォルダ、およびファイルが削除されます。を除いて、その下にあるすべてのものは削除されc:\folder1\folder2
ます。folder2
folder2
問題を見つけるための助けをいただければ幸いです。FindClose
デバッグ中に、関数がファイルハンドルを正常に閉じていたが、32 を返していることに気付きましたGetLastError
(「別のプロセスで使用されているため、プロセスはファイルにアクセスできません」)。
multithreading - Win32 プロセス内で実行される最初のスレッドは「プライマリ スレッド」ですか? セマンティクスを理解する必要がある
CreateProcess()
withを使用してプロセスを作成し、リモート プロセス内に小さなコード パッチを作成して DLL をロードし、関数(CREATE_SUSPENDED
その DLL によってエクスポートされた) を呼び出します。コードで。VirtualAllocEx()
..., MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE
WriteProcessMemory()
FlushInstructionCache()
その後、CreateRemoteThread()
呼び出してそのコードを呼び出し、hRemoteThread
. リモート コードが意図したとおりに動作することを確認しました。注:LoadLibrary()
このコードは単純に戻ります。と以外の API は呼び出しませんGetProcAddress()
。その後、エクスポートされたスタブ関数を呼び出します。この関数は、現在は単純に値を返し、スレッドの終了ステータスとして渡されます。
PROCESS_INFORMATION::hThread
ここで、奇妙な観察が行われます。 がまだ中断されていることを思い出してください。の終了コードを単に無視hRemoteThread
し、それが終了するのを待たない場合、すべてが「正常」になります。呼び出したルーチンがCreateRemoteThread()
戻っPROCESS_INFORMATION::hThread
て再開され、(リモート) プログラムが実際に実行されます。
ただし、次のことを呼び出すWaitForSingleObject(hRemoteThread, INFINITE)
か実行すると(同じ効果があります):
これが続くと、再開される前CloseHandle()
に終了し、プロセスは単に「消えます」。プロセスを停止させずに何とか終了させれば十分です。hRemoteThread
PROCESS_INFORMATION::hThread
hRemoteThread
PROCESS_INFORMATION::hThread
これは、競合状態のように疑わしく見えます。コードをそのままにしても、特定の状況下でhRemoteThread
はまだ高速であり、プロセスが「消える」可能性が高いからです。
これは、プロセス内で最初に実行されるスレッドが自動的にプライマリ スレッドになり、そのプライマリ スレッドには特別なルールがあることを意味するのでしょうか?
特定のスレッドが終了したときではなく、最後のスレッドが終了したときにプロセスが終了するという印象を常に受けていました。
また、注意してください:単純に戻り、戻るのを待っている間はまだ中断されているExitProcess()
ため、ここに関与する呼び出しはありません。hRemoteThread
PROCESS_INFORMATION::hThread
hRemoteThread
これは、Windows XP SP3、32 ビットで発生します。
編集: Sysinternals Process Monitor を試して何が起こっているのかを確認したところ、以前からの観察結果を確認できました。挿入されたコードはクラッシュなどしません。代わりに、コードが挿入されたプログラムを閉じる前に、スレッドを待機しないとスレッドが終了しないことがわかります。への電話をCloseHandle(hRemoteThread)
延期するか何か考えています...
編集 + 1:ではありませんCloseHandle()
。テストのためだけにそれを省略した場合、スレッドが終了するのを待っているときの動作は変わりません。
c++ - WinAPI を使用して Internet Explorer 9 にメッセージを送信する方法
環境:
Windows 7
Visual Studio 2010 c++ Win32 API
Internet Explorer 9
OpenGL
プロジェクトの目的:
Internet Explorer9 の画面を 3D 平面 (GL_QUADS) でリアルタイムにテクスチャリングすること。および 3D 平面でのマウス ピッキング、相対マウス位置を含むクリック メッセージが実際の Internet Explorer 9
に投稿されます。オブジェクト ビューは、「アプリケーションで 3D テクスチャリングとマウス アクションを使用して他のプログラムを制御する」です。
コード:
SendMessageの代わりにPostMessageを使用しましたが、結果は同じです。
Internet Explorer は反応を送信しません。
Microsoft Spy++ メッセージ ウィンドウを使用して視聴しています。
私のアプリケーションコードを使用してメッセージを送信するのは次のとおりです。
もう少しメッセージが送信されると思います。しかし、どのメッセージがこれを行うことができるのかわかりません。
誰がそれの解決策を知っていますか?
そして、この方法を使用して一般的なアプリケーションを制御することを誰が知っていますか?
助けて!
perl - perlを介してサービスとして起動したときに、cmd.exeプロセスに「title」プロパティが設定されていないのはなぜですか?
私は自分のPerlをWindows上のサービスとしてソフト実行しています。
この目的のために、Win32 :: Daemonモジュールを使用してSCM(サービス構成マネージャー)を操作し、サービスを開始/停止します。
サービスを起動するには、system() perlコマンドを使用します。
コマンドは次のようになります。
このコマンドをcmd.exeから直接起動すると、プロセスのタイトルが適切に設定されています。
開始したサービスを介してコマンドを起動すると、プロセスのタイトルが空になります。タスクマネージャーによると、起動されたコマンドは次のとおりです。
私は何かが足りないのですか?
注:サービスにタイトルを設定しようとしています。これは、サービスの停止フックでタイトル名をパラメーターとして使用して「taskkill」コマンドを起動するよりも、サービスを停止するためのよりクリーンな方法が見つからなかったためです(生成されたプロセスのPIDをキャッチする方法がわからない)
ありがとう。
c++ - GetPrivateProfileInt-デフォルト値のみを読み取る
コンテンツを含むc++の.init設定ファイルを読み込もうとしています。
[IPアドレス]
IPアドレス=169.254.115.22
[ScanConfiguration]
Scanfrequency = 2500
ScanResolution = 2500
StartAngle = 700000
StopAngle = 1100000
今まで、私はデータを読み取るためにこのコードを使用しました。私のプロジェクトはUnicode文字セットであるため、文字列値の前にLを使用しています。
しかし、ファイルから正しい値ではなく、変数のデフォルト値のみを取得しています。私はまだレジストリで何もしていません。正しい値を取得するためにレジストリで行う必要があることはありますか。
どんな提案も役に立ちますありがとう。
c++ - win32、c++ で 2 つのプロセス間で同じ stdout を共有する
Win32 コンソール アプリケーションに 2 つのプロセスがあります。1 プロセス - メイン プログラム 1 プロセス - cli プロセス。
これら 2 つのプロセスは、UDP パケット (ソケット) を介して通信します。Cli は、メイン プログラム内の特定のエンティティに対して DUMP の要求を発行します。
ダンプを CLI の stdout に出力したい (printf を使用すると、メイン プログラムの stdout に出力されます)。
どうすればいいですか?FILE* などを渡したい.... ダンプ先の出力デバイスを渡します。
どうすればそれができますか?できれば全然
ありがとうございます