#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
; 创建 GUI 窗口
$hGUI = GUICreate("嵌入 Edge 浏览器窗口", 1024, 768, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_VISIBLE))
; Edge 浏览器路径
Local $sEdgePath = '"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"'
; 启动 Edge 浏览器,打开指定网页,以应用模式启动,窗口最小化
Run($sEdgePath & ' --app="https://gushitong.baidu.com/index/ab-000001"', "", @SW_HIDE)
; 等待浏览器进程启动
Sleep(2000)
; 获取 Edge 浏览器窗口句柄
Local $hEdge
For $i = 1 To 50
$hEdge = WinGetHandle("[CLASS:Chrome_WidgetWin_1]", "")
If $hEdge Then ExitLoop
Sleep(100)
Next
If Not $hEdge Then
MsgBox(16, "错误", "未能获取 Edge 浏览器窗口句柄")
Exit
EndIf
; 隐藏浏览器窗口,确保在嵌入前不显示
WinSetState($hEdge, "", @SW_HIDE)
; 将浏览器窗口嵌入到 GUI 窗口中
_WinAPI_SetParent($hEdge, $hGUI)
; 去掉浏览器窗口的边框和标题栏
Local $iStyle = _WinAPI_GetWindowLong($hEdge, $GWL_STYLE)
_WinAPI_SetWindowLong($hEdge, $GWL_STYLE, BitAND($iStyle, BitNOT($WS_CAPTION + $WS_THICKFRAME)))
; 调整浏览器窗口大小
WinMove($hEdge, "", 0, 0, 1024, 768)
; 显示嵌入后的浏览器窗口
WinSetState($hEdge, "", @SW_SHOW)
; 显示 GUI 窗口
GUISetState(@SW_SHOW, $hGUI)
; 主事件循环
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $GUI_EVENT_RESIZED
; 调整浏览器窗口大小
Local $aSize = WinGetClientSize($hGUI)
WinMove($hEdge, "", 0, 0, $aSize[0], $aSize[1])
EndSwitch
WEnd
; 关闭浏览器窗口
WinClose($hEdge)
; 关闭 GUI 窗口
GUIDelete($hGUI)
Exit
|