TC官方合作论坛

 找回密码
 立即注册
查看: 825|回复: 6
打印 上一主题 下一主题

[已解决] 请高手指点下我这样去控制多个窗口行的通吗?

[复制链接]
跳转到指定楼层
楼主
发表于 2012-8-18 22:27:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1   首先我设置2个热键 分别用鼠标句柄给他们重命名
2   然后我在开始按钮里写上找到窗口的代码并让他们移动,但是不成功
请高手指点下哪里出了问题,还是我这种想法根本就行不通呢?!

下面是自己写的代码:
空间 移动窗口
//定义默认空间
字符型 记事本1,记事本2
功能 逻辑型 开始_点击()
//这里添加你要执行的代码
整型 窗口句柄=窗口.找到窗口(记事本1)
窗口.设置位置(窗口句柄,10,10)
辅助.等待(1000)
窗口句柄=窗口.找到窗口(记事本2)
窗口.设置位置(窗口句柄,10,10)
返回 真
//函数返回语句
功能结束
功能 逻辑型 退出_点击()
//这里添加你要执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束

功能 逻辑型 热键0_热键()
//这里添加你要执行的代码
辅助.等待(3000)
整型 鼠标窗口=窗口.鼠标所在窗口句柄()
字符型 标题=窗口.得到标题(鼠标窗口)
整型 窗口句柄=窗口.找到窗口(标题)
窗口.设置标题(窗口句柄,"记事本1")   
返回 真
功能结束

功能 逻辑型 热键1_热键()
//这里添加你要执行的代码
辅助.等待(3000)
整型 鼠标窗口=窗口.鼠标所在窗口句柄()
字符型 标题=窗口.得到标题(鼠标窗口)
整型 窗口句柄=窗口.找到窗口(标题)
窗口.设置标题(窗口句柄,"记事本2")   
返回 真
功能结束
空间结束
//空间结束语句

回复

使用道具 举报

6#
发表于 2012-8-18 23:16:41 | 只看该作者
TC的好像不能最小化

  1. #import "dm.dmsoft" dm
  2. 空间 移动txt
  3. //定义默认空间



  4. 功能 逻辑型 开始_点击()
  5.    
  6.     int c
  7.     int[] 窗口句柄
  8.    
  9.    
  10.     //string 遍历句柄串 = dm.EnumWindow(0,"文本文档","",1+4+8+16)
  11.     string 遍历句柄串  = 系统.枚举("文本文档",0)
  12.     if(遍历句柄串!="")
  13.         string[] 单个窗口句柄
  14.         //字符串.分割(遍历句柄串,",",单个窗口句柄)  
  15.         字符串.分割(遍历句柄串,"|",单个窗口句柄)  
  16.         数组.大小(单个窗口句柄,c)
  17.         int i=0
  18.         int w=0
  19.         int h=0
  20.         窗口句柄=int[c]
  21.         while(i<c)
  22.             
  23.             窗口句柄[i]=convert.strtoint(单个窗口句柄[i])
  24.             if(窗口句柄[i]>0)
  25.                
  26.                 //dm.SetWindowState(窗口句柄[i],12)
  27.                 窗口.激活(窗口句柄[i])
  28.                 help.sleep(200)
  29.                 //dm.SetWindowSize(窗口句柄[i],350,435)
  30.                 窗口.设置大小(窗口句柄[i],350,435)
  31.                 //dm.MoveWindow(窗口句柄[i],w, h)
  32.                 窗口.设置位置(窗口句柄[i],w, h)
  33.                
  34.                 help.sleep(200)
  35.                
  36.             endif
  37.             //窗口排列
  38.             if(w<1000)
  39.                 w=w+350
  40.             else
  41.                 h=h+435
  42.                 w=0
  43.             endif
  44.             
  45.             i=i+1
  46.             help.sleep(500)
  47.         endwhile
  48.     endif
  49.    
  50.     返回 真
  51.     //函数返回语句
  52. 功能结束

  53. 功能 逻辑型 退出_点击()
  54.     //这里添加你要执行的代码
  55.     辅助.退出()
  56.    
  57.     返回 真
  58.     //函数返回语句
  59. 功能结束

  60. 空间结束
  61. //空间结束语句
复制代码


回复 支持 反对

使用道具 举报

沙发
发表于 2012-8-18 22:43:12 | 只看该作者

直接用枚举窗口就可以了
  1. string 遍历句柄串 = dm.EnumWindow(0,"文本文档","",1+4+8+16)
  2.     if(遍历句柄串!="")
  3.         string[] 单个窗口句柄
  4.         字符串.分割(遍历句柄串,",",单个窗口句柄)  
  5.         数组.大小(单个窗口句柄,c)
  6.         int i=0
  7.         int w=0
  8.         int h=0
  9.         窗口句柄=int[c]
  10.         while(i<c)
  11.             
  12.             窗口句柄[i]=convert.strtoint(单个窗口句柄[i])
  13.             if(窗口句柄[i]>0)
  14.                
  15.                 dm.SetWindowState(窗口句柄[i],12)
  16.                 help.sleep(200)
  17.                 dm.SetWindowSize(窗口句柄[i],350,435)
  18.                 dm.MoveWindow(窗口句柄[i],w, h)
  19.                 help.sleep(200)
  20.                
  21.             endif
  22.             //窗口排列
  23.             if(w<1000)
  24.             w=w+350
  25.             else
  26.                 h=h+435
  27.                 w=0
  28.             endif
  29.             
  30.             i=i+1
  31.             help.sleep(500)
  32.         endwhile
复制代码
回复 支持 反对

使用道具 举报

板凳
发表于 2012-8-18 22:48:32 | 只看该作者
完整的,只有移动功能



  1. #import "dm.dmsoft" dm
  2. 空间 移动txt
  3. //定义默认空间



  4. 功能 逻辑型 开始_点击()

  5. int c
  6. int[] 窗口句柄


  7. string 遍历句柄串 = dm.EnumWindow(0,"文本文档","",1+4+8+16)
  8.     if(遍历句柄串!="")
  9.         string[] 单个窗口句柄
  10.         字符串.分割(遍历句柄串,",",单个窗口句柄)  
  11.         数组.大小(单个窗口句柄,c)
  12.         int i=0
  13.         int w=0
  14.         int h=0
  15.         窗口句柄=int[c]
  16.         while(i<c)
  17.             
  18.             窗口句柄[i]=convert.strtoint(单个窗口句柄[i])
  19.             if(窗口句柄[i]>0)
  20.                
  21.                 dm.SetWindowState(窗口句柄[i],12)
  22.                 help.sleep(200)
  23.                 dm.SetWindowSize(窗口句柄[i],350,435)
  24.                 dm.MoveWindow(窗口句柄[i],w, h)
  25.                 help.sleep(200)
  26.                
  27.             endif
  28.             //窗口排列
  29.             if(w<1000)
  30.             w=w+350
  31.             else
  32.                 h=h+435
  33.                 w=0
  34.             endif
  35.             
  36.             i=i+1
  37.             help.sleep(500)
  38.         endwhile
  39.     endif

  40. 返回 真
  41. //函数返回语句
  42. 功能结束

  43. 功能 逻辑型 退出_点击()
  44. //这里添加你要执行的代码
  45. 辅助.退出()

  46. 返回 真
  47. //函数返回语句
  48. 功能结束

  49. 空间结束
  50. //空间结束语句
复制代码


回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2012-8-18 22:54:49 | 只看该作者
回复 3楼梦里只影向你的帖子

大哥你是直接用大漠来控制的呀,  那你后面的这组数子啥意思(1+4+8+16)
回复 支持 反对

使用道具 举报

5#
发表于 2012-8-18 23:04:11 | 只看该作者
这个说明文档有
1 : 匹配窗口标题,参数title有效

2 : 匹配窗口类名,参数class_name有效.

4 : 只匹配指定父窗口的第一层孩子窗口

8 : 匹配所有者窗口为0的窗口,即顶级窗口

16 : 匹配可见的窗口
回复 支持 反对

使用道具 举报

7#
发表于 2012-8-19 11:29:44 | 只看该作者
查找  标题  类名都一样的窗口句柄用枚举就好了   返回一个句柄组
然后再分割出来就好了
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-12 21:29 , Processed in 0.162597 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表