aardio窗體相關


 

 

import win.ui.minmax;

win.ui.minmax(winform)

winform.hitmax() 最大化,默認最大化就會還原

winform.close() 關閉窗口

 

一、創建簡單的WEB窗口(winform)
1.1點擊新建WEB窗體即可創建WEB瀏覽器,默認代碼如下:

//創建web窗體
var wb = web.form( winform 

, //可輸入_UIFLAG_ 前綴的常量自定義外觀

, //可輸入_DLCTL_ 前綴的常量以控制下載行為

, //"USER AGENT"

);


第二個參數可以使用一個或多個_UIFLAG_ 前綴的常量自定義外觀,多個常量之間用位或操作符( | ) 連接.
第三個參數可使用_DLCTL_前綴的常量以控制下載行為,多個常量之間用位或操作符( | ) 連接.

第四個參數USER AGENT(新版新添加還沒知道用法請老大指導)

較常用第三個參數,控制下載行為,具體參數可參考幫助文檔 

常用有

_DLCTL_DOWNLOADONLY 下載圖片,但不顯示
_DLCTL_NO_FRAMEDOWNLOAD web窗體對包含框架的頁面進行語法分析但不下載任何幀, 同時忽略框架,
_DLCTL_RESYNCHRONIZE 忽略緩存中的數據並向服務器請求更新
_DLCTL_SILENT 組件對話框、腳本錯誤對話框靜默模式
_DLCTL_NOFRAMES 禁止框架


1.2常用WEB窗體特殊設置
1).  禁止所有腳本錯誤對話框,並使腳本繼續運行。 與wb.silent不同,wb.noScriptErr僅對腳本錯誤對話框起作用,並且不會阻止腳本執行.

wb.noScriptErr = true


2.)不顯示網頁JS彈出的【確定】窗口

wb.showMsg=function( 提示信息, 對話框標題 ){
    return false; /*返回false則不顯示對話框*/
}


如想顯示【確定】窗口並自動點擊后消失則如下:

wb.showMsg=function(text /*信息*/,caption /*標題*/){

        closeDlg_t = function(title) {
                import winex;
        
                //查找符合標題的對話框
                var hwnd; 
                do{
                        hwnd = winex.find("#32770" /*標准對話框類名*/,title )
                        sleep(100)
                }while( !hwnd ) 
                
                //查找對話框上的第一個按鈕
                var hbuttton = winex.findEx(hwnd,1,"Button");
                winex.click(hbuttton);
                
        }
        thread.create(closeDlg_t,caption /*傳遞參數給線程*/ )
        
        
        return true;  /*返回false則不顯示對話框*/
}


(更多資料詳見幫助WEB窗體事件說明)


1.3 WEB窗體最大化、最小化

//點擊最大化,但是這個函數如果發現最大化會還原窗口,並返回一個值表示當前是否最大化
winform.hitmax()

//點擊最小化按鈕
winform.hitmin()

//這個是最大化,並且顯示,多了一個顯示的步驟
winform.show(0x3/*_SW_MAXIMIZE*/)

//這個是最小化,並顯示
winform.show(0x6/*_SW_MINIMIZE*/)


1.4禁止點擊鏈接在新窗口打開
A

//在wb.wait()后 添加下面代碼,在所屬的窗口禁止彈出
for(k,ele in wb.eachLinks()){
    
    ele.target = "_self"
}


寫在事件里,這樣每次打開頁面就自動修改,不需要寫在wb.wait后面了.全局開始禁止彈出窗口

wb.DocumentComplete=function( pDisp, url) {
    /*當整個文檔完成時觸發,刷新頁面不觸發*/
  for(k,ele in wb.eachLinks()){ 
  ele.target = "_self"
  }


//打開目標網站
wb.go("http://www.ecranesoft.com/")


C

//打開一個網址
wb.go(網址,自定義http請求頭,目標窗口="_self")


D

wb.NewWindow2= function ( ppDisp, Cancel) {
    
/*彈出新窗口以前觸發 */  
    
owner .go(  owner .translateUrl )
    
return  ppDisp,  true /*第二個返回值如果為真,則取消新窗口*/   
}



E

wb.translate =  function ( url ){
    
/*解析URL時觸發 */
    
owner .translateUrl = url; 
}




1.5在控件顯示WEB窗體
web.form是一個類,其構造函數可以在現有窗口對象中插入瀏覽器控件.窗口對象可以是一個win.form對象,也可以是窗體上的控件,例如static控件.

如:在static控件顯示WEB窗體瀏覽

//創建web窗體
var  wb = web.form( winform.static  //這是winform窗體上的一個靜態文本框控件 
    ,0x4 /*_UIFLAG_NO3DBORDER*/  | 0x8 /*_UIFLAG_SCROLL_NO*/    //禁用邊框,禁用滾動條
    ,0x10 /*_DLCTL_DLIMAGES*/  | 0x40000000 /*_DLCTL_SILENT*/    //允許下載圖片,但是禁用組件對話框、腳本錯誤對話框等
    , //"USER AGENT"
    );


還可添加多控件顯示多個WEB網頁



二、自動填表、自動登錄(提交)代碼
2.1 自動填表(有NAME或ID)
A 簡單 ,沒框架,只有1個屬性名

/*尋找所屬節點的屬性,然后輸入新的屬性值
當知道屬性ID或NAME時可采用下面語句*/
ele=wb.waitEle("_"//雙引號里填屬性ID或name)
ele.value = _//修改屬性默認值;
ele.fireEvent("_"//當有事件執行函數時需事件發生器,如onchange onsubit)
ele = wb.getEle( HTML節點的ID名name, 框架名 ) 
/*調用wb.getEle之前必須調用 wb.wait() 等待網頁下載完畢. 
而使用 wb.waitEle() 則實現等待該節點下載並返回該節點的功能,而無須等待整個網頁下載完*/


多個屬性名相同

tele = wb.getEles( HTML節點的name屬性, 框架名 )
tele(0).setAttribute("屬性名字", "修改第一個節點屬性值")


該函數返回網頁上所有name屬性相同的同名節點.返回值為一個com數組.注意com數組使用()括號讀取成員而不是使用索引操作符[]
可以通過第二個參數指定框架窗口,該參數可以省略.


2.2 自動登錄或提交表單

ele.form.submit()//自動提交表單


2.3 特殊形式提交(無NAME無ID)
采用wb.eachAll 遍歷方法查找節點,並使用ele.click()模擬點擊

//遍歷所有input節點
for( i,ele in wb.eachAll("input") ){
    
if( ele.屬性 == "_"//當找到所屬的屬性恆等於一個“點擊鏈接的值” )  
        ele.click();
//然后點擊
}


遇到特殊形式,采用遍歷查找是最簡單的方法。

更多的自動登錄示例可查看舊論壇的帖子,里面匯總了各種形式的登錄示范,還有POST登錄方法。
163郵箱登錄問題(carl版主指導163填表及登錄)
登錄問題(帖子有老大指導多種方法自動登錄)

AAuto 網頁操作專題視頻(lujjh超版制作的經典視頻教程)
取得指定網頁節點的方法歸納 (模擬點擊必須掌握的知識)

2.4 自動點擊網頁超鏈接

也采用遍歷查找超鏈接,然后自動點擊,老大教我們封裝了一個點擊超鏈接函數clickLink()


clickLink = function(title){ //給函數一個連接名參數
    for(k,ele in wb.eachLinks() ){ //遍歷所有超鏈接
        if(string.find(ele.innerHTML,title )){ //如果發現超鏈接名
          ele.click(); //自動點擊
          break;
      }
  } 
}

// 當鏈接名為A,則執行點擊
clickLink("A")

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM