ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2018年8月19日(日) 05:20

All times are 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

All times are UTC+09:00


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