秀インストールVer1.0についてNo.00260
VASTALTO さん 99/08/02 22:52
 
はじめまして、いつも秀シリーズにはお世話になっています。

小生、趣味の日曜プラグラミングをやっており、最近 Windows95/98用の
フリーソフトの開発もはじめたところです。貴兄作の秀インストールを
配布用に使わせていただいています。他のフリーなインストールソフト
と比較して、コンパクトさと簡便さが気に入っています。ありがとうござ
います。

さて、以下のようなお願いをするのは心苦しいのですが、聞いていただけ
ないでしょうか。

要点は『「スタート・プログラム」や「デスクトップ」にショートカット
を作成するときに、プロパティの「作業フォルダ」名を指定できるように、
設定ファイルで可能にしてほしい。』ということです。

プログラムによって、カレントディレクトリがどこでもよいものと、ある
特定のディレクトリ(主にインストールされたディレクトリ)であって欲
しいものとがあります。現在の秀インストールVer1.0では、ショートカッ
トのプロパティの「作業フォルダ」は空欄に設定されるようになっていま
す。

例えば、設定ファイルの[Install]セクションで、
   WORK = 1
と記述すれば、ファイルのインストールされたフォルダ名が、ショートカ
ットのプロパティの「作業フォルダ」に入るようにできればいいと思いま
す。

もちろん、「ソースをつけてるから、それを修正して、どうぞ。」と言わ
れるのはわかっているのですが、小生、力不足のため C++ を使うことが
できません。(WATCOM C と Win32API でプログラムを書いています。)
(-_-;)ゞ

というわけで、気が向いたとき(&時間の余ったとき)で結構ですので、
上記の変更を加えたものをバイナリで公開していただけるならば大変うれ
しく思います。あつかましいお願いを申してすみませんでした。

なお、README.TXTでは「●[Install]セクション ...... ただし、1=の所
には必ずアプリケーションそのもののEXEファイルを書くようにしてくだ
さい。」と書いてありますが、ここに "xxxx.hlp" などを書いてもちゃん
と処理してもらえるようになっています。これは大変便利ですので、なく
さないようにお願いします。(実は、.hlpファイルと.wavファイルのセッ
トをインストールしようとして、上記のようなお願いをする必要が出たの
でした。)

よろしくお願いします。

VASTALTO

[ ]
RE:00260 秀インストールVer1.0についてNo.00261
秀まるお さん 99/08/03 16:36
 
 カレントディレクトリですが、ショートカットの「作業フォルダ」に何も指定して
ない場合は普通EXEファイルの置いてある所が作業フォルダになるはずだったんです
が、そういえばWindows98から仕様が変わってしまったのかもしれないです。

 というわけで、作業フォルダを指定してやる必要がありそうですが、ソースコード
がコンパイル出来るなら、HideInst.cppの584行目付近に

   psl->SetWorkingDirectory( ... )

 を入れてやれば済むことです。

 そちらではC++ソースコードのコンパイルが出来ないようなので、しいて僕の方で
いじってもいいんですが、そちらのEXEファイルの方にカレントディレクトリを変更
する処理を入れてしまう方が話が早いと思います。

 WinMainの先頭付近にでも以下のようなコードを入れてしまえばいいと思います。

int WINAPI WinMain( HINSTANCE hInstance, ... ) {
    {
        char sz[MAX_PATH];
        char* pchYen;
        GetModuleFileName( hInstance, sz, sizeof(sz) );
        pchYen = strrchr( sz, '\\' );
        if( pchYen != '\\' ) {
            *pchYen = '\0';
        }
        SetCurrentDirectory( sz );
    }



[ ]
RE:00261 秀インストールVer1.0についてNo.00262
VASTALTO さん 99/08/03 19:41
 
どうもお世話になります。

> ソースコードがコンパイル出来るなら、HideInst.cpp の584行目付近に
>
>          psl->SetWorkingDirectory( ... )
>
>        を入れてやれば済むことです。

ということならば,

        psl->SetPath( szInfo2 );
        psl->SetDescription( szInfo1 );
        psl->SetWorkingDirectory( szDestDir ); // 追加

でよろしいですか?

当方の処理系 Watcom C/C++ は,勿論 C++ソースコードのコンパイルができる
はずなのですが,HideInst.cpp をコンパイルすると592行目で「unsigned short
は wchar_t * と型一致しない」旨のエラーが出ます。それで一行前の
        WORD wsz[MAX_PATH];
の部分を
        wchar_t wsz[MAX_PATH];
と変更してコンパイルすると,.objファイルを作るところまでは行くのですが,
「_IID_IPersistFile は未定義参照」のエラーでリンカーからはねられてしま
います。(この件はベンダーへ問い合わせています。)

> そちらのEXEファイルの方にカレントディレクトリを変更する処理を入れて
> しまう方が話が早いと思います。

すみません。実は(前の発言でも少し書いたのですが)今回は変則的な使い方
をしています。今回インストールしようとしているのは,ヘルプファイル2個
とWaveファイル6個のセットです。EXEファイルは含んでいません。ヘルプマク
ロから同じディレクトリにあるWaveファイルを鳴らす仕掛けになっています。

エクスプローラから起動する場合はよいのですが,デスクトップアイコンやス
タートメニューからの起動では,作業ディレクトリが指定されていないとWave
ファイルを見つけられないようです。ヘルプマクロを調べたのですが,カレン
トディレクトリを指定する方法は無いようです。

VASTALTO

[ ]
RE:00262 秀インストールVer1.0についてNo.00263
秀まるお さん 99/08/04 09:52
 
 まいどどうも。インストール対象がEXEでない件了解しました。

 んでもって、リンクの時にエラーが出る件ですが、_IID_IPersistFileというシン
ボルは、こちらのVisualC++のライブラリでは、uuid.libというファイルがexportし
ているようです。というわけで、そちらにuuid.libがあればそれを指定すればリンク
できると思います。

 それでもダメでしたらこちらでリンクしたEXEをお送りします。



[ ]
RE:00263 秀インストールVer1.0についてNo.00264
VASTALTO さん 99/08/05 00:02
 
どうもお世話になります。

>  んでもって、リンクの時にエラーが出る件ですが、_IID_IPersistFileという
> シンボルは、こちらのVisualC++のライブラリでは、uuid.libというファイルが
> exportしているようです。というわけで、そちらにuuid.libがあればそれを指定
> すればリンクできると思います。

ありがとうございます。これでリンクできました。一応簡単に動作確認もしま
して,「作業フォルダ」にインストールディレクトリを指定できるようになり
ました。

ただ(これはとり越し苦労かも知れませんが),当方のWatcom C/C++ は Win
NT/95 対応処理系なのに,hideinst.cpp のコンパイル・リンクが一発でとおら
ないことに一抹の不安を感じています。当方のスキル不足,バイナリの品質,
オプションを色々変更したことによる副作用など。さらに本日は,生成した
EXE ファイルの更新日時が空白(DIRコマンドで見ると 80-01-01 0:00)にな
ることが2回に1回は発生し,OSまたは処理系が不安定になっているようです。
この状況では当方でコンパイルしたEXEを配布するのは自信が持てません。(;_;)

> それでもダメでしたらこちらでリンクしたEXEをお送りします。

そこで恐れ入りますが,「作業フォルダ」に対応したEXEをお送りいただけな
いでしょうか。今回の配布に添付させていただこうと思います。

よろしくお願いします。

VASTALTO

[ ]
RE:00264 一件落着かな?No.00265
秀まるお さん 99/08/05 10:31
 
 んでは

    psl->SetWorkingDirectory( szDestDir );

 を追加した秀インストールをNIFTYのID宛にバイナリメールで送っておきます。

 これで一件落着かな?


[ ]
RE:00265 OKですNo.00266
VASTALTO さん 99/08/05 21:17
 
hideinst.lzh 届きました。動作確認もできました。
どうも有難うございました。

ではでは。

VASTALTO

[ ]