Win32API質問箱 Build44
■ このスレッドは過去ログ倉庫に格納されています
0691デフォルトの名無しさん
2006/08/02(水) 15:51:31ある2つのプログラムをメンテナンスしています。
仮に「pg-1.exe」と「pg-2.exe」とします。
pg-1、pg-2は、ともにほぼ常時稼動するプログラムです。
pg-1はpg-2からCreateProcessで起動され、pg-1は起動された直後に
ウィンドウのタイトルの文字列をファイルに記述します。
ユーザーはpg-2上のボタンを押すことでpg-1を再起動することができます。
pg-2はボタンが押されたら、ファイルに記述された文字列を元にFindWindowし、そのウィンドウに
WM_CLOSEをPostします。終了したことを確認してから再度CreateProcessする仕組みです。
pg-1にバグが見つかって修正した場合、新しいpg-1.exeに入れ替える際の作業手順は次の形です。
1. 実行中のpg-1.exeのファイル名をpg-1-bk.exeに変更。
2. 新しいpg-1.exeを同じフォルダにコピー。
3. pg-2上のボタンを押して再起動。
この結果pg-1.exeは終了されるのですが、その後起動されるのがたまになぜかpg-1-bk.exeだったりします。
しかし、pg-2.exe内でのCreateProcessでは第一引数、第二引数で固定的に「pg-1.exe」を
指定しているのです。
私の頭で考えつくのは、システムのディスクキャッシュみたいなものがあって、
そこの内容が実際のファイル名の変更についていってなくて、新しいpg-1.exeを起動したつもりが
元のpg-1.exe(現pg-1-bk.exe)が起動されたのか?とかぐらいなんですが
入れ替えたpg-1.exeが起動されるようにするにはどうしたらいいんでしょうか?
普段はVB6erであんまり慣れてないので、お手柔らかにお願いします。m(_ _)m
■ このスレッドは過去ログ倉庫に格納されています