- - PR -
VC++6.0 SP5常駐プログラムによるVB.NETプログラム起動について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-10 17:09
>私とゆうじゅんさんは、「本当に起動していないのか」と聞いているのです。何らかの理由で>起動できないなら、他の方法で起動させようとしてもムダではないですか?起動していて、ファ>イルが書き込めないならフォルダのアクセス権の設定を変えればいい話だし、別のところに書>き出しているならパスの指定を変えればいい。とても単純ですよね。
すいません。試した事を書いていませんでした。 ファイルの出力パスは定義ファイルから取得しており,単純にexeをダブルクリックするとファイルは出力されるのでフォルダのアクセス権限は問題ではありません。出力先が想定されているフォルダでないというのは,ありえない状態です。 そのプログラムから他アプリケーションで作成したexeは全て実行されます。 | ||||
|
投稿日時: 2004-02-10 17:23
はじめまして。
少し気になったので・・・。 ちなみにShellExecuteの戻り値は確認しました? | ||||
|
投稿日時: 2004-02-10 17:23
厳密名を付けているとか?厳密名を付けると、付いていないところからの呼び出しに制限があるそうです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2177&forum=7 その他、他のアプリケーションとの違いで思い当たる節はありませんか? | ||||
|
投稿日時: 2004-02-10 17:48
ごめんなさい。 少し言葉が足りないかと思い、追記します。 ShellExecute関数の戻り値は32以上が成功です。 戻り値を0(FALSE)かどうか見ていないですか? 単純に上記のパスのままでは、ERROR_FILE_NOT_FOUND が返ってくるような気がします。 ShellExecute関数に渡すパスがロングファイルネーム(スペースを含むパス)の場合、 パスの前後をダブルコーテーションで囲まないと、ShellExecute関数は スペースに続く文字列がパスなのか、起動するEXEに渡すコマンドライン引数なのか 判断できなくてエラーになるかと思います。 | ||||
|
投稿日時: 2004-02-10 19:00
ごめんなさい。
自分の環境で、VB.Netで作成したアプリをShellExecuteを試してみましたが ロングファイルネームは関係なく起動できました。 (ShellExecute関数、CreateProcess関数共に成功しました) 惑わせるようなことをお書きしてすいません。 ちなみに作成したVB.Netのアプリは http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml04/easyxml04_02.html ここにあるような、Form_Load時にファイルを吐き出すアプリです。 ただ、私の作成した環境では、ボタンを押せばShellExecuteを実行するアプリで 常駐型のアプリではないので、その辺りの環境も何かあるのかもしれません。 お役に立てないようで・・・ごめんなさい |