外部アプリを呼び出す、他

解決


bigforest  2011-02-13 02:39:00  No: 72339  IP: [192.*.*.*]

windowsアプリを作ったことの無い超初心者なので
変なことを言ってるかもしれませんが
作ってみたいソフトがあるので質問させてください。

"ファイルID","動画ファイル名"
"ファイルID","動画ファイル名"
と続くCSVファイルを読み込んで
テキストボックスにファイルIDを入力してOKボタンを押すと
入力したファイルIDに連動する動画ファイル名の動画を
外部プレイヤー(自分の場合GOMプレイヤー)を起動して再生し
再生が終わるとまたファイルID入力待ちに戻るソフトです。
またGOMプレイヤーは再生中に「CTRL+X」を入力すると
「再生が終わったら自動でプレイヤーを閉じる」設定になるのですが
その設定は保存されないので、再生する毎に入力しなければなりません。
(自動でキーボード入力したことにしたい)

VC++でこのような機能を実装することは可能でしょうか?
うまく検索するワードが思い付かず、そのようなことが出来るのか出来ないのか、
出来るならばどのようにすればいいのか情報が見つけられなくて困っています。

こうすれば可能という手段か、「ここを読め」という情報があれば
どうか教えていただけると助かります。
よろしくお願いします。

具体的には動画ファイルというのはニコニコ動画からダウンロードした動画で
ファイルIDは「sm12345678」のようなニコニコ動画のIDで重複するものはありません。
またファイル名にはスペースやカンマが含まれるものもあります。
csvファイルは他のツールを使うか、手動で作ります。

編集 削除
瀬戸っぷ  2011-02-13 12:22:04  No: 72340  IP: [192.*.*.*]

>VC++でこのような機能を実装することは可能でしょうか?
>うまく検索するワードが思い付かず、そのようなことが出来るのか出来ないのか、
>出来るならばどのようにすればいいのか情報が見つけられなくて困っています。

できるかできないか?で言えば可能でしょう。
CSVファイルから読み込んだ内容はリスト構造に読み込んでおけばいいですし、
GOMプレイヤーの起動はCreateProcess()辺りで再生するファイル名をコマンドラインで渡せば良いでしょう。
# 半角スペースを含む…ということなので、フルパスの上、前後を'"'で囲んでおく必要があるでしょう。

CreateProcess()で起動させたGOMプレイヤーのHWNDを取得するのが少々手間…かもしれませんが、方法に関しては検索すると出てくる…でしょう。
GOMプレイヤーにCtrl+Xを送信する方法についても、
右クリックメニューの項目のようなのでSPY++などでIDを調べてWM_COMMANDで投げるか、
将来的にIDが変わる可能性を考慮するならSendInput()でキー押下等を順番に送る…とかでしょうか。
# 動作に関わる設定ならば、コマンドラインオプションで指定できるのがパターンだったりしますが…GOMプレイヤーはそういうの無い…みたいですな。

編集 削除
bigforest  2011-02-13 20:48:49  No: 72341  IP: [192.*.*.*]

> 瀬戸っぷさん
まずは可能ということが分かったので安心しました。
ありがとうございます!
教えてもらったことを参考に挑戦してみます。
コマンドプロンプトからファイル名も一緒に送って
GOM.exeを起動することは出来たので、
それをCreateProcess()で送れば良いのですね!
「CTRL+X」についてもまずは、SendInput()というのを試してみます。
ありがとうございました!

編集 削除