- ベストアンサー
AppActivateについて
他の起動中のアプリに対して、sendkeyをしたいのですが、 対象のタイトルが漢字なんです。 AppActivateのタイトル引数に漢字(半角も混在)を指定すると 引数が不正です。エラーが出てきます。 タイトルに指定する文字列は、漢字(半角文字混在)はだめなのでしょうか? 環境はVB5でWIN2000です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
むむっ! VB5だとできないのですか? 逆にびっくりしています。 VB5は手元にないために比較ができません。。。残念です。。。 それとOSのパッチバージョンはおそらく関係ないと思います。 ついでと言ってはなんですが、同様な機能を実現するためのAPIを紹介いたします。 これらを組み合わせたら、バージョンに影響されないロジックが組めるかも? ※EnumWindows(起動中のアプリを取得する) http://www.vbvbvb.com/jp/gtips/0751/gEnumWindows.html これで起動中のアプリを取得し、ハンドルを得ます。 ここのBBSにも何度かサンプルを載せています。 ※BringWindowToTop(ウインドウを最前面に表示する) http://oshiete1.goo.ne.jp/kotaeru.php3?q=366978 私に言えるのはこれだけです。。。 すいません。お役に立てなくて。。。 っていうかVB5持っている人の書き込みが欲しいところですね
その他の回答 (3)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
なるほど! WSHという手がありましたか!! んで、SLEEPですよね? うーむ。。。 多少異なりますが、、、 DoEventsでは代用になりませんか? っていうかVBの掲示板関係なくなってるしw
お礼
そうですね。スクリプトになっちゃいましたね。 結局、AppActivate関数のVB5とVB6の違いもよくわからないですし・・。 お付き合い、いただいてありがとうございました。 また、よろしくお願いします。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
私の環境では AppActivate "無題 - メモ帳" でいけましたが。。。 WIN2KSP3 VB6SP5
お礼
そうですか・・・。 やっぱり、vb5のせいでしょうか? vb6とvb5では、奥深いところで違いがあるようですね。 vb6は手元にないので確認できませんが・・。 いろいろ、試してみます。 どうも、ありがとうございました。 なにか、情報があればよろしくお願いします。 ちなみに、WIN2KSP2なのですが、これはあまり関係ないですよね?
- TAGOSAKU7
- ベストアンサー率65% (276/422)
おそらく、キャプションが違っているだけでは? 全角だろうと、半角であろうと、キャプションがそのようなのであれば、それで通るはずです。 もし自作アプリ側がShell関数で呼んでいるなら 変数=Shell("c:\hoge.exe") appactivate 変数 とする事ができるのですが。。。 実際にどのような使い方をしているか、実例を含めて書いてあったら、もう少しよい情報が得られると思います。
補足
早速のご回答ありがとうございます。 そうですね、例えばメモ帳(起動はせずに立ち上がっているもの) の題名が”無題”の場合に、appactivateに”無題”と指定すると エラーになります。 このメモ帳に”mudai.txt”と名前を付けて保存してあるものに対して、 appactivateに”mudai”を指定してあげると、問題なくメモ帳がアクティブになります。 例 TITLE01 = "無題" AppActivate TITLE01 ←プロシジャーの呼び出し、または引数が不正です。 TITLE02 = "mudai" AppActivate TITLE02 ←正常
お礼
本当に、いろいろありがとうございます。 私の知識不足に付き合っていただいて、本当に感謝しています。 ところで、いろいろ試してみたのですが、下記のようにオブジェクト定義 すると、漢字込みでもうまくいきました。 Set WSHShell = CreateObject("WScript.Shell") WSHShell.AppActivate "無題" もともと、AppActivateは普通に使用できていた(漢字以外では)ので 気にしてなかったのですが、WSHShellをきちんと定義しないとダメなのでしょうか? もし、そうであったら本当にお騒がせして申し訳ないです。
補足
お礼の欄での発言は違ってますね、すみません。 vb5の関数としてのAppActivateを使用していたのを、 WSHのAppActivateに変えたことになるんですね。 すみません。知識不足でした。 ところで、Wscriptオブジェクトはvbには存在しないと聞いたのですが、 vbでSleepメッソド等はどうやって使うのでしょうか?(使えるのでしょうか?)