• 締切済み
  • 困ってます

C#でHTAを操作

「HTAを起動し、そのHTA上のアンカーリンクをクリックする。」という一連の操作を、プログラムで自動化したいと考えております。 現在、C#での実装を試みておりますが、HTAを起動することまではできるのですが、アンカーリンクをクリックすることが実現できておりません。 良い方法をご存じの方がいらっしゃいましたら、ご教示ほどよろしくお願いいたします。 ※既存のHTAを操作するので、HTAに手を加えることはできません。 ※C#ではなく、VBSなどでの実装方法でも構いません。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数48
  • ありがとう数1

みんなの回答

  • 回答No.1

HTAという、いわば外部のアプリに対して、クリックなどを送ることそのものが、あまりおすすめできない方向です。ブラウザで表示された画面の情報を取得し、メッセージを送信、これらを必要に応じて繰り返す泥臭い手続きになるからです。 具体的には、外部アプリを今回のようなやり方で操作するとしたら、ロードされたアプリの位置を取得し、想定されたアンカーリンクの位置に対してクリック送る方法や、TABキーでフォーカス移動して、Enterキーを送るなどの方法が考えられます。 アプリのロードが終了したかなどを、その都度解析するよう組むことが比較的良い方法ですが、よくあるのは単に待機時間を設定することです。しかし、マシンスペックや通信環境などで違いが出てもおかしくありませんから、待機時間だけでは、うまく動作しないことがあると思います。 ※ ターゲット(実行を想定した環境)によって、処理を切り替える必要があるかもしれないです。例えば、Windowsの8.1と10での違いなどです。 ※ メッセージを送るところについては、Googleなどで以下のキーワード検索が考えられます。 ブラウザ sendkeys ブラウザ sendmessage ※ Visual Basic6で、自身にロードしたページのリンクをクリックしたり、テキストボックス入力する、そんなsendするサンプルを見た記憶はありますが見つかりません。すみません。C#でもあるとは思いますが、それも見つかりません。すみません。 直接のご要望を満たすものではないですが、糸口にはなると思い、ご案内してみました。参考にならなかったらごめんなさい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 キーイベントを送る方法だと、仰る通り待機時間での調整となってしまいますので、タイミングによっては正常に動作しないことがありました。このため、C#でIEを操作する方法と同じような方法で、HTAも操作できないかと思った次第でした。 VB6でのサンプルの件、私も探してみたいと思います。

関連するQ&A

  • C# タスクスケジューラ操作について

    お世話になります。 Windows7Pro VisualStudio2005C# で業務アプリケーションを開発しております。 C#のコードでタスクスケジューラの操作を考えております。 現状コマンドプロンプトを起動し、命令文を実行する方法で考えております。 目的としましては、既に作成してあるタスクに対して、 C#のコードから実施時刻、使用有無、実行間隔を変更したいと考えております。 しかしながら、以下の命令文で実施時刻、使用有無は変更できますが、実行間隔が操作できません。 SCHTASKS /CHANGE /RU ********* /RP ***** /TN TEST /ST 17:30 /ENABLE 変更のコマンドがご存知の方がございましたら、ご教示いただければ幸いに存じます。 また、本稿C#のカテゴリに投稿した理由としまして、 C#2005で本処理を含むタスクスケジューラを操作するコードがございましたら、 ご教示いただければと思いまして記述を致しました。 合わせてご教示いただければ幸いに存じます。 以上宜しくお願い申し上げます。

  • HTAで、こんなボタンを作成したい。

    手順書にそってバッチファイルを実行しているのですが、やり忘れなどを防ぐ為 HTA+VBSで簡単な操作パネル的(ボタン型ランチャー?)なものを作ろうと思っていますが、 どう作成してよいのやら不明です。 イメージしているものは、 『(1)設定』ボタンを押下で、(1)バッチファイル実行 Msg:(1)バッチファイルが終了しましたか[OK]   Msgをクローズして →『(1)設定』ボタンの色を赤に変える※過程が分かるようにしたいため   で上記のようなボタンを15個ぐらい作成。 ※途中で再起動しても、進行過程が残るようにしたいと思うのですが、ご教授願えますでしょうか。  具体的なコードと簡単で構わないので解説して頂けましたらと思います。  以上、よろしくお願いいたします。

  • C#のFileSystemWatcherでのファイル監視について

    見ていただいてありがとうございます。 どうかお知恵を拝借させてください。 '----------------------- 開発環境 WinXp pro C#2005 '----------------------- C#にて、[とあるフォルダ内のファイル監視処理]を実装しています。 FileSystemWatcherのCreatedで、このフォルダ内でのファイル作成 を監視する様に実装したのですが、問題が発生しました。 ftpを複数起動し、このフォルダに対し、ほぼ同時に複数件の ファイルをダウンロードしたところ、一部ファイルのCreatedが 発生しませんでした。 同様の現象が発生した方、その解決法を御教示ください。 また、FileSystemWatcher以外での良い実装方法があれば 御教示ください。 困り果てています。 宜しくお願いいたします。

  • VC#のフォーム操作に関して

    Visual C#初心者ですが、 Windowsフォーム操作のプログラムの勉強をしております。 現在、実施したい内容は、フォーム1上のあるボタンを押下すると、フォーム2が表示されるといったものを作成したいのですが、実際に作成するにはどのようにして良いのかがわかりません。 大変に抽象的な質問となってしまい申し訳御座いませんが、上記の方法をご存じの方いらっしゃいましたら、ご教授お願いいたします。

  • C#でのプログラム方法

    C#(コンソールでの実行ファイル)でのバッチファイル実行方法に悩んでいます。 実行イメージとして **************************************** 1. C#(A.exe)をダブルクリックで起動する 2. C#プログラム[A]はバッチファイルを起動する 3. C#(B.exe)をダブルクリックで起動する 4. C#プログラム[B]は2で起動したバッチファイルを終了させる(=DOS窓をCloseさせる?) **************************************** を考えています。 1~2の処理はなんとなくわかったのですが 4にてバッチファイルが起動しているDOS窓をどうCloseさせたらいいのかわかりません。 助けてください。

  • 【VBScript】VBSでOpenOfficeを操作したい

    【VBScript】VBSでOpenOfficeを操作したい VBSでOpenOfficeを操作できますか? 以下のページでVBSでExcelを操作する方法が記載されていますが、 ExcelではなくOpenOfficeがインストールされている環境では どのように実現できるのでしょうか?他の言語ではできる? ヒントでも良いので教えて下さい。 www.happy2-island.com/vbs/cafe02/capter00401.shtml

  • C#によるExcel操作

    お世話になります。 VC#2010ExpressでExcelを操作するプログラムを組んでいます。 アクセスして読み書きするところまではできましたが、 下記の三点が解りません。ご教授ください。 1.特定のセルの書式設定を『通貨』にする方法 2.指定したシートの任意のRowにオートフィルタを設置する方法 3.指定したセル位置で『ウインドウの分割、解除』、『ウインドウの固定』を行う方法 以上、よろしくお願いいたします。

  • C#でUWSCを起動したい。

    C#のボタンをクリックすると、拡張子.uwsを起動するプログラムが必要です。 非常に困っており、どなたかお力をお貸しください(泣)。 以上、どうかご回答よろしくお願いします<(__)>!。

  • C++とC#を使ったアプリケーション作成

    アプリケーションと言って良いのかは微妙なのですが、アプリケーションを作ることになりました。 既存のいくつかのプログラムを1つにまとめて、GUIで操作できるようにするのが最終目的です。 もとのプログラムはC++で書かれています。 今回は、GUIの部分を 「Microsoft Expression Blend 2」でデザインしようと考えているのですが、 GUIの部分をC#で作成し、メインの処理をC++で書くことは可能なのでしょうか? それとも、メインの処理をC#で書き直すことが必要でしょうか? 知恵を貸してください。 よろしくお願いします!!

  • C#での「Ctrl+C」の実現について

    C#で以下のようなプログラムを考えています。 ******************************************* 1. ボタンを押すと特定のバッチファイルを実行する。 2. バッチファイルを「tshark.exe」を実行する。 3. ボタンを押すと「Ctrl+C」にて2のバッチファイルを停止する。 ******************************************* このとき、バッチファイルの実行方法はなんとなくわかったのですが 3の処理の実装方法がわかりませんでした。 助けてください。