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

chunwaihome 的博客

 
 
 

日志

 
 

DO Command  

2009-10-25 10:18:56|  分类: Powerpro腳本學習 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

相信很多初學者都非常習慣GUI Configuration Dialog的操作,如圖

DO Command - Y偉 - chunwaihome 的博客

Name:*window

Command:traymin

Parameter: =notepad

當您按下"test"按鈕後,"記事本"程序就會以開啟並且縮小到系統匣中。

其實你也可以直接在第一欄的位置以一行過的方式輸入

window traymin =notepad              ;這是Literal Syntax

window.traymin("=notepad")          ;這是Expression Syntax

整行命令,結果和分開三行寫是一樣的。這篇文章的目的就是討論Literal SyntaxExpression Syntax兩者的方別和介紹另一個常用語句do()的用法。

  • Literal Syntax

上面例子中的*window traymin =notepad就是Literal Syntax,它是Powerpro舊式所用的表達法,注意每個命令中間用空格分隔開的。

語句:Command Action Literal parameters

 

例如:

Window traymin =notepad

Window traymin =mspaint

在Literal Syntax語句中,您可以加入多過一個參數,因此上面兩個語句可以簡化為一行命令

Window traymin =notepad,=mspaint                    ;留意兩個參數中間需要用逗號分隔開

  • Expression Syntax

上面例子中的window.traymin("=notepad")就是Expression Syntax,它亦是Powerpro Plugin(插件)所用的表達方法。

語句: Command.Action(expr1,expr2,.........,expr9)

 

例如:

window.traymin("=notepad")

window.traymin("=mspaint")

在Expression Syntax語句中,您可以加入多過一個參數,因此上面兩個語句可以簡化為一行命令

window.traymin("=notepad,mspaint")              ;留意兩個參數中間需要用逗號分隔開

留意window和traymin中間用一點去分隔開,而且小括號中的=notepad前後需要用双引號括住。

  • 如何將Liternal Syntax的語句轉為Expression Syntax呢

 大部分的Literal Syntax命令都可以在command和action中間加上一點就可以轉為Expression Syntax了。例如Literal Syntax的Screensaver start命令,您只要在兩者的中間位置加上一點Screensaver.start(),就可以將它轉為Expression Syntax了,當沒有參數的時候在start命令後面的小括號是可以省略的。但亦有特殊例子:

  1. Keys

如果我想將Keys {to =notepad}abc命令轉為Expression Syntax 的話需要用win插件

win.keys("{to =notepad}abc")

兩句命令都會激活記事本然後輸入abc文字。

提示:Keys和{to =notepad}必需留一空格,而win.keys和("{to =notepad}abc")中間留多少個空格也是沒影響的。

    2.  Message

Literal: Syntax:Message text
Expression: Syntax:MessageBox("Layout","text","title")

   3. Wait

Literal Syntax:         wait 10
Expression Syntax   wait.for(10)

   4. File, Clip和Note

如果將它們轉為Expression syntax的話,將自動轉作插件型式表達。

  • 用Expression Syntax的好處

Expression Syntax能夠將Variable(變數)應用在命令中例如

target = "=notepad"

window.traymin(target)

留意target是不需双引號括住的

myCaption = "*explorer*"

window close myCaption

如果用liternal expression的表達方式,window close命令會嘗試關閉mycaption 而不是explorer。但亦有個折衝的方法就是在變數前加上&()

myCaption = "*explorer*"

window close &(myCaption)

  • Do Command

上面的例子都是powerpro內置命令,而如果我們想將Variable(變數)應用在外置命令中,例如我們想用記事本("c:/windows/notepad.exe" )打開ppwork這個變數呢?

ppwork = "c:\ppwork.txt"                     (記得ppwork.txt要用双引號括住)

這時需要用do command,

do("c:/windows/notepad.exe",ppwork)或者do(?"c:\windows\notepad.exe",ppwork)

這裏大家要特別留意"\"(BackSlash)這個符號,因為它在powerpro作為Escape Character用途,所以在輸入路徑時要用"/"代替,或者在路徑前加上問號。

表一顯示四句相類似的命令,首兩個命令不能打開ppwork,後兩個就可以。

表一

 ppwork = "c:\ppwork.txt"

結果

 do("c:\windows\notepad.exe","ppwork")  X
 do("c:\windows\notepad.exe",ppwork)  X
 do(?"c:\windows\notepad.exe",?ppwork)  √

或可將變數改為ppwork=?"c:\ppwork.txt"或c:/ppwork.txt",

然後執行do(?"c:\windows\notepad.exe",ppwork)

 √

如果不用變數的話,以下命令也是可行的:

  1. c:\ppwork.txt
  2. "c:\ppwork.txt"
  3. "c:\windows\notepad.exe" "c:\ppwork.txt" 
  4. c:\windows\notepad.exe c:\ppwork.txt

當在路徑出現空格的時候前後需要用双引號括住

 

Do()命令格式為:

do(filepath[, params[, workfolder[, howstart]]])    ;執行外置命令
                 

例如我用記事本打開c:\ppwork.txt文字檔,而且需要用最大化的方式作啟動。語法為

do(?"c:\windows\notepad",?"c:\ppwork.txt",,"max")

而howstart的參數可以是"max", "min", "switchto", "topmost", "normaluser", "hidden", "traymin".

這些參數相等於在pproconfig.exe裏的啟動選項。見圖

DO Command - Y偉 - chunwaihome 的博客

  •  將Powerpro內置命令(built in commands)應用在Do()命令中

語法:

do(ppcmd.action(params and keywords)) ;Powerpro內置Expression Syntax表達方式
do("ppcmd", "action and params"[,"keywords"]) ;Powerpro內置Liternal Syntax表達方式

老實說,如果將Powerpro內置命令應用在do()表達方式,語法會變得更加複雜例如

bar.show(var)              Expression Syntax表達方式

bar show &(var)           Liternal Syntax表達方式

將Expression Syntax應用在do()命令中,語法是do(bar.show(var)),將Liternal Syntax 應用在do()命令中,語法將變為do( "bar", "show"++var)看起來變得更複雜。

但如果Powerpro內置命令(built in commands)應用在expression中,則必須使用do()命令

mycommand = "Bar Show MyList"                        將mycommand變數設為"Bar Show MyList"  

do (mycommand)

  • Powerpro默認提供的變數

在之前我們都是用手動方式設定變數(ppwork = "c:\ppwork.txt"),但其實powerpro在默認情況下,己經幫我們設立了一堆變數。例如XScreen,YScreen,date............想了解更多變數按此

Xscreen 表示屏幕的寛度,YScreen表示屏幕的高度,date表示當前的日期,我們可以將它視為一般變數看待。

例如我的屏幕解像度為1680x1050,那xscreen就等於1680,而yscreen就等於1050,假設我的C盘裏包含一個1680.jpg的檔案。那我可以直接用xscreen代替1680

do("c:/"++xscreen++".jpg")                Expression Syntax

do("c:/&(xscreen).jpg")                      Literal Syntax

  •  測試變數

  上面XScreen,YScreen,date它們的意思除了由我告訴大家之外,到底有沒有方法可以自己測試到呢?

可以用Debug 的命令做測試,它會彈出一窗口給出變數的值如:

win.debug(xscreen)                      Expression Syntax

debug &(screen)                           Literal Syntax

 

  评论这张
 
阅读(801)| 评论(4)
推荐 转载

历史上的今天

评论

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

页脚

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