人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VC++6。MFCベースのプログラムについて質問です。
開発したプログラムから
JPGファイルを指定したイメージソフトで開きたい
と思っているのですが、良い方法は有りますせんか?
(関連付けられた実行ファイルからでならShellExecute
で開くことができるのですが、よい方法がわかりません。)
お手数をおかけしますが、
お答えいただきたく宜しくお願いします。




●質問者: harunoharuno
●カテゴリ:コンピュータ インターネット
✍キーワード:jpg mfc VC++ イメージ ソフト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● t_shiono
●50ポイント

指定したイメージソフトがコマンドラインパラメタは受け取らないということですよね?

その場合であれば、確認していませんが、

CreateProcessなどで対象イメージソフトを起動

FindWindowでイメージソフトのウィンドウハンドルを取得

SendMessageでメッセージ(ID_FILE_OPEN?)を送る

ことでうまくいくかもしれないです。

ただし、起動ユーザがAdministratorグループである必要があるようですが。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39201&am...

これ以上はイメージソフトに依存してしまうのではないでしょうか?また、Spyなどでどんなメッセージが飛んでいるか確認するのも有効かもしれません。

◎質問者からの返答

丁寧な回答ありがとうございます。

コマンドラインパラメタについてですが、

イメージソフトに依存してしまう気がしましたので

まだ試していません。(また、FhotoShopや

PaintShopのヘルプを調べてみましたがコマンドライン

の情報が得られませんでした。

これらはメーカに問い合わせるしかないのかな?)

>>CreateProcessなどで対象イメージソフトを起動

>>FindWindowでイメージソフトのウィンドウハンドルを取得

>>SendMessageでメッセージ(ID_FILE_OPEN?)を送る

>>ことでうまくいくかもしれないです。

>>ただし、起動ユーザがAdministratorグループである必要があるようですが。

SendMessageでメッセージ(ID_FILE_OPEN)を送る方法があるんですね。

面白い方法を教えていただきありがとうございます。

しかし、Administratorグループじゃないとだめという制限があるのは

ちょっと厳しいです。

WindowsのGUIでは実行ファイルにファイルを重ねるだけで、

任意のプログラムからファイルを読み出すことが出来るので、

API一発でできるのではと期待していましたが、

それは無理なんですね。

イメージソフトに依存しない方法も

教えていただけるとありがたく宜しくお願いします。

(無理な場合は、無理っぽいという回答でも構いません。)


2 ● rfu
●50ポイント ベストアンサー

ダミーです

http://www.google.com/

これで指定のソフトでファイルを開くことはできないでしょうかでしょうか?

::ShellExecute(NULL,"open",対象イメージソフトの実行ファイルフルパス,対象JPGファイルのフルパス,NULL,SW_SHOWNORMAL);

◎質問者からの返答

回答ありがとうございます。

試してみたところ、なんかよさそうでした。

もうちょっと試してみて問題がないようでしたら、この質問は終了します。

本当にありがとーございます。


3 ● ardarim
●75ポイント

2番目の方の回答でよいと思いますが補足で。


「WindowsのGUIでは実行ファイルにファイルを重ねるだけで、任意のプログラムからファイルを読み出すことが出来る」というのは、プログラムのアイコンの上に画像ファイルをドラッグ&ドロップすることだと思いますが、これは、プログラムの引数(コマンドラインパラメータ)に画像ファイルを指定して実行することと等しいです。


コマンドラインパラメータはイメージソフトに依存しますが、上記の操作でたいていの場合は正しく表示されることからわかるように、一般的にはファイル名を指定すれば開いてくれるソフトがほとんどです。


ちなみに、画像ファイルのパスは " " で囲んだほうが無難です。(パスに空白を含む場合があるので)


ダミー

◎質問者からの返答

お世話になっております。

コマンドラインパラメータでうまくいくならば

ロジック上大きな変更をせず、プログラムを

変更することができます。可能でしたら情報

ソースも教えていただけると嬉しいです。

回答ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ