|
发表于 2016-4-14 17:54:44
|
显示全部楼层
//*******************
// TC6.0版的代码,我改的对吗?求教高人
//**********************
变量 hwck, i, midnum, w, h, hw_sp, len1, 线程状态, id, 线程句柄
// 启动自动注册插件
功能 初始化()
变量 路径, 是否成功
路径 = 获取资源路径("rc:dm.dll")
是否成功 = 注册插件(路径, 真)
如果(是否成功)
否则
消息框("插件注册失败")
结束
结束
功能 开始_点击()
线程句柄 = 线程开启("主执行", "")
结束
功能 主执行()
变量 屏宽, 屏高, a, hwnds, dm, 打开个数
dm = com("dm.dmsoft")
打开个数 = 编辑框获取文本("编辑框0")
//↓根据界面设置数量打开记事本
遍历(i = 0; i < 打开个数; i ++)
命令("notepad.exe", true)
结束
等待(200)
//↓根据记事本数量计算将要设置的窗口宽度、高度,
如果(打开个数 % 2 == 0)
a = 打开个数
否则
a = 打开个数 + 1
结束
系统获取分辨率(屏宽, 屏高)
w = (屏宽 - 20) / a * 2 //计算窗口宽度,这里分Text为奇数、偶数两种情况时计算
h = (屏高 - 100) / 2 //'计算窗口高度,这里按两行平铺计算
//↑根据记事本数量计算将要设置的窗口宽度、高度
hwnds = dm.EnumWindow(0, "记事本", "", 1 + 4 + 8 + 16)
字符串分割(hwnds, ",", hw_sp)
数组大小("hw_sp,len1")
id = 数组[len1]
线程状态 = 数组[len1]
midnum = len1 / 2
遍历(i = 0; i < len1; i ++)
hwck = hw_sp[i]
id[i] = 线程开启("平铺操作", "")
线程状态[i] = 1
等待(500)
结束
//↓监测单个暂停及重启
循环(真)
变量 热键2, 键码, hwndex, m, hwndex2
热键获取键码("热键0", 热键2, "")
键码 = 键盘等待按键()
如果(键码 == 热键2)
hwndex = dm.GetMousePointWindow()
遍历(m = 0; m < len1; m ++)
hwndex2 = dm.GetWindow(hwndex, 0) //取父窗口
如果((hwndex == hw_sp[m] || hwndex2 == hw_sp[m]) && 线程状态[m] == 1)
线程暂停(id[m])
线程状态[m] = 0
消息框("线程:" & m & "已暂停,再次按继续")
否则
如果(hwndex == hw_sp[m] || hwndex2 == hw_sp[m])
线程恢复(id[m])
线程状态[m] = 1
消息框("线程:" & m & "已启动,再次按暂停")
结束
结束
结束
结束
结束
结束
//↑监测单个暂停及重启
功能 平铺操作(dm)
变量 m, n, x, y, dm_ret, hwnd
dm = com("dm.dmsoft")
dm_ret = dm.SetWindowState(hwck, 4)
traceprint(w & " " & h)
dm_ret = dm.SetWindowSize(hwck, w, h)
如果(i < midnum)
m = i
n = 0
否则
m = i - midnum
n = 1
结束
x = m * w
y = n * h
dm.MoveWindow(hwck, x, y)
//*↑这里以打开10窗口为例:统计平铺时的x,y坐标,就能得到上面的规律
//midnum=5
//i=0,1,2, 3, 4, 5,6,7, 8, 9
//x=0,w,2w,3w,4w,0,w,2w,3w,4w
//y=0,0,0, 0, 0, h,h,h, h, h*
hwnd = dm.FindWindowEx(hwck, "Edit", "")
循环(真)
dm_ret = dm.BindWindow(hwnd, "gdi", "windows3", "windows", 0)
等待(200)
如果(dm_ret == 1)
traceprint("绑定成功")
跳出
结束
结束
循环(真)
dm.SendString(hwnd, "我是来测试的")
等待(1000)
dm.keypress(13)
结束
结束
//全关闭
功能 退出_点击()
变量 dm, dm_ret
dm = com("dm.dmsoft")
遍历(i = 0; i < len1; i ++)
hwck = hw_sp[i]
线程关闭(id[i])
dm_ret = dm.SetWindowState(hwck, 13)
等待(100)
结束
线程关闭(线程句柄)
结束
//全停
功能 按钮1_点击()
遍历(i = 0; i < len1; i ++)
如果(线程状态[i] == 0)
线程恢复(id[i])
线程状态[i] = 1
结束
结束
消息框("已全部恢复启动")
结束
//全开
功能 按钮0_点击()
遍历(i = 0; i < len1; i ++)
如果(线程状态[i] == 1)
线程暂停(id[i])
线程状态[i] = 0
结束
结束
消息框("已全部暂停")
结束
|
|