拡張子を変えて実行するには

解決


ようちゃん  2005-11-11 06:25:33  No: 127529

拡張子を変えて読み込んで、Shellで外部プログラムから実行。
その後にまた、拡張子を戻すことはできますか?

外部のプログラムが複数立ち上がるのですが、可能でしょうか?
どなたかよろしくお願いいたします。

現在はDVDの中のデータを実行しています。


通ってみた  2005-11-11 10:00:39  No: 127530

そのファイルが使用されているとリネームできないと思うので、以下の手順でどうでしょうか?

1:ファイルをコピー(その時に拡張子変更)
2:Shell実行
3:コピーしたファイルを消す


ようちゃん  2005-11-11 17:34:53  No: 127531

ありがとうございます。

ただShellで実行するプログラムが
A  とすると、
実際の動きは

Shell(A,b)・・・・・bは実行ファイル
このとき、実はAがCのプログラムを立ち上げるのです。

Aは通常のアプリでVBで作成したものではありません。

このCの終了を見れるのでしょうか?

よろしくお願いします。


ガッ  2005-11-11 18:39:39  No: 127532

※横から失礼。
> ただShellで実行するプログラムが A とすると、
A="hoge.exe"としておきます。

> 実際の動きは Shell(A,b) (bは実行ファイル)
…Shell A & " " & b ということですか?

> このとき、実はAがCのプログラムを立ち上げるのです。
"hoge.exe"はランチャーのようなものなのですね。

> Aは通常のアプリでVBで作成したものではありません。

> このCの終了を見れるのでしょうか?
プロセスの状況を監視してCが起動しているかどうか(複数のCがある場合は難しいかも)を確かめるしかないかと。
もし、Aを経由せずにCを起動させられればプロセスIDを受け取れるのでより簡単にできると思います。

google検索:
WMI プロセス、CreateToolhelp32Snapshot、GetExitCodeProcess
など。


通ってみた  2005-11-11 19:22:43  No: 127533

Cのプログラムの名前(タイトルバーのところ)が変更されないという条件がありますが、FindWindowAPIを使って起動しているかどうか確認する事ができますね

Cが終了したらAを破棄してもよい、という設計ならば、

1:自アプリからコピー&リネームしたAを起動
2:AからB及びCを起動
3:自アプリでCが終了したか確認
4:終了していたらコピーしたAを消去

でできるかもしれませんね


ようちゃん  2005-11-12 08:44:59  No: 127534

と・とりあえずやってみます。
皆様ありがとうございました。

現在、社内データを他社で(限定した)閲覧できるものを作成しています。
これからもいろいろ質問に来ると思います。
よろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加