// subroutine maze randomize lb = *LBottom, *lb1, *lb2, *lb3, *lb4 msg = "bottom", "*1", "*2", "*3", "*4" cntPtns = length(lb) goto *LStepMaze // Enter Maze *lb1 mes msg(1) : gosub *LStepMaze : return *lb2 mes msg(2) : gosub *LStepMaze : return *lb3 mes msg(3) : gosub *LStepMaze : return *lb4 mes msg(4) : gosub *LStepMaze : return *LBottom mes msg(0) assert // 停止 return *LStepMaze wait 10 // wait 必須 : 停止しない可能性もなくはない goto lb( (rnd(12) + 1) * 13 \ cntPtns ) // @ 参照: http://goo.gl/xUPHk // @ 「リターン先が静的にわからない」状況を簡単に考えようと思った。今は反省している。 // @ よく考えたら、リターン先は普通わからないものだった。サブルーチンと呼び出し元は一般的に一体一対応じゃないのだ。 // mes で出力された文字列を見ると戻り先がわかる。 // @ これは「サブルーチンを監視する」方法の一例
Posted by ue_dai at 2012/1/3 2:28 ue_daiさんのTwitter
#include "kernel32.as" #include "user32.as" #include "gdi32.as" #define RT_BITMAP 2 LoadLibrary "ieframe.dll" hModule = stat LoadImage hModule, 625, 0, 0, 0, 0 hBitmap = stat // 画像サイズ取得 dim BITMAP, 6 GetObject hBitmap, 24, varptr(BITMAP) x = BITMAP(1) y = BITMAP(2) CreateCompatibleDC hdc hCompatDC = stat SelectObject hCompatDC, hBitmap hPrevBitmap = stat BitBlt hdc, 0, 0, x, y, hCompatDC, 0, 0, 0xCC0020 redraw 1 // 破棄 SelectObject hCompatDC, hPrevBitmap DeleteObject hBitmap DeleteDC hCompatDC
Posted by hinekure_inovia at 2012/1/1 19:52 hinekure_inoviaさんのTwitter
#include "kernel32.as"// #include "user32.as"// #include "Gdi32.as"//3つDLL使うの久しぶりだ #define RT_BITMAP 2 DLLNAME="ieframe.dll" LoadLibrary DLLNAME HDLL=stat ;pResourceName="Bitmap\\TRAVEL_PRESSED_XP_120.BMP" RESNAME="TRAVEL_PRESSED_XP_120.BMP"//リソースハッカーで居場所を突き止めた画像をセット FindResource HDLL, RESNAME, RT_BITMAP ; HRES=stat //LoadIcon HDLL,RESNAME SizeofResource HDLL,HRES SizeRES=stat LoadResource HDLL,HRES //戻り値はHGLOBAL グローバーるメモリにロード戻り値をLockResourceに渡すとBitMapのありか(=ポインタ)を教えてくれる hLrs=stat LockResource hLrs lpBITMAPINFO=stat dupptr BITMAPINFO,lpBITMAPINFO,44, dwWidth=wpeek(BITMAPINFO,4) dwHeight=wpeek(BITMAPINFO,8) mes dwWidth mes dwHeight szBuf=lpBITMAPINFO+40+0 SetDIBitsToDevice hDC,0,0,dwWidth,dwHeight,0,0,0,dwHeight,szBuf,lpBITMAPINFO,0//この関数どんだけ引数あるんだよwww mes stat redraw 1 /* 関数や構造体の定義はこちら typedef struct tagBITMAPINFO {(44byte)=dim ***,11 BITMAPINFOHEADER bmiHeader;//下記参照(40byte) RGBQUAD bmiColors[1]; //RGBQUADはDWORD(4byte) } BITMAPINFO; typedef struct tagBITMAPINFOHEADER {//(40byte)long=4 WORD=2 DWORD=4 DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER; int SetDIBitsToDevice( HDC hdc, // デバイスコンテキストのハンドル int XDest, // 転送先長方形の左上隅の x 座標 int YDest, // 転送先長方形の左上隅の y 座標 DWORD dwWidth, // 転送元長方形の幅 DWORD dwHeight, // 転送元長方形の高さ int XSrc, // 転送元長方形の左下隅の x 座標 int YSrc, // 転送元長方形の左下隅の y 座標 UINT uStartScan, // 配列内の最初の走査行 UINT cScanLines, // 走査行の数 CONST VOID *lpvBits, // DIB ビットからなる配列 CONST BITMAPINFO *lpbmi, // ビットマップ情報 UINT fuColorUse // RGB 値またはパレットインデックス ); */ // szBuf = (char *)lpBinfo + sizeof(BITMAPINFOHEADER) + nClr * sizeof(RGBQUAD); //ncrの値は色数だが0だとフルカラーなのでよし
Posted by who_of_tweet at 2012/1/1 19:34 who_of_tweetさんのTwitter
#runtime "hsp3cl" /* input p1,p2,p3 標準入力を取得 p1=変数名 : 情報を格納する変数名 p2=1~ : 変数に代入される最大文字数 p3=0~(0) : 改行コード認識フラグ(0=なし/1,2=認識) p3が1の場合はLFを、2の場合はCR+LFを改行と認識 */ mes "入力されたメッセージを表示します\n>" sdim res, 256 input res, 256, 2 mes "入力されたのは 「"+res+"」です " mes "終了しますか? yを入力しEnterすると終了します" *exit input res, 256, 2 if res == "y" : end goto *exit
Posted by hinekure_inovia at 2011/12/27 1:34 hinekure_inoviaさんのTwitter
#module sgetbit #const FULL 0xFF #const NULL 0x00 #deffunc setbit var map, int ptr, int bit if (bit!=0) && (bit!=1) : return -1 if bit==0 : poke map, ptr/8, peek(map, ptr/8) & (FULL ^ (0x80 >> (ptr \ 8))) if bit==1 : poke map, ptr/8, peek(map, ptr/8) | (0x80 >> (ptr \ 8)) return 0 #defcfunc getbit var map, int ptr return (peek(map, ptr/8) & (0x80 >> (ptr \ 8))) != 0 #global
Posted by cookies146 at 2011/12/19 18:15 cookies146さんのTwitter
screen 0,400,250 title "title" gradf 0,0,400,35,1,$8ae8ff,$FFFFFF font"Meiryo",32 pos 18,20:mes"Title" font"Meiryo",13 pos 18+ginfo_mesx+15,20+ginfo_mesy-28:mes"sub" gradf 18,65,400-28,1,0,$68e8ff,$ffffff font"meiryo",13 color 0,0,0 pos 23,90:mes"A" pos 23,125:mes"B" pos 23,160:mes"C" gradf 0,215,400,100,1,$86a2ff,$ffffff ;------------------------------------------------------ ; オブジェクトを設置 ; objmode 2 font"meiryo",13 objsize 150,30 pos 220,218:button"object",*label stop *label end
Posted by sgk53 at 2011/12/18 22:48 sgk53さんのTwitter
#uselib "MediaInfo.dll" #func MediaInfo_New "MediaInfo_New" #func MediaInfo_New_Quick "MediaInfo_New_Quick" wptr,wptr #func MediaInfo_Delete "MediaInfo_Delete" wptr #func MediaInfo_Open "MediaInfo_Open" wptr,wptr #func MediaInfo_Open_Buffer "MediaInfo_Open_Buffer" wptr,wptr,wptr,wptr,wptr #func MediaInfo_Open_Buffer_Init "MediaInfo_Open_Buffer_Init" wptr,wptr,wptr #func MediaInfo_Open_Buffer_Continue "MediaInfo_Open_Buffer_Continue" wptr,wptr,wptr #func MediaInfo_Open_Buffer_Continue_GoTo_Get "MediaInfo_Open_Buffer_Continue_GoTo_Get" wptr #func MediaInfo_Open_Buffer_Finalize "MediaInfo_Open_Buffer_Finalize" wptr #func MediaInfo_Open_NextPacket "MediaInfo_Open_NextPacket" wptr #func MediaInfo_Save "MediaInfo_Save" wptr #func MediaInfo_Close "MediaInfo_Close" wptr #func MediaInfo_Inform "MediaInfo_Inform" wptr,wptr #func MediaInfo_GetI "MediaInfo_GetI" wptr,wptr,wptr,wptr,wptr #func MediaInfo_Get "MediaInfo_Get" wptr,wptr,wptr,wptr,wptr,wptr #func MediaInfo_SetI "MediaInfo_SetI" wptr,wptr,wptr,wptr,wptr,wptr #func MediaInfo_Set "MediaInfo_Set" wptr,wptr,wptr,wptr,wptr,wptr #func MediaInfo_Output_Buffer_Get "MediaInfo_Output_Buffer_Get" wptr,wptr #func MediaInfo_Output_Buffer_GetI "MediaInfo_Output_Buffer_GetI" wptr,wptr #func MediaInfo_Option "MediaInfo_Option" wptr,wptr,wptr #func MediaInfo_State_Get "MediaInfo_State_Get" wptr #func MediaInfo_Count_Get "MediaInfo_Count_Get" wptr,wptr,wptr #func MediaInfoA_New "MediaInfoA_New" #func MediaInfoA_New_Quick "MediaInfoA_New_Quick" sptr,sptr #func MediaInfoA_Delete "MediaInfoA_Delete" sptr #func MediaInfoA_Open "MediaInfoA_Open" sptr,sptr #func MediaInfoA_Open_Buffer "MediaInfoA_Open_Buffer" sptr,sptr,sptr,sptr,sptr #func MediaInfoA_Open_Buffer_Init "MediaInfoA_Open_Buffer_Init" sptr,sptr,sptr #func MediaInfoA_Open_Buffer_Continue "MediaInfoA_Open_Buffer_Continue" sptr,sptr,sptr #func MediaInfoA_Open_Buffer_Continue_GoTo_Get "MediaInfoA_Open_Buffer_Continue_GoTo_Get" sptr #func MediaInfoA_Open_Buffer_Finalize "MediaInfoA_Open_Buffer_Finalize" sptr #func MediaInfoA_Open_NextPacket "MediaInfoA_Open_NextPacket" sptr #func MediaInfoA_Save "MediaInfoA_Save" sptr #func MediaInfoA_Close "MediaInfoA_Close" sptr #func MediaInfoA_Inform "MediaInfoA_Inform" sptr,sptr #func MediaInfoA_GetI "MediaInfoA_GetI" sptr,sptr,sptr,sptr,sptr #func MediaInfoA_Get "MediaInfoA_Get" sptr,sptr,sptr,sptr,sptr,sptr #func MediaInfoA_SetI "MediaInfoA_SetI" sptr,sptr,sptr,sptr,sptr,sptr #func MediaInfoA_Set "MediaInfoA_Set" sptr,sptr,sptr,sptr,sptr,sptr #func MediaInfoA_Output_Buffer_Get "MediaInfoA_Output_Buffer_Get" sptr,sptr #func MediaInfoA_Output_Buffer_GetI "MediaInfoA_Output_Buffer_GetI" sptr,sptr #func MediaInfoA_Option "MediaInfoA_Option" sptr,sptr,sptr #func MediaInfoA_State_Get "MediaInfoA_State_Get" sptr #func MediaInfoA_Count_Get "MediaInfoA_Count_Get" sptr,sptr,sptr #func MediaInfo_Info_Version "MediaInfo_Info_Version" #func MediaInfoList_New "MediaInfoList_New" #func MediaInfoList_New_Quick "MediaInfoList_New_Quick" wptr,wptr #func MediaInfoList_Delete "MediaInfoList_Delete" wptr #func MediaInfoList_Open "MediaInfoList_Open" wptr,wptr,wptr #func MediaInfoList_Open_Buffer "MediaInfoList_Open_Buffer" wptr,wptr,wptr,wptr,wptr #func MediaInfoList_Save "MediaInfoList_Save" wptr,wptr #func MediaInfoList_Close "MediaInfoList_Close" wptr,wptr #func MediaInfoList_Inform "MediaInfoList_Inform" wptr,wptr,wptr #func MediaInfoList_GetI "MediaInfoList_GetI" wptr,wptr,wptr,wptr,wptr,wptr #func MediaInfoList_Get "MediaInfoList_Get" wptr,wptr,wptr,wptr,wptr,wptr,wptr #func MediaInfoList_SetI "MediaInfoList_SetI" wptr,wptr,wptr,wptr,wptr,wptr,wptr #func MediaInfoList_Set "MediaInfoList_Set" wptr,wptr,wptr,wptr,wptr,wptr,wptr #func MediaInfoList_Option "MediaInfoList_Option" wptr,wptr,wptr #func MediaInfoList_State_Get "MediaInfoList_State_Get" wptr #func MediaInfoList_Count_Get "MediaInfoList_Count_Get" wptr,wptr,wptr,wptr #func MediaInfoList_Count_Get_Files "MediaInfoList_Count_Get_Files" wptr #func MediaInfoListA_New "MediaInfoListA_New" #func MediaInfoListA_New_Quick "MediaInfoListA_New_Quick" sptr,sptr #func MediaInfoListA_Delete "MediaInfoListA_Delete" sptr #func MediaInfoListA_Open "MediaInfoListA_Open" sptr,sptr,sptr #func MediaInfoListA_Open_Buffer "MediaInfoListA_Open_Buffer" sptr,sptr,sptr,sptr,sptr #func MediaInfoListA_Save "MediaInfoListA_Save" sptr,sptr #func MediaInfoListA_Close "MediaInfoListA_Close" sptr,sptr #func MediaInfoListA_Inform "MediaInfoListA_Inform" sptr,sptr,sptr #func MediaInfoListA_GetI "MediaInfoListA_GetI" sptr,sptr,sptr,sptr,sptr,sptr #func MediaInfoListA_Get "MediaInfoListA_Get" sptr,sptr,sptr,sptr,sptr,sptr,sptr #func MediaInfoListA_SetI "MediaInfoListA_SetI" sptr,sptr,sptr,sptr,sptr,sptr,sptr #func MediaInfoListA_Set "MediaInfoListA_Set" sptr,sptr,sptr,sptr,sptr,sptr,sptr #func MediaInfoListA_Option "MediaInfoListA_Option" sptr,sptr,sptr #func MediaInfoListA_State_Get "MediaInfoListA_State_Get" sptr #func MediaInfoListA_Count_Get "MediaInfoListA_Count_Get" sptr,sptr,sptr,sptr #func MediaInfoListA_Count_Get_Files "MediaInfoListA_Count_Get_Files" sptr // ↓1にするとサンプルが実行できます。 #if 0 // ファイル読み込みダイアログ dialog "*",16 if (stat == 0) : end fname = refstr // ハンドルを取得 MediaInfoA_New handle = stat // ハンドルを使用してファイル読み込み MediaInfoA_Open handle, fname if (stat){ // 設定(これを設定すると詳細に取得できます) //MediaInfoA_Option handle, "Complete", "1" // 取得 rev_size = 4096 // バッファサイズ MediaInfoA_Inform handle, rev_size dupptr info, stat, rev_size, 2 mesbox info, 640, 480 // 使用後は解放 MediaInfoA_Delete handle }else{ dialog "非対応の形式のようです" } #endif
Posted by hinekure_inovia at 2011/12/1 9:44 hinekure_inoviaさんのTwitter
; title"sample" ; screen 0,400,200 repeat redraw 0 gradf 0,0,400,200,1,$333333,$111111 ; gradf 10,10,160,35,1,$007700,$004400 gradf 11,11,158,33,1,$333333,$222222 if mousex>=10&mousey>=10&mousey<=45&mousex<=170{ gradf 11,11,158,33,1,$333333,$222233 stick click,,1 if click=256&mode=0{ mode=1 }else{ if click=256&mode=1{ mode=0 } } } if mode=1{ gradf 11,11,158,33,1,$333333,$222233 //メニューの項目 gradf 200,20,180,35,1,$333333,$333333 pos 220,30:mes"Menu 1" ; gradf 200,60,180,35,1,$333333,$333333 pos 220,70:mes"Menu 2" ; gradf 200,100,180,35,1,$333333,$333333 pos 220,110:mes"Menu 3" ; gradf 200,140,180,35,1,$333333,$333333 pos 220,150:mes"Menu 4" } font"Meiryo",13 color 255,255,255 pos -1000,-1000:mes"設定>>" pos (160-ginfo_mesx)/2+10,(35-ginfo_mesy)/2+10:mes"設定>>" ; redraw 1 wait 1 loop
Posted by k5342 at 2011/10/22 16:15 k5342さんのTwitter
#uselib "Shlwapi.dll" #func PathRelativePathToA "PathRelativePathToA" var,str,int,str,int #func PathRelativePathToW "PathRelativePathToW" var,wptr,int,wptr,int #define FILE_ATTRIBUTE_DIRECTORY 0x10 #define FILE_ATTRIBUTE_NORMAL 0x80 frompath = "C:\\test\\hsp\\test\\test.txt" topath = "C:\\test\\hsp3\\hogehoge\\hsp.txt" sdim outpath, 260 PathRelativePathToA outpath, frompath, FILE_ATTRIBUTE_DIRECTORY, topath, FILE_ATTRIBUTE_NORMAL mes "From : "+frompath mes "To : "+topath mes "相対パス: "+outpath
Posted by hinekure_inovia at 2011/10/21 22:24 hinekure_inoviaさんのTwitter
#module _FileNameCheck_ #uselib "Shlwapi.dll" #func PathGetCharTypeA "PathGetCharTypeA" int #func PathGetCharTypeW "PathGetCharTypeW" int #define GCT_INVALID 0 // この文字はパスに使用できない。 #define GCT_LFNCHAR 1 // この文字は長い形式のファイル名に使用することができる。 #define GCT_SHORTCHAR 2 // この文字は短い形式のファイル名に使用することができる。 #define GCT_WILD 4 // この文字はワイルドカード文字である。 #define GCT_SEPARATOR 8 // この文字はパスの区切りの文字である。 #defcfunc IsFileNamePath str _buftext buftext = _buftext sdim u_text, strlen(buftext)*2+2 cnvstow u_text, buftext r = 0 repeat if wpeek(u_text, cnt*2) == 0 : break PathGetCharTypeW wpeek(u_text, cnt*2) if stat == 0 | stat == 4 | stat == 8 : r = -1 : break loop return r #defcfunc IsDirNamePath str _buftext buftext = _buftext sdim u_text, strlen(buftext)*2+2 cnvstow u_text, buftext r = 0 repeat if wpeek(u_text, cnt*2) == 0 : break PathGetCharTypeW wpeek(u_text, cnt*2) if stat == 0 | stat == 4 : r = -1 : break loop return r #global // 使えない文字だと -1 が返ります mes IsFileNamePath("text.txt") ; 問題ないファイル名なのでOK mes IsDirNamePath("C:\\test.txt") ; 問題ないディレクトリ名なのでOK mes IsFileNamePath("C:\\test.txt") ; ファイル名としては\は使えないのでNG mes IsDirNamePath("C:\\test.txt") ; ディレクトリ名ならOK mes IsFileNamePath("test?.txt") ; ?は使えないのでNG mes IsDirNamePath("C:\\test?.txt") ; ?は使えないのでNG
Posted by hinekure_inovia at 2011/10/19 18:35 hinekure_inoviaさんのTwitter