|
// with fukidasi // .testfukidasi = true // .clearClkfukidasi = false // .error_stop = false // .screen_shot = true // .trytimeout = 30 // .initialwait = true
Class fukidasi public testfukidasi = false public clearClkfukidasi = false public error_stop = false public screen_shot = false public trytimeout = 3 public initialwait = 0 Public msg = "", wait = 3//メッセージ消去時間
dim _w,_x,_y,_fuid1,_fuid2 Procedure fukidasi Thread This._1() global.fukidasi("a") _fuid1=getid(get_fukidasi_win)//本家スレッドの吹き出しid global.fukidasi() Fend
function clkitem(var id,name,opt=0,on_off=true,no=1) dim opttxt ="" decodeClkopt(opt,opttxt) c=0 s="<#dbl>"+name+"<#dbl>の操作" s0(s) isid=status(id,ST_isid) if !(isid) then s=s+"はidが無効" sleep(initialwait) while isid if pos(" CLK_LEFTCLK ",opttxt) then mouser(false) result=global.clkitem(id,name,opt,on_off,no) if pos(" CLK_LEFTCLK ",opttxt) then mouser(true) if result then if clearClkfukidasi then s() else s0(s+"成功") exit endif c=c+1; s0(s+c) if c >= trytimeout then break sleep(1) wend if screen_shot then doscmd("mkdir 画面ショット") saveimg(uniqueFilename("画面ショット\処理不能.jpg"),,,,,,,25) fileid=FOPEN(uniqueFilename("画面ショット\処理不能.txt"), F_WRITE) FPUT(fileID, s+"で処理不能") FPUT(fileID, "種別・追加指定 " + opttxt) fput(fileID,"タイトル " +status(id,ST_title)) fput(fileID,"クラス名 " +status(id,ST_CLASS)) fput(fileID,"X座標 " +status(id,ST_X)) fput(fileID,"Y座標 " +status(id,ST_Y)) fput(fileID,"幅 " +status(id,ST_WIDTH)) fput(fileID,"高さ " +status(id,ST_HEIGHT)) // fput(fileID,"クライアント領域のX座標 " +status(id,ST_CLX)) // fput(fileID,"クライアント領域のY座標 " +status(id,ST_CLY)) // fput(fileID,"クライアント領域の幅 " +status(id,ST_CLWIDTH)) // fput(fileID,"クライアント領域の高さ " +status(id,ST_CLHEIGHT)) fput(fileID,"アイコン状態である " +status(id,ST_ICON)) fput(fileID,"最大化状態である " +status(id,ST_MAXIMIZED)) fput(fileID,"通常の表示状態である " +status(id,ST_VISIBLE)) // fput(fileID,"アクティブ状態である " +status(id,ST_ACTIVE)) // fput(fileID,"ビジー状態である " +status(id,ST_BUSY)) fput(fileID,"EXEのパス " +status(id,ST_PATH)) // fput(fileID,"プロセスID " +status(id,ST_PROCESS)) // fput(fileID,"64bitアプリである " +status(id,ST_WIN64)) fput(fileID,"表示されているモニタ番号 " +status(id,ST_MONITOR))
FCLOSE(fileID) endif if error_stop then if MSGBOX(s+"で処理不能",BTN_IGNORE or BTN_ABORT) = BTN_IGNORE then else exitexit endif endif if clearClkfukidasi then s() else s0(s+"で処理不能") fend
procedure s(msg="",x=-999,y=-999) if msg="" then ctrlwin(_fuid2,hide) exit endif if x = -999 and y=-999 Then if status(_fuid1,st_visible) then _x= Status(_fuid1,ST_x) _y= Status(_fuid1,ST_HEIGHT) else _x=0;_y=0 endif else This._x = zcut(x) This._y = zcut(y) endif This.msg=msg fend procedure s0(msg) if testfukidasi then s(msg) fend
Procedure _1() While TRUE r= This._2() If r<>"" Then GLOBAL.Fukidasi(r,_x,_y) // 吹き出し this._fuid2 = getid(GET_FUKIDASI_WIN) endif If This._3() Then GLOBAL.Fukidasi() // 吹き消し Wend Fend
Function _2() // メッセージチェックと表示 msg,wait,_w Result= msg If msg="" Then Exit _w= wait msg= "" Fend
Function _3() // タイマカウント _w Result= FALSE If _w<=0 Then Exit _w= _w-0.1 Result= _w<=0 Sleep(0.1) Fend FUNCTION uniqueFilename(path) DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject") IFB FSO.FileExists(path) THEN DIM fol = FSO.GetParentFolderName(path) DIM filename = FSO.GetBaseName(path) DIM extension = FSO.GetExtensionName(path) DIM i = 2 WHILE FSO.FileExists(FSO.BuildPath(fol, filename + i + "." + extension)) i = i + 1 WEND RESULT = FSO.BuildPath(fol, filename + i + "." + extension) ELSE RESULT = path ENDIF FEND dim old_gmouse_X,old_gmouse_Y procedure mouser(flg) if flg then lockhardex() mmv(old_gmouse_X,old_gmouse_Y) else old_gmouse_X= G_mouse_X; old_gmouse_Y=G_mouse_Y lockhardex(0) endif fend procedure btn(p1,p2=click,x=G_mouse_X,y=G_mouse_y,ms=0) mouser(false) global.btn(p1,p2,x,y,ms) mouser(true) fend procedure decodeClkopt(opt,var opttxt) if (opt and CLK_BTN) <> 0 then opttxt=opttxt+"CLK_BTN + " if (opt and CLK_LIST) <> 0 then opttxt=opttxt+"CLK_LIST + " if (opt and CLK_TAB) <> 0 then opttxt=opttxt+"CLK_TAB + " if (opt and CLK_MENU) <> 0 then opttxt=opttxt+"CLK_MENU + " if (opt and CLK_TREEVIEW) <> 0 then opttxt=opttxt+"CLK_TREEVIEW + " if (opt and CLK_LISTVIEW) <> 0 then opttxt=opttxt+"CLK_LISTVIEW + " if (opt and CLK_TOOLBAR) <> 0 then opttxt=opttxt+"CLK_TOOLBAR + " if (opt and CLK_LINK) <> 0 then opttxt=opttxt+"CLK_LINK + " if (opt and CLK_ACC) <> 0 then opttxt=opttxt+"CLK_ACC + " if (opt and CLK_SHORT) <> 0 then opttxt=opttxt+"CLK_SHORT + " if (opt and CLK_BACK) <> 0 then opttxt=opttxt+"CLK_BACK + " if (opt and CLK_MUSMOVE) <> 0 then opttxt=opttxt+"CLK_MUSMOVE + " if (opt and CLK_RIGHTCLK) <> 0 then opttxt=opttxt+"CLK_RIGHTCLK + " if (opt and CLK_LEFTCLK) <> 0 then opttxt=opttxt+"CLK_LEFTCLK + " if (opt and CLK_DBLCLK) <> 0 then opttxt=opttxt+"CLK_DBLCLK + " if (opt and CLK_FROMLAST) <> 0 then opttxt=opttxt+"CLK_FROMLAST + " if (opt and CLK_API) <> 0 then opttxt=opttxt+"CLK_API + " if (opt and CLK_UIA) <> 0 then opttxt=opttxt+"CLK_UIA + " opttxt = copy(opttxt,1,LENGTH(opttxt)-2)
fend EndClass
|
No.1453 2022/02/23(Wed) 20:20:50
|