スタートアップメニューからのパス – プログラミング – Home

スタートアップメニューからのパス
 
通知
すべてクリア

[解決済] スタートアップメニューからのパス


ドンドン
 ドンドン
(@ドンドン)
ゲスト
結合: 20年前
投稿: 19
Topic starter  

お世話になります。現在VCで開発を行っております。
環境は以下の通りです。

   Win2000 VC6.0

現在、カレントディレクトリのパスを返すexeファイルを作成しました。
このexeのショットカットキーをデスクトップ上においても、パスはexe本体があるディレ
クトリのパスを返します。しかし、インストールして登録されたスタートアップメニュー
でこのexeを起動させると、スタートアップメニューのディレクトリを返します。
インストール時にはこのexeは任意のディレクトリに作成されるのですが そのディレク
トリパスを見てくれません。exeのリンク先は任意のディレクトリになっております

何か解決法をご存知の方はご教授お願いいたします。よろしくお願いします
ちなみに GetCurrentDirectoryを使ってカレントディレクトリのパスを取得しています。


引用未解決
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

なにが問題なのかが全然わかりません。

実行ファイルのパスが欲しいのであれば,GetModuleFileNameから切り出す必要がありま
す。
カレントディレクトリと実行ファイルのパスは異なって当たり前です。


返信引用
ドンドン
 ドンドン
(@ドンドン)
ゲスト
結合: 20年前
投稿: 19
Topic starter  

YuOさん。お世話になります。
このexeファイルはexeファイルと同じのディレクトリにあるINIファイルの読み込みを行
う処理をしているのですが、スタートアップから起動させた場合にそのINIファイルを読
み込みにいけないという不具合なのです。説明不足で申し訳ございませんでした。


返信引用
akey
 akey
(@akey)
ゲスト
結合: 22年前
投稿: 53
 

ならばYuOさんの言っている
GetModuleFileName
を使うべきです


返信引用
ドンドン
 ドンドン
(@ドンドン)
ゲスト
結合: 20年前
投稿: 19
Topic starter  

YuOさん。akeyさん。ありがとうございました。
GetModuleFileNameを使って実行ファイルのパスをとり
そこから文字列操作をして Iniファイル名を指定してやれば
処理がうまくいきました。
本当にご教授ありがとうございました。


返信引用
ゾットA
 ゾットA
(@ゾットA)
ゲスト
結合: 20年前
投稿: 1
 

こんな感じ

{
char fileFullPath[MAX_PATH];

// INIファイルのパス名を変更する
if( m_pszProfileName ) {

delete ((void*)m_pszProfileName);

m_pszProfileName = new char[MAX_PATH];
ASSERT( m_pszProfileName );

// フルパス+実行ファイル名の取得
::GetModuleFileName(NULL, fileFullPath, MAX_PATH);
_splitpath(fileFullPath, NULL, (LPTSTR)m_pszProfileName,
NULL, NULL);

// フルパス+INIファイル名の生成
strcat((LPTSTR)m_pszProfileName, INIT_FILE_NAME);
}
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました