情報
概要
API関数を使う時のお供に。
MSDNなどのAPI関数宣言をなでしこで使えるように変換します。
//本体
/*
[API利用支援]
MSDNなどのAPI関数宣言をなでしこで使えるように変換します。
*/
/*
2005/10/24 なでしこ1.397。修正。
2005/03/01 なでしこ1.03a。掲示板に公開。
2005/02/28 なでしこ1.02a。いろいろ修正。
2005/01/15 なでしこ0.15。『中央移動』の引数修正。
2005/01/01 なでしこ0.11fで不具合が出たので修正。
2004/12/23 出力スタイル増加。チェックの背景色。
2004/12/22 ひとまず公開。
開発環境:なでしこ1.397、Win2000
moka
http://www.geocities.jp/moka21/teatime/soft/nadesiko/
*/
!母艦設計=「母艦の可視はオフ」
母艦について
タイトルは「API利用支援」
クライアントWは420
クライアントHは460
スタイルは「枠固定」
オフへ最大化ボタン有効変更
#母艦を中央移動
ラベル1とはラベル
そのテキストは「1.関数宣言を貼り付けてください。」
その背景色は$CCFFCC
その透明はオフ
メモ1とはメモ
そのWは400
その変更した時は~DLL関数宣言
基本Y=基本Y-部品間隔
ボタン1とはボタン
そのテキストは「貼り付け」
そのクリックした時は
メモ1はクリップボード
基本Y=基本Y+部品間隔
ラベル2とはラベル
そのテキストは「2.DLL名を選択してください。」
その背景色は$CCFFCC
その透明はオフ
コンボ1とはコンボ
そのアイテムは「kernel32.dll
user32.dll
gdi32.dll
shell32.dll」
その値は0
その変更した時は~DLL関数宣言
基本Y=基本Y+部品間隔
ラベル3とはラベル
そのテキストは「3.出力スタイルを選択してください。」
その背景色は$CCFFCC
その透明はオフ
チェック1とはチェック
そのテキストは「スタイル1」
その値は1
そのマウス離した時は~チェックイベント(1)
# そのクリックした時は~チェックイベント
そのX+そのW+4,そのYへ移動
チェック2とはチェック
そのテキストは「スタイル2」
そのマウス離した時は~チェックイベント(2)
そのX+そのW+4,そのYへ移動
チェック3とはチェック
そのテキストは「スタイル3」
そのマウス離した時は~チェックイベント(3)
●チェックイベント(N)
3回、「チェック{回数}の値は0」をナデシコする
「チェック{N}の値は1」をナデシコする
DLL関数宣言
10,基本Y+部品間隔へ移動
ラベル4とはラベル
そのテキストは「4.なでしこで利用可能な形式で出力されます。」
その背景色は$CCFFCC
その透明はオフ
部品間隔=0
メモ2とはメモ
そのWは400
部品間隔=8
ボタン2とはボタン
そのテキストは「コピー」
そのクリックした時は
クリップボードはメモ2
そのX+そのW+4,そのYへ移動
ボタン3とはボタン
そのテキストは「コピーしてエディタに貼る」
そのWはそのテキストの文字幅取得+部品間隔*2
そのクリックした時は
クリップボードはメモ2
デバッグエディタハンドルに、『paste』を、COPYDATA送信。
#0.5秒待つ。
「,メニュー1,なでしこエディタに登録
メニュー1,メニュー11,ツールメニューに登録,,,エディタ登録(1)
メニュー1,メニュー12,行動タブに登録,,,エディタ登録(2)
,メニュー2,ヘルプ,,,ヘルプ表示」をメニュー一括作成
//初期表示
#例を表示
コンボ1=「user32.dll」
メモ1=「BOOL SetCursorPos(
int X, // 水平位置
int Y // 垂直位置
);」
母艦を中央移動
母艦の可視はオン
●ヘルプ表示
"●使い方
1.MSDNあたりから関数宣言の書式をコピペする。
2.DLL名を選択する。MSDNなら「インポートライブラリ」を見よう。
3.スタイルを選択する。
スタイル1:貼り付けたそのまま
スタイル2:コメント部分など省略して1行に。
スタイル3:さらに引数の名前も省略する。
4.なでしこ形式に出力されてるはずなのでエディタに貼ってみよう。
●なでしこエディタに登録
・ツールメニューか行動タブに登録する。
・行動タブに登録すると tools\action\ にファイルをコピーします。
MSDNからのコピペを想定してます。
余計なスペースなどがあると思ったように出力されません。
引数の型にはそのままではなでしこで使えないものもあり。
Unicode版・ANSI版がある関数に注意。MessageBoxAなど。
2005/03/01
2005/10/24 修正
moka
"と言う
●DLL関数宣言
基本書式=「●%n(%a) =DLL("%d","%f")」&改行
基本書式2=「●%n(%a) =DLL("%d",{改行}"%f")」&改行 #スタイル1用
#なでしこでの関数名n
n=範囲切り取る(メモ1," ","(")
#DLL名d
d=コンボ1
#引数の型と名前をリストする。
f_arg=「」 #型&名前
f_arg2=「」 #型
f_arg3=「」 #名前
トリム(範囲切り取る(メモ1,"(",")"))
反復
「,」を「」に置換
Sはそれをトリム
Sの「//」から改行まで範囲切り取る
f_arg=f_arg&トリム(S)&改行
Sの「 」まで切り取る
f_arg2=f_arg2&トリム(それ)&改行
f_arg3=f_arg3&トリム(S)&改行
f_arg=トリム(f_arg)の「 」を「」に置換
f_arg2=トリム(f_arg2)の「 」を「」に置換
f_arg3=トリム(f_arg3)
#なでしこでの引数a
f_arg3の改行を「,」に置換
a=それ
#関数定義fをスタイル選択に合わせて整形。
もし、チェック1の値=1ならば
f=トリム(置換(メモ1,「;」,「」))
基本書式=基本書式2
違えば、もし、チェック2の値=1ならば
#f_argを「,」で配列結合
f_argの改行を「,」に置換
f_argはそれ
メモ1のテキストから「(」まで切り取る
f=それ&「(」&f_arg&「)」
違えば、もし、チェック3の値=1ならば
#f_argを「,」で配列結合
f_arg2の改行を「,」に置換
f_arg2はそれ
メモ1のテキストから「(」まで切り取る
f=それ&「(」&f_arg2&「)」
#「n{~}a{~}d{~}f」を反復
# 「"%{それ}"を{それ}に置換」をナデシコする
それは基本書式
「%n」をnに置換
もし、f_arg=「VOID」ならば、「(%a)」を「」に置換
違えば、「%a」をaに置換
「%d」をdに置換
「%f」をfに置換
メモ2はそれ
●エディタ登録(i)
//一時ファイルならエラー表示
もし、コマンドライン\0からファイル名抽出=「temp.nako」ならば
「実行中のファイルは一時ファイル(temp.nako)なので、」&改行&
「一度名前を付けて保存したnakoファイルを実行してください。」と言う
戻る
iで条件分岐
1ならば
#ツールメニューに登録
ファイル名=「{ランタイムパス}tools\tools.txt」
追加テキスト=「API利用支援,,"{コマンドライン[0]}"」
2ならば
#行動タブに登録
#ただし、actionフォルダに入れなければいけない?
ファイル名=「{ランタイムパス}tools\action.txt」
追加テキスト=「API利用支援,"{コマンドライン[0]のファイル名抽出}"」
#追加テキスト=「API利用支援,"{コマンドライン[0]}"」
//確認表示
「{ファイル名}{~}に{~}{追加テキスト}{~}を書き込みますか?」と二択
もし、それがいいえならば、戻る。
//登録処理
ファイル名を開く
それ=それをトリム&改行&追加テキスト
ファイル名に保存
//行動タブに登録する場合、actionフォルダに入れる必要がある模様。
もし、i=2ならば
コマンドライン[0]から、
「{ランタイムパス}tools\action\{コマンドライン[0]のファイル名抽出}」へ、
ファイルコピー
- API関数宣言はどこにあるんでしょうか? -- kazz (2011-10-23 14:38:16)
最終更新:2011年10月23日 14:38