注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

chunwaihome 的博客

 
 
 

日志

 
 

如何讓powerpro辦認視窗  

2009-08-29 09:24:20|  分类: PowerPro |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Caption lists是甚麼?

它的作用是讓powerprop辦認視窗的一個方法,它的用途非常廣泛,以下是它的一些用途:

1)可以讓pp傳送keystroke給那視窗

2)window命令或者用win plugin

3) for context 命令

4) program-specific hot keys(意思是你設定的熱鍵只作用於某個視窗)

 例如我只想在notepad中擊alt+ctrl+b才執行該命令,設定如圖:

讓pp 知道你身在那個視窗 - 秦偉 - chunwaihome 的博客

而pp也有幾個方法去辦認視窗

  • to match a caption (視窗標題)

e.g.圖下的maxthon標題是" 秦偉的日志 - 网易博客 - Maxthon Browser"

Caption lists - 秦偉 - chunwaihome 的博客

但"秦偉的日志 - 网易博客 - Maxthon Browser"實在太長了,我們可以用萬字符去方便記認例如

yyy*            e.g.秦偉的*
*yyy            e.g. *Maxthon Browser

xxx*yyy       e.g. 秦偉*Maxthon Browser

 *代表任何字符

需要留意的是標題不可包含數字(digital),因為它會和另一方法handle有所沖突。

如果你想作用於多個視窗,你可以在兩個標題中加上逗號。

e.g. *notepad,*maxthon

而逗號代表了或者的意思,換句話說兩個視窗的任何一個。

如果你想同時符合某幾個條件的适可以用&或者and

e.g.open,&,=notepad

你也可以用最大化、最小化去限制視窗的顯示方式

方法在標題前加上<min>,<max>,<norm>

e.g. <min>*notepad

  •  用class的方式去辦認窗口

 c=*PartOfClassName*

  •  用執行程式的名稱

 它的使用也很普遍和方便,方法是在程式的名稱前加上=,但後面是沒有擴展名的

e.g. =totalcmd(正確)

=totalcmd.exe(錯誤)

而另一相似的是+totalcmd,分別是+不包括程式的dialog視窗,你也可以在=totalcmd後面加上,nodialog,效果也是一樣的。

  • to match the window handle

你可以用win.handle(cl)得到窗口的handle

e.g. win.handle("=notepad")

所得出結果是197362,但如果你再開啟另一個notepad,它的handle將會是另一個數字,這是大家要留意的。

其實這也是handle的好處,每一個窗口有獨一無二的handle值,這就可以分辦出擁有相同的標題或者exename但不同的窗口了。你還可以由視窗的某一點獲得handle

e.g.handlefrompoint(x,y)

 你亦可以用內置的windows指令去得到handle

e.g. window("firstwindow","=totalcmd")

window ("visiblewindow",captionlist)

list = window (visiblewindow","=exename")
for (j=1; ;j=j+1)
handle = word(list,j)
if (handle == "")
break
; Process the handle
endfor

  •   為了方便辦認某些特殊視窗

例如"打開舊檔"和"另存新檔"這些窗口,pp給了它們特殊的名稱以方便大家使用。

 窗口

 作用

 filedialog   open/save/save as windows,
 explorer    single or dual pane explorer windows
 explorer1   for single pane explorer windows,
 explorer2   for dual-pane explorer windows.
 under     the window under the mouse
 taskbar   the Taskbar,
 autorun    the last window selected by autorun,
 activebar   the last window activated by an active button,
 active    the foreground window.
 rawactive      the foreground window, even if it is a PowerPro bar or taskbar.

       

active的意思是激活的窗口,而under則是你mouse所在的窗口。

  • to match tray icon window by id

你亦可以caption後面加上id number去辦認tray icon

  •  mouse position

You can specify that the mouse must be at a screen corner, or screen edge, or quadrant with one of:

@topleft, @topright, @bottomleft, @bottomright, @top, @bottom, @left, @right, @quadtopleft, @quadtopright, @quadbottomleft, @quadbottomright

  •  using a captionlist to exclude window(s)

如果你想某窗口不在辦認的泛圍內,你可以在caption前加上 ~

例如你不想在active bar中顯示qq軟件,你可以加上~=qq如圖

Caption lists - 秦偉 - chunwaihome 的博客

 

  • using an expression to match

=(win.handlefrompoint(xmouse.ymouse).class()=="ToolBar32" && win.match (x0, "=notepad,&,*xxx*"))

checks the class of the child window under the mouse and also ensures the main window being matches (with handle in x0) matches the specified string

如何快捷得到窗口的標題,程式名稱.......

pp提供了一個小軟件*Exec WindowInfo,

Caption lists - 秦偉 - chunwaihome 的博客

只要你將滑鼠移至某窗口,它會顯示該窗口的位置、大小、window class、exe

你也可以設一熱鍵去開啟它,關閉它的方法是再執行它一次就可以了。

 實例:

notepad,=winword,explorer2,56,nodialog

視窗標題是notepad,或者winword的程式或者檔案總管或者handle56,而不包括它們的所有dialog視窗。

  评论这张
 
阅读(448)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017