ヘルプ(APIコマンド)の読み方

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
初心者

ヘルプ(APIコマンド)の読み方

#1 投稿記事 by 初心者 »

 初心者ですが,API関連コマンドのヘルプの読み方を教えて下さい。
例えば ShellExecute のヘルプは下のように書かれていますが,
ABプログラム中で実際にどう書いたらよいのか分かりません。
F-BASIC などでは ShellExecute "外部コマンド名",,, (カンマ
のところはオプションパラメータなど)でOKだったのですが…
初心者にはヘルプに「例」があるとすごく分かり易いのですが,
ABのヘルプには例が少なくて残念です。今後の充実を切に望みます。

(ヘルプより)
Win32API: ShellExecute
指定したドキュメントを、指定したアプリケーションで開きます。
-------------------------------------------------------------------
定義
Declare Function ShellExecute Lib "shell32" Alias "ShellExecuteA" _
(hWnd As HWND, _
lpOperation As BytePtr, _
lpFile As BytePtr, _
lpParameters As BytePtr, _
lpDirectory As BytePtr, _
nShowCmd As Long) As HINSTANCE
 …
 … 以下略
-------------------------------------------------------------------
で,例えば explorer.exe を呼びたいとき,どのように書いたら
いいのでしょうか,教えて下さい。
他の API コマンドについても,この定義,およびそこにあるパラメータの
使い方を見て,実際の ABプログラムを書くにはどうすればよいか,
何か基本ルール,あるいは読めばよいものなど情報があればお教え下さい。
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

#2 投稿記事 by 雷電 »

定義の部分は、AB(ActiveBasic)にこのように定義されていますよ、ということです。
だから、このパラメータにあわせて書いてくださいね・・・ということです。

結果こうなります。

ShellExecute(hWnd,lpOperation,lpFile,lpParameters,lpDirectory,nShowCmd)

hWndとかは、全部ヘルプにどうすればいいか書いてあります。
書き方さえマスターすれば、簡単にできますよ。
===============================
MyHomePage;; raiden.no.land.to/
===============================
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#3 投稿記事 by イグトランス »

ヘルプを見るとき,Declareで始まる定義はどちらかというとおまけです。大事なのは,その下にある各引数の説明です。

いくつか気をつけたほうが良いところを書いておきます。
> hWnd
ウィンドウハンドルは,ウィンドウプログラムならhMainWndか何かがあるでしょうからそれを指定します。なければ0(或いはNULL)で構いません。
> lpOperation
ABのヘルプには記載がありませんが,0(或いはNULL)で問題ありません。"oepn"を指定するのとほぼ同じです。
> nShowCmd
特に指定する気がなければ,一覧の中で最も特別な意味を持たないSW_SHOWにすれば良いです。

またlpFilenなど「NULLで終わる文字列へのポインタを指定します。」と書かれているものは,
"c:\foo.txt"のように文字列を直に書くほか,String/Byte配列/Byteへのポインタ (*Byte)の変数を指定することができます。

またNULLを指定します/できますとある場合,NULLの代わりに0でも構いません。

それを踏まえて最も単純に使おうとすると,例えば次のようになります。

コード: 全て選択

#strict
#prompt
Dim filename As String
Input "Open file>", filename
ShellExecute(0, 0, filename, 0, 0, SW_SHOW)
初心者

#4 投稿記事 by 初心者 »

雷電様、イグトランス (egtra)様、ありがとうございました。
APIコマンドの具体的な書き方が少し分かりました。
やってみます。
返信する