特定のWebサイトを使用できるプログラムを作成したいと思います。かなり些細なこと(テキスト)を認識し、リンクをクリックし、フォームを提出できるようにしたい。C++によるWebブラウザの制御
サーバーのログを実際のユーザーのアクティビティと変わらないようにしたいので、通常通りブラウザの外では操作したくありません。私はjavascriptのようなものをページ上で期待どおりに動かすことができるようにしたいので、送信されているuser-agentを偽装したくはありません。
これを達成するにはどうすればよいですか?それはWindowsで動作します。私が1つのブラウザを選ぶ必要があった場合は、Firefoxが第2の選択肢としてChromeになります。それほど複雑ではない場合は、Chrome、Firefox、IE、Edgeで動作させることができますが、1を選択するだけでもOKです。
私はC++をよく知っていて、このプロジェクトに使用したいと考えています。 (はい、よく知っている人のために他の言語の方が速い開発をしているかもしれませんが、それは私が守りたいものです)。
データベース外でブラウザとやりとりすることができるようにする必要があります。私は、これを処理するためにプロセス間通信が可能なブラウザアドオンを持っているか、またはブラウザを効果的に掻き集めてユーザが見ている入力を作成できる完全に外部のプログラムを持っているかのいずれかです。
あまり知られていない意見、それは痛い。これらのAPI呼び出しの置き換えは[SendInput](https://msdn.microsoft.com/en-us/library/windows/desktop/ms646310.aspx)です。信頼性に関しては 'mouse_event' /' keybd_event'と異なり、セキュリティは異なりません。さらに悪いことに、依然として、誤ったユーザー入力は、間違ったアプローチです。 [UIオートメーション](https://msdn.microsoft.com/en-us/library/windows/desktop/ee684009.aspx)は、UIを自動化する正しい方法です。 Internet Explorerを扱っている場合を除きます。 IEは独自の[自動化インターフェイス](https://msdn.microsoft.com/en-us/library/hh995096.aspx)を提供しています。 – IInspectable
面白い、意見を指摘してください。マウスイベントとキーボードイベントは意見ではありませんが、ask-erによって尋ねられたように、本物のユーザー入力を送信するMicrosoftのAPIがあります。 msdnのドキュメントでこれまでに読んだことのない信頼性向上に関するドキュメントを提供してください。これらのAPIは、サーバーと区別できない本物のユーザー入力を提供します。この機能はUIPIの対象です。アプリケーションは、完全性レベルと同等以下のアプリケーションにのみ入力を投入することが許可されています。私は時代遅れのAPIに関するこのような記述は見つけられません。 –
[信頼性の向上](https://msdn.microsoft.com/en-us/library/windows/desktop/ms646310.aspx):*これらのイベントは、ユーザーが挿入した他のキーボード入力イベントやマウス入力イベントには散在しません(キーボードまたはマウスを使用して)、またはkeybd_event、mouse_event、またはSendInputへの他の呼び出しによって呼び出されます。入力が 'keybd_event'が書き込むのと同じバッファに入り、' keybd_event'で合成された入力はUIPIの対象となります。合成入力は、例えば、低レベルのマウス/キーボードフックを使って本物の入力と区別できます。 – IInspectable