More ... | ファイルのドラッグ・アンド・ドロップHSPウィンドウにドラッグ・アンド・ドロップされたファイルを取得します。
HSP3.0で動作確認。 スクリプト; <<<< HSP 3.0 サンプル >>>>
;
; ウィンドウにドロップされたファイルの名前を取得する
;
#uselib "shell32.dll"
#func DragAcceptFiles "DragAcceptFiles" int,int
#func DragQueryFile "DragQueryFileA" int,int,int,int
#func DragQueryPoint "DragQueryPoint" int,int
#func DragFinish "DragFinish" int
#define WM_DROPFILES 0x0233
; WM_DROPFILES メッセージハンドラを設定
oncmd gosub *OnDropFiles, WM_DROPFILES
; ファイルをドラッグ&ドロップできるように設定
DragAcceptFiles hwnd, 1
title "ウィンドウにファイルをドロップしてください"
stop
*OnDropFiles
; --- ファイルがドロップされたとき ---
; ドロップされたファイルの数を取得する
hdrop = wParam ; ドロップファイル情報のハンドル
DragQueryFile hdrop, -1, 0, 0
ndrop = stat ; ファイルの数
; 画面をクリア
syscolor 5 : boxf
syscolor 8 : pos 0,0
; ファイル名を取得して表示
sdim filename, 260
repeat ndrop
DragQueryFile hdrop, cnt, varptr(filename), 260
mes filename
loop
; ドロップファイル情報をクリア (これをしないとメモリリークになる)
DragFinish hdrop
return
解説 |