00068 2009/08/12 01:32 山岡 異なるアプリケーション間でのコピー&ペースト

はじめまして。
たいへん参考になるサイトを公開していただきありがとうございます。

最近、以下の手順をすることが増えたのでなんとか自動化できないものかと考えています。

@INERTNET EXPLOLER上で文字列の範囲を指定
A範囲をコピー
B非アクティブウィンドウのメモ帳(起動済み)をアクティブ化
C貼り付け +  Enter
DINERTNET EXPLOLERをアクティブ化

以上のうち、A〜Dを自動化したいと考えております。

御サイトの以下のページを参考に少しいじってみましたが、
少し毛色が違うみたいで(それより私の未熟さの方が大きいですが(^_^;))、
うまくいきませんでした。

スクリプトからMicrosoft Excelを操作する(Webページから株価を取得)
http://www.scriptbrowserk.com/sbkScrTutUseExcel.html

上で書いているようなことは記述可能でしょうか?
簡単にご教授願えたら幸いです。
00069 2009/08/12 13:56 小塚 明義http://www.scriptbrowserk.com/RE:異なるアプリケーション間でのコピー&ペースト
00068へのコメント
山岡さん、こんにちは。
小塚です。

> B非アクティブウィンドウのメモ帳(起動済み)をアクティブ化
> C貼り付け +  Enter
> DINERTNET EXPLOLERをアクティブ化

残念ながら ScriptBrowserK に COM 以外で他のアプリケーションを操作する機能は実装されていません。
DebugLog メソッドを使用すれば、スクリプトパネルにテキストを保存することは可能です。
目的が単純なテキストの保存でない場合は難しいです。

他のアプリケーションをアクティブにして SendKeys を実行する程度の機能であれば、
1ヶ月程度待って頂けるのであれば実装できると思いますが、いかがでしょう。

00070 2009/08/13 02:11 山岡 RE^2:異なるアプリケーション間でのコピー&ペースト
00069へのコメント
小塚様

早い返信ありがとうございます。

>残念ながら ScriptBrowserK に COM 以外で他のアプリケーションを操作する機能は実装されていま>せん。

すみません。見逃してました。

> 他のアプリケーションをアクティブにして SendKeys を実行する程度の機能であれば、
> 1ヶ月程度待って頂けるのであれば実装できると思いますが、いかがでしょう。

これはvbscriptでは以下のような感じでしょうか?

無題のメモ帳をアクティブにして
ctrl+V Enterを押してるだけですが(^_^;)

Dim objWshShell

Set objWshShell = CreateObject("WScript.Shell")
objWshShell.AppActivate "無題"
objWshShell.SendKeys "^{V}",True
objWshShell.SendKeys "{ENTER}",True

あまり一般的に必要な機能ではないと思いますので、
お手を煩わせるのは申し訳ないです。

SendKeysを知らなかったので、それを知ることができて大変勉強になりました。
ありがとうございましたm(__)m

またわからないことがあったら質問させていただくかもしれませんが、
そのときはよろしくお願いいたします。

00071 2009/08/18 15:14 小塚 明義http://www.scriptbrowserk.com/RE^3:異なるアプリケーション間でのコピー&ペースト
00070へのコメント
山岡さん、こんにちは。
帰省モードのため、返信がものすごく遅くなってしまいました
大変、申し訳ありません。

> これはvbscriptでは以下のような感じでしょうか?

AppActivate なんて便利がメソッドがあったのですね。
知りませんでした。

まとめると、最初にご要望のスクリプトを ScriptBrowserK で実現するには
下記の通りになると思います。

下記の動作を行うスクリプト
> A範囲をコピー
> B非アクティブウィンドウのメモ帳(起動済み)をアクティブ化
> C貼り付け +  Enter
> DINERTNET EXPLOLERをアクティブ化

=================================================================
ActiveDocWin.copy()
Set objWshShell = CreateObject("WScript.Shell")
objWshShell.AppActivate "無題"
SendKeys2 "^(V){ENTER}", 0
Sleep(300)
objWshShell.AppActivate ActiveDocWin.Title & " - ScriptBrowserK"
=================================================================