找回密码
 加入
搜索
查看: 5634|回复: 18

如何实现AU3挂载网页(已有部分代码)

[复制链接]
发表于 2009-7-10 23:37:24 | 显示全部楼层 |阅读模式
本帖最后由 feicuiboy 于 2009-8-27 19:07 编辑

如何实现AU3挂载网页:
实现如下功能:

若网络不通或上不了网,则显示本地的一个html页面
若网络连通,则跳转显示到网络上的一个页面

AU3初学,在中文的帮助文件里没有看到有类似挂载网页的例子,希望高手指教,谢谢

-------------------------------------
回复:感谢lynfr8autoit3cn的帮助,基本的功能已经实现了,能否在您们两人的基础上,完善一下
做成一个下面的网页,那样功能就更强大了---真的很感谢www.autoitx.com,这里的热心朋友很多,能让我们学到很多东西

============================================








改日有时间,必向大师学习


论坛的朋友都是热心的,斑竹和高级会员更是热心
本人十分感谢AU3。
===========================================
2009-7-19号问题:
知道文件名,比如tt.exe,
不知道文件的路径,如何设置按下按钮后,运行这个tt.exe程序

=======================================
2009-7-21
问题2:可以将下面的按钮放置在工具栏(和工具\关于等在同一行)吗?如何实现


代码:
$OK = GUICtrlCreateButton ("按钮OK", 150,2,80,40)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-7-11 01:56:20 | 显示全部楼层
#include <IE.au3>
Global Const $NETWORK_ALIVE_LAN = 0x1
Global Const $NETWORK_ALIVE_WAN = 0x2
$x =DLLCall("sensapi.dll","int","IsNetworkAlive","str",$NETWORK_ALIVE_LAN)
If $x[0]=1 Then ;1 为网络连通
$oIE = _IECreate ("http://www.baidu.com/") 
Else ; 0 为网络不通或上不了网
        $oIE = _IECreate ("C:\1.html") 
EndIf
 楼主| 发表于 2009-7-11 23:32:44 | 显示全部楼层
本帖最后由 feicuiboy 于 2009-7-11 23:34 编辑

我的意思是在程序中内嵌一个网页,然后判断,若网络不通或上不了网,则显示本地的一个html页面
若网络连通,则跳转显示到网络上的一个页面,麻烦您了
发表于 2009-7-11 23:59:15 | 显示全部楼层
#include <IE.au3>
$hGUI = GUICreate("AU3挂载网页", 800, 600)
$oIE = _IECreateEmbedded()
GUICtrlCreateObj($oIE, 0, 0, 800, 600)
Global Const $NETWORK_ALIVE_LAN = 0x1
Global Const $NETWORK_ALIVE_WAN = 0x2
$x =DLLCall("sensapi.dll","int","IsNetworkAlive","str",$NETWORK_ALIVE_LAN)
If $x[0]=1 Then ;1 为网络连通
_IENavigate($oIE, "http://www.baidu.com")
Else ; 0 为网络不通或上不了网
_IENavigate($oIE, "C:\1.html")
        EndIf
GUISetState()
        
Do
    Sleep(20)
Until GUIGetMsg() = -3
 楼主| 发表于 2009-7-12 09:50:58 | 显示全部楼层
搜索过论坛,已经有一个简易的浏览器,能否在该程序的基础上做些修改,实现我上面提到的功能呢??
http://www.autoitx.com/forum.php ... =%E4%AF%C0%C0%C6%F7


源代码如下:
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_outfile=00000.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#Include <INet.au3>
#Include <String.au3>

Global $oIE = ObjCreate("Shell.Explorer.2")
Global $ini = @ScriptDir & "\autoit.ini"

Global $read_height = IniRead($ini, "Display", "Height", "")
Global $read_width = IniRead($ini, "Display", "Width", "")
Global $read_homepage = IniRead($ini, "Settings", "Homepage", "")
Global $read_starthomepage = IniRead($ini, "Settings", "StartHomepage", "")

If $read_height = "" Then
    IniWrite($ini, "Display", "Height", "600")
    IniWrite($ini, "Display", "Width", "800")
    $read_height = 600
    $read_width = 800
EndIf

If $read_starthomepage = "" Then
    $read_starthomepage = "1"
    $read_homepage = "www.autoitx.com"
EndIf

$iniread = IniRead($ini, "URL", "LAST URL", " ")
If $read_starthomepage = "0" Then $read_homepage = $iniread


$gui_main = GUICreate("", $read_width, $read_height + 20, -1, -1, 0x04000000 + 0x00CF0000)

$file_menu = GUICtrlCreateMenu("文件")
$fm_newwind = GUICtrlCreateMenuItem("新窗口", $file_menu)
$fm_sep = GUICtrlCreateMenuItem("", $file_menu)
$fm_open = GUICtrlCreateMenuItem("打开", $file_menu)
$fm_sep = GUICtrlCreateMenuItem("", $file_menu)
$fm_print = GUICtrlCreateMenuItem("打印", $file_menu)
$fm_sep = GUICtrlCreateMenuItem("", $file_menu)
$fm_savas = GUICtrlCreateMenuItem("保存", $file_menu)
$fm_SaveSource = GUICtrlCreateMenuItem("另存", $file_menu)
$fm_sep = GUICtrlCreateMenuItem("", $file_menu)
$fm_exit = GUICtrlCreateMenuItem("退出", $file_menu)

$view_menu = GUICtrlCreateMenu("查看")
$vm_status = GUICtrlCreateMenuItem("状态栏", $view_menu)
GUICtrlSetState(-1, 1)

$tool_menu = GUICtrlCreateMenu("工具")
$tm_pref = GUICtrlCreateMenuItem("偏好", $tool_menu)
$tm_sep = GUICtrlCreateMenuItem("", $tool_menu)

$tm_sep = GUICtrlCreateMenuItem("", $tool_menu)
$tm_gu = GUICtrlCreateMenuItem("获取当前网址", $tool_menu)

$about_menu = GUICtrlCreateMenu("关于")
$am_about = GUICtrlCreateMenuItem("关于", $about_menu)

$gui_iewindow = GUICtrlCreateObj($oIE, 0, 0, $read_width, $read_height - 45)
GUICtrlSetResizing($gui_iewindow, 0x0001)

$address_bar_label = GUICtrlCreateLabel("输入地址: ", 0, 562, 85, -1)
$address_bar_input = GUICtrlCreateInput($read_homepage, 76, 559, 200, -1)
$address_bar_go = GUICtrlCreateButton("访问>>", 280, 557, 50, -1, 0x0001)
$address_bar_stop = GUICtrlCreateButton("停止", 330, 557, 50, -1)
$address_bar_back = GUICtrlCreateButton("后退", 380, 557, 50, -1)
$address_bar_forward = GUICtrlCreateButton("前进", 430, 557, 50, -1)
$address_bar_refresh = GUICtrlCreateButton("刷新", 480, 557, 50, -1)
$address_bar_home = GUICtrlCreateButton("首页", 530, 557, 50, -1)

$status_bar = GUICtrlCreateLabel("载入: " & $read_homepage & "...", 0, 584, $read_width, $read_height, BitOR(11, 0x1000))

GUISetState()

AnimateTitle($gui_main, "Tcfox - by 2008", 100)
$oIE.Navigate ($read_homepage)

$gui_pref = GUICreate("偏好", 298, 230, 359, 233)
$group1 = GUICtrlCreateGroup("设置", 16, 16, 265, 170)
$label_home = GUICtrlCreateLabel("首页:", 32, 40, 59, 17)
$input_add = GUICtrlCreateInput($read_homepage, 96, 40, 161, 21)
$label_start = GUICtrlCreateLabel("启动:", 32, 80, 58, 17)
$combo_startup = GUICtrlCreateCombo("", 96, 80, 161, 25)
If $read_starthomepage = "0" Then
    GUICtrlSetData(-1, "访问首页|开始与上次访问", "历史访问")
Else
    GUICtrlSetData(-1, "访问首页|开始与上次访问", "访问首页")
EndIf
#cs
    $pref_Status_Status = GUICtrlCreateLabel("Display Width", 32, 110, 58, 71)
    $pref_width_input = GUICtrlCreateInput($read_width, 80, 115, 58, 20)
    $pref_height_label = GUICtrlCreateLabel("Display Height", 32, 140, 58, 71)
    $pref_height_input = GUICtrlCreateInput($read_height, 80, 145, 58, 20)
#ce
$button_apply = GUICtrlCreateButton("应用", 120, 190, 75, 25, 0)
$button_close = GUICtrlCreateButton("关闭", 208, 190, 75, 25, 0)
GUISetState(@SW_HIDE, $gui_pref)

While 1
    WinSetTitle($gui_main, "", "Tcfox - Created by 2008 " & $oIE.locationURL ())

    If $oIE.Busy () Then
        $url = $oIE.LocationURL ()
        _StatusChange("Loading: " & $url & "...")
    Else
        _StatusChange("Done.")
    EndIf

    $msg = GUIGetMsg(1)
    Switch $msg[0]
        Case - 3
            $update = $oIE.LocationURL ()
            IniWrite($ini, "URL", "LAST URL", $update)
            FileDelete(@TempDir & "\HelpFile.exe")
            Exit
            ;File Menu
        Case $fm_newwind
            Run("tcfox.exe")
        Case $fm_open
            Local $file = FileOpenDialog("选择文件", @ScriptDir, "All Files (*.*)")
            If @error <> 1 Then
                _StatusChange("Loading: " & $file & "...")
                $oIE.Navigate ($file)
            EndIf
        Case $fm_print
            $oIE.document.parentwindow.Print ()
        Case $fm_savas
            $oIE.document.execCommand ("SaveAs")
        Case $fm_SaveSource
            $IE = _INetGetSource("" & $update & "")
            FileWrite(@DesktopDir & "\websource.html", $IE)
            MsgBox(64, "tcfox", "保存到桌面 websource.html")
        Case $fm_exit
            $update = $oIE.LocationURL ()
            IniWrite($ini, "URL", "LAST URL", $update)
            Exit
            ;View Menu
        Case $vm_status
            $size = WinGetPos("Tcfox")
            If BitAND(GUICtrlRead($vm_status), 1) = 4 Then
                GUICtrlSetState($vm_status, 4)
                GUICtrlSetState($status_bar, 32)
                WinMove("Tcfox", "", $size[0], $size[1], $size[2], $size[3] - 15)
            Else
                GUICtrlSetState($vm_status, 1)
                GUICtrlSetState($status_bar, 16)
                WinMove("Tcfox ", "", $size[0], $size[1], $size[2], $size[3] + 15)
            EndIf
        Case $tm_pref
            GUISetState(@SW_SHOW, $gui_pref)
        Case $tm_gu
            $update = $oIE.LocationURL ()
            MsgBox(0, "Tcfox", "URL:" & $update & "")
            ClipPut($update)
        Case $button_close
            GUISetState(@SW_HIDE, $gui_pref)
        Case $button_apply
            ;$getwidth = GUICtrlRead($pref_width_input)
            ;$getheight = GUICtrlRead($pref_height_input)
            ;IniWrite($ini, "Display", "Width", $getwidth)
            ;IniWrite($ini, "Display", "Height", $getheight)
            $gethome = GUICtrlRead($input_add)
            $getstarthome = GUICtrlRead($combo_startup)
            If $getstarthome = "Start with Homepage" Then
                IniWrite($ini, "Settings", "StartHomepage", "1")
            Else
                IniWrite($ini, "Settings", "StartHomepage", "0")
            EndIf
            IniWrite($ini, "Settings", "Homepage", $gethome)
            GUISetState(@SW_HIDE, $gui_pref)
            _StatusChange("Configuration written successfully.")
            sleep(1000)
            ;About Menu
        Case $am_about
            MsgBox(64,"About","Product name:    Tcfox ")
            ;Address Bar Buttons
        Case $address_bar_go
            $addy = GUICtrlRead($address_bar_input)
            _StatusChange("Loading: " & $addy & "...")
            $oIE.Navigate ($addy)
            _StatusChange("Done.")
        Case $address_bar_stop
            $oIE.Stop ()
        Case $address_bar_back
            $oIE.GoBack ()
        Case $address_bar_forward
            $oIE.GoForward ()
        Case $address_bar_refresh
            $oIE.document.execCommand ("Refresh")
        Case $address_bar_home
            $read_homepageini = IniRead($ini, "Settings", "Homepage", "")
            $oIE.Navigate ($read_homepageini)
            GUICtrlSetData($address_bar_input, $read_homepage)
    EndSwitch
WEnd

Func _StatusChange($message)
    GUICtrlSetData($status_bar, $message)
EndFunc   ;==>_StatusChange




Func AnimateTitle($hGUI, $sTitle, $iBuf)
    $sTitle = StringSplit($sTitle, "")
    For $i = $iBuf To 0 Step - 1
        WinSetTitle($hGUI, "", _StringRepeat(" ", $i) & $sTitle[1])
    Next
    Local $s
    For $i = 1 To $sTitle[0]
        $s &= $sTitle[$i]
        WinSetTitle($hGUI, "", $s)
        Sleep(5)
    Next
EndFunc   ;==>AnimateTitle
 楼主| 发表于 2009-7-12 10:05:29 | 显示全部楼层
补充说明:

原图如下:

想修改成如下样子:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2009-7-12 22:10:06 | 显示全部楼层
请高手帮忙看下,能参照这个修改吗??

实现这个复杂不?
 楼主| 发表于 2009-7-13 00:24:04 | 显示全部楼层
夜深了,一直睡不着,期盼着高手们能给点指导
发表于 2009-7-13 13:07:15 | 显示全部楼层
$address_bar_stop = GUICtrlCreateButton("停止", 330, 557, 50, -1)
$address_bar_back = GUICtrlCreateButton("后退", 380, 557, 50, -1)
观察下这两句
然后看看帮助文件的GUICtrlCreateButton
就懂了
---------------------------------------------------------
至于置顶
创建按钮控件之后,触发以下命令就行了
WinSetOnTop
标志 用以决定目标窗口是否具有"顶层窗口"属性:
1=设置为顶层窗口,0 = 取消顶层窗口属性
 楼主| 发表于 2009-7-13 20:19:12 | 显示全部楼层
 楼主| 发表于 2009-7-15 13:09:13 | 显示全部楼层
9# lynfr8
看了下帮助,GUICtrlCreateButton是在gui界面创建一个按钮,如何使按下按钮后触发刷新的作用,谢谢
 楼主| 发表于 2009-7-15 13:41:31 | 显示全部楼层
才学到自由天空的for...next循环,急于做出上面的效果,请高人帮忙啊
 楼主| 发表于 2009-7-15 23:22:43 | 显示全部楼层
本帖最后由 feicuiboy 于 2009-7-20 19:01 编辑

苦于大师级别的都授我以渔,我又急着想实现以上功能,
改日有时间,必向大师学习。
 楼主| 发表于 2009-7-20 19:04:41 | 显示全部楼层
只知道文件名,比如tt.exe,
不知道文件的路径,如何设置按下按钮后,运行这个程序
发表于 2009-7-20 19:11:29 | 显示全部楼层
放在脚本目录就可以
至于其他位置
除非在注册表有痕迹可以iniread到路径
否则就遍历搜索咯
不过这个时候恐怕硬盘像老鼠啃米似的咯吱咯吱的响
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 16:20 , Processed in 0.086171 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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