ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 04:35

全ての表示時間は UTC+09:00 です




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - プログラム自身のフォルダー
作成者 メッセージ
  記事の件名:  Re: プログラム自身のフォルダー  引用付きで返信する
もっとも簡単な方法はWIN32 API GetCurrentDirectoryでプログラム自身のフォルダーを特定できます。
ただしプログラム実行中にカレントディレクトリが移動するとまったく違う結果が返ってきます。
なのでソースコードのステップが増えますが以下の方法でプログラム自身のフォルダーを特定できます。

①WIN32 API GetModuleFileNameで指定されたモジュールのファイルパスを取得します。
第一パラメータの0を指定すると自身のモジュールのファイルパスを取得できます。
Dim Path[255] As Byte
Dim Leng As Long
Leng = GetModuleFileName(0,Path,255)
②ABで定義されている_splitpath関数でファイルパスをドライブ名、パス名、ファイル名、拡張子に分解します。
Dim Drv[255] As Byte
Dim Dir[255] As Byte
Dim File[255] As Byte
Dim Ext[255] As Byte
_splitpath(Path,Drv,Dir,File,Ext)
③上記で分解したドライブ名、パス名を連結します
lstrcpy(Path,Drv)
lstrcat(Path,Dir)
④上記で取得した結果をメッセージボックスで表示します
MessageBox(NULL,Path,"TEST",MB_OK)

よろしくお願いします。
投稿記事 Posted: 2016年9月28日(水) 10:55
  記事の件名:  プログラム自身のフォルダー  引用付きで返信する
例えば、プログラムが"C:\program"というフォルダーに入っているとします。
この時、プログラムでC:\programを特定してメッセージボックスで表示するにはどうすればいいですか。
投稿記事 Posted: 2016年9月27日(火) 22:34

全ての表示時間は UTC+09:00 です


ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean