No.4ベストアンサー
- 回答日時:
種々試してみました。
結論:
mspaint = Shell("mspaint.exe " & "d:\sample.bmp", 1)
この間、1秒以上空ける
AppActivate mspaint
でした。
IDもタイトル行の文字列も試してみました。
が、いずれも実行OKでした。
1)
AppActivate を独立したボタンに定義しshell文が実行されてから数秒経過してボタンをクリックする。
2)
一度だけ起動のTimerイベントを使い、そのTimer内部で
Disabledにし、AppActivateを実行。
ちなみに
タイトル文字列を利用する場合
AppActivate "sample.bmp - ペイント"
でOKです。
IDを使う場合(mspaint)、Formのgeneralでdim定義もしくはglobalで定義すること。
理由は専門家に任せるとして。
参考になれば。
できました!!
mspaintを実行してから、waitが必要なのですね。
デバッグ時に"1644"のようなIDが取得できたので、waitは考えませんでした。
その後にAPI32実装したsendkeyを実行するのですが、こちらはwaitかけてたのですが。。
SUPERS様、どうもありがとう御座いました。
No.5
- 回答日時:
>WinXPではAppActivateが呼べないのでしょうか
WinXPでもAppActivateは使えるはずです。
#4のSUPERGさんを拝借して
mspaint = Shell("mspaint.exe " & "d:\sample.bmp", 1)
StopTime (100) 'アクティブになるまで待つ
AppActivate mspaint
としてみては
O_cyan様、有難うございます。
#4様にアドバイスいただき、解決いたしました。
Stoptime(100)はVBの有名サイトサンプルですね。
http://www.bcap.co.jp/hanafusa/VBHLP/keybdeve.htm
また、宜しくお願いします。
No.3
- 回答日時:
>実行時エラー5が出てしまいます
実行時エラー5はプロシジャーや引数の不正ですよね。
実行中のプログラムを識別するタスクIDをAppActivate
ステートメントで使用するですよね。
Dim Ret As Long
Ret = Shell("C:\Program Files\Accessories\mspaint.exe" & "d:\sample.bmp", 1)
AppActivate Ret
か
Dim Ret As Long
Dim MyFile As String
MyFile = Chr$(34) & "D:\sample.bmp" & Chr$(34)
Ret = Shell("C:\Program Files\Accessories\mspaint.exe" & MyFile, 1)
ではどうでしょうか。
この回答への補足
お返事有難うございます。
アドバイスに習ってプロシージャの引数を疑ってみたのですが、結果変わらずでした。
WinXPではAppActivateが呼べないのでしょうか、疑問です。。
#2さんの示されたAPI32でコードを組もうとしているのですが、いまいち使い方わからず
実装できてませんといったところです・・
ご助言いただけることがありましたら、又よろしくお願いします。
No.2
- 回答日時:
AppActivateの引数は、Shell()が返すタスクIDではなくタイトルバーの文字列ですよ。
例えば電卓なら「電卓」ですね。
ペイントの場合開くアプリケーションによってタイトルバーが変わるので、この場合はShell()やAppActivateを使わずに、OpenProcess(),SetForgroundWindow()やGetWindowThreadProcessId()などのAPIを使ったほうが確実です。
おっしゃる通り、標準は文字列を渡すようですが、MSDNヘルプで、Shellが返すIDを引数にすることもできるみたいです。
piyo様の示されたAPIを調べようと思います。ありがとうございました。
No.1
- 回答日時:
mspaint = Shell("mspaint.exe " & "d:\sample.bmp", vbNormalFocus)
これでは駄目でしょうか?
AppActivate mspaintのコードは不要ではないかと思います(絶対とは云えません)
この回答への補足
回答有難うございます。
>mspaint = Shell("mspaint.exe " & "d:\sample.bmp", 1)
やってみましたが、だめでした。。Shellの引数"1"はvbNormalFocusを示すです。。
ちなみに、mspaintにフォーカスをあてるのはこの後sendkeysを実行します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「読み込み違反」が起きたとき...
-
excel vbaから実行するexe実行...
-
clickonceの使い方
-
エスケープ・シーケンスによる...
-
アウトルックが起動しているか...
-
PHPでPDFの自動印刷
-
Excel-VBAでDSOFile.dll使える?
-
意味不明の実行時エラーで困っ...
-
VBSで起動したアプリが前面表示...
-
ManagementClassが見つからない。
-
64bitで作ったEXEを32bitで起動...
-
EXCEL VBAから他アプリケーショ...
-
VB.NETコーディング標準に沿っ...
-
MSペイントを画像ファイル名を...
-
MSDNのセットアップ方法(ヘル...
-
phpでの自動印刷
-
VS2005アプリケーションで、Ora...
-
VB XPで作成し、NT機で稼動
-
A4の2枚をA3の1枚にする編集方法?
-
mod_perl2を複数起動する際のpi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「読み込み違反」が起きたとき...
-
Visual Studio 「AnyCpu」について
-
excel vbaから実行するexe実行...
-
Windows PowerShellでC言語を実...
-
C++初心者です。 debug asserti...
-
C#VB、exeに埋め込んだexeの実行
-
実行ファイル(.exe)が別のPC...
-
ACCESSランタイムでエラー
-
VB6.0 exe作成時に実行時エラー...
-
一通ずつ処理したい(アウトル...
-
外部exe呼び出しの方法 ShellEx...
-
Format 関数のバグ?
-
Eclipse CDT MinGWによるC言語
-
JP1/File Transmission Server/...
-
VBで「ファイル名を指定して実...
-
VB.NetのWinsockについて
-
VBにてDLLをデバックする方法。
-
VB2005 Vistaで印刷ができません
-
androidで.exeを実行できますか?
-
ActiveX → VB を起動するとCre...
おすすめ情報