HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0628
やりやりGoogle Chromeの制御4解決


やりやり

リンク

2013/6/28(Fri) 09:06:21|NO.55292

HSPの勉強がてら、思いついたことを色々HSPで試しております。
そこで外部アプリとして普段使っているブラウザGoogle ChromeをHSPで制御できないかな、と
試していますがうまくいきません。

IEだとCOMオブジェクトを使って制御する例があるのですが、Chromeにはそのような
ものが見当たらないため、アプリキャプチャでキーを送ったりして制御してみています。

以下のようなスクリプトで試しておりますが、うまくキーが送られません。
期待している動作は
「新しいタブが開いて、アドレスバーに"http://www.yahoo.co.jp/"が入力される」
ですがまったく動作しません。


#include "hspext.as" aplsel "新しいタブ - Google Chrome" if stat != 0 { mes "Chromeが見つかりませんでした" goto *finish } mes "Chromeにキーを送ります" aplact aplkey 'T', 2 aplstr "http://www.yahoo.co.jp/" *finish stop

どのようにしたらHSPからChromeを制御することができるでしょうか。

本当はCOMオブジェクトを使ったIEの制御のように読み込み完了とかのチェックもしたい
と思っていますが、まずはキー制御だけでもできないかなと考えております。



この記事に返信する


cats

リンク

2013/6/28(Fri) 17:23:59|NO.55300

Chromeの新規タブのタイトルは「新しいタブ」で、「- Google Chrome」は不必要です。
また、指定URLをChromeで開きたいのなら下のようなスクリプトでもいいと思いますよ。

#module #deffunc gexec str prm1 newcom objVBsc, "ScriptControl" objVBsc("Language")="VBScript" vbs = {"Set GC = CreateObject("WScript.Shell") GC.Run ("chrome.exe -url "}+prm1+{"")"} objVBsc->"AddCode" vbs objVBsc->"Run" "vbcmd", "HSP Script Programing" delcom objVBsc return 0 #global gexec "chrome://newtab/" //gexec "http://www.yahoo.co.jp/ -url http://www.google.co.jp/";YahooとGoogleを開く(〜 -url 〜) stop
VBS使ってます。



やりやり

リンク

2013/6/29(Sat) 09:59:45|NO.55322

catsさん、ありがとうございます。

> Chromeの新規タブのタイトルは「新しいタブ」で、「- Google Chrome」は不必要です。

aplselに指定するウィンドウのタイトル名はフルに指定しないといけないと
思っていました。
今開いているタブのタイトルを指定すればaplselで捕獲されますね。


> また、指定URLをChromeで開きたいのなら下のようなスクリプトでもいいと思いますよ。

サンプルありがとうございます!
試したところ gexec URL で指定したURLのページが開かれました。

ということで指定したページを開く、という動作は満たすことができましたが、
そうすると他にも試したことが出てきました^^;

頂いたサンプルだと gexec を実行するたびに新しいタブが開きますが、
これを同じタブでページを切り替えたいと思っています。

他に、まだできませんが開いているページのリンク情報を解析して
ページ遷移させたりもしたいです^^;

最初の質問と同じになってしまいますが、上記のようなことをやろうとした場合、
それぞれ以下のような処理なら実現できるのかな、と考えています。

・同一タブで開く
 直接の方法は思いつきませんが、gexecで開く前に今のタブを"CTRL+W"で閉じる、と
 すればタブは増えていかないのでいいかな、と^^;

・HTML解析
 見ているページを"CTRL+S"で保存(ファイル名をどうするかは要検討)して
 そのファイルを開く。

 または"CTRL+U"でソースを表示し、"CTRL+A" + "CTRL+C"でクリップボードに
 コピーしてclipgetで取り出す


しかし、最初の質問同様、キーが送れないため、動作しません…。

なにか良い方法はないものでしょうか?



hamyuu

リンク

2013/7/3(Wed) 10:06:48|NO.55461

aplkeyでキー送信できませんよね・・・(?)
私の使い方が間違っているのかわかりませんがメモ帳以外にaplkeyでキーを送信できたことがありません。

なので、私はいつも↓の方法でキー送信しています。

newcom ShellApp, "Shell.Application"
newcom WshShell, "WScript.Shell" WshShell->"SendKeys" "^W" ;CTRLキーとWキーを送信

クロームでは試していませんがアプリに関係なく使えるものと思います。



やりやり

リンク

2013/7/8(Mon) 19:19:32|NO.55559

hamyuuさん、ありがとうございます。

> aplkeyでキー送信できませんよね・・・(?)
> 私の使い方が間違っているのかわかりませんがメモ帳以外にaplkeyでキーを送信できたことがありません。

いろいろ試したところ、IEには一部キーを送ることができました。

aplkey 'F', 4

とすることでファイルメニューが開きました。
Microsoft製のアプリにだけ送れるのかな?

> なので、私はいつも↓の方法でキー送信しています。

WSHのSendKeysを使う方法でキーが送れることを確認しました!
ただ、送るキーは小文字で記載しないとうまく送れませんでした。
CTRL+Wの場合は "^w" とする必要がありました。

これでようやく簡単な制御ならできるようになりました。



ONION software Copyright 1997-2023(c) All rights reserved.