したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

【雑談】雑談専用・愚痴歓迎【愚痴】

1F橋:2003/08/19(火) 03:19
その他雑談にご利用下さい

2F橋:2003/08/26(火) 15:25
なかなか来れずにすいません…
頑張って時間作りますのでよろしくですです

3DOSD:2003/09/18(木) 23:40
(…スレッドはここでいいのでしょうか?(笑))

いつもお世話になります

現在メニュープログラムを作成しておりますがPATHでつまずいております
メニュープログラムがC:\MENU\MENU.EXE
メニューから選ばれるプログラムが D:\PROG\HOGE.EXEとします

それで両方のプログラムとも設定ファイルを読み込む都合上
MENU.EXEは C:\MENU で実行して欲しく
HOGE.EXEは D:\PROG で実行して欲しい次第なんです

色々マニュアルを見てこんな形になったのですが…

'MENUが起動した時の DUMYYファイルの絶対PATH (=PATHはMENUと同じ)
MENUDIR$=GETFULLPATHNAME("DUMMY")
PROG1$="D:\PROG\HOGE.EXE"

'PROG1$よりSPLITEPATHでドライブとフォルダを分割し移動して HOGE.EXE実行
SPLITPATH PROG1$,DRV$,FLD$,BFN$,EXT$
DRIVE DRV$
CHDIR FLD$
SHELL PROG1$, "", 1, 0
'
'↑でフォルダが変わっているのでMENUDIR$を分割し元に戻る
SPLITPATH MENUDIR$,DRV$,FLD$,BFN$,EXT$
DRIVE DRV$
CHDIR FLD$

その…何とも不思議なフォルダの移動になっている次第でして…
で。ご質問したいのは2点です

1)SHELLでプログラムを実行する時にフォルダを与えながら実行は出来ないのか?
SHELLだけでは無理みたいですので…何か別の良い方法があるのならご指導下さい
(これが解決出来れば ↓2) は必要ありませんです)

2)自分のフォルダを取得出来ないか?
マニュアルを見るとCRDIR$でカレントフォルダの取得は可能ですが
カレントドライブまでは取得できません
GETFULLPATHNAME()ではファイルが無くても絶対PATHを返すらしいので
それを利用してカレントドライブ(とカレントフォルダ)を得てます
その…非常に変な書き方なので…何かいい方法があればご指導下さい

よろしくお願いします

4F橋:2003/10/14(火) 20:15
え〜と…雑談はここでいいのかな(と管理人が迷ってどうするんでしょうね(笑))

>>3
DOSDさん>
すいません。相変わらず私には分かりませんでして…
決して無視していた訳では無いんです(笑
相変わらず役立たず管理人ですいませんです

5上村:2003/10/14(火) 20:34
はじめましてDOSDさん
私もメニュープログラムを作成したことがあるのですが、
SHELLE関数ではなくSHELLEXECUTE関数を使用すると、
起動させるexeファイルのカレントディレクトリを変更できます
見当違いだったらすいません。

F橋さんへ
すいませんCGIサンプルまだできておりません。
年内を目標にがんばります

6nisii:2003/10/15(水) 13:16
> 1)SHELLでプログラムを実行する時にフォルダを与えながら実行は出来ないのか?
上村さん紹介の、SHELLEXECUTE が一番楽かな。

> 2)自分のフォルダを取得出来ないか?
ツリー型掲示板で紹介済み。
タイトル:続API -ウィンドウの列挙とモジュール名の取得


#define MAX_PATH 264
'------------------------------------------------------------
' モジュールとライブラリ関連のAPI宣言
'------------------------------------------------------------
' ロードされている実行モジュールのフルパス名を得る
declare function API_GETMODULEFILENAME& lib "KERNEL32" alias "GetModuleFileNameA" ( byval HMODULE& , byval LPFILENAME$ , byval NSIZE& )
'
' HMODULE& 実行モジュールのハンドル
' 0を指定すると、現在のプロセスを作成したモジュール
' LPFILENAME$ (戻り値)フルパス名を受け取るバッファ
' NSIZE& 同、バイト数
'
' 戻り値 正常終了のとき バッファにコピーしたバイト数
' エラーのとき 0
'
' 備考 「実行モジュール」とはEXE、DLLなどの実行形式のモジュール。

var LPFILENAME$
var NLENGTH as long

' ロードされている実行モジュールのフルパス名を得る
LPFILENAME$ = string$( MAX_PATH , chr$( 0 ))
NLENGTH = API_GETMODULEFILENAME( 0 , LPFILENAME$ , len( LPFILENAME$ ))
LPFILENAME$ = left$( LPFILENAME$ , NLENGTH )
print "この実行モジュールは " + LPFILENAME$

stop : end

7DOSD:2003/10/15(水) 13:25
>>5
上村さん>
>はじめましてDOSDさん
こちらのHNでは初めまして。ですね…すいません

>SHELLE関数ではなくSHELLEXECUTE関数を使用すると、
>起動させるexeファイルのカレントディレクトリを変更できます
申し訳ございません。その通りでした…
私がSHELLとSHELLEXECUTEを誤解しておりました
(SHELLEXECUTEで指定出来るのは .DOC .HTM 等のデータのみと勘違いしてました)
先ほどマニュアルを読み直しSHELLEXECUTEで全く問題無さそうです

ありがとうございました

8DOSD:2003/10/15(水) 13:26
>>6
nisiiさん>
>> 2)自分のフォルダを取得出来ないか?
>ツリー型掲示板で紹介済み。
申し訳ございません。見落としていました
ありがとうございました

9F橋:2003/10/17(金) 21:38
>>5
上村さん>
>SHELLE関数ではなくSHELLEXECUTE関数を使用すると…
ご回答頂きありがとうございました
相変わらず私が無知で申し訳ないです…

>すいませんCGIサンプルまだできておりません。
>年内を目標にがんばります
いえいえ…ゆっくりで全然構いませんので…
公開してもいいサンプルになりましたらまた是非教えて頂けると助かりますです

10F橋:2003/10/17(金) 21:56
nisiiさん>

APIサンプルの…件…なんですけど…
8/18に送って頂いたメールでは API例12,API例16,API例17を添付して頂いていると思いますが…
その…それ以外って…掲示板でご投稿頂いているんですよね…

で。投稿して頂いた時って続API例1 の様に例1,例2,..例17の様にタイトル付いてます?
すいません。実は過去ログから探し中でして…

11nisii:2003/10/18(土) 10:21
>>10

API??の番号は私の都合で付けているだけで、投稿時には省いています。
API講座に付けて欲しいということではありませんので、ご心配なく。

12nisii:2003/10/18(土) 10:45
>>11

補足。
欠番があるのはすでに掲載済み分か、
さらに良い方法が見つかって、載せない方がよいと判断した結果です。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板