You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell创建带WebBrowser控件的Windows窗体并实现URL保存?

PowerShell中使用WebBrowser控件实现带导航功能的窗体

当然可以!这两个需求都能轻松实现——PowerShell完全支持调用.NET的Windows Forms控件,包括WebBrowser。下面我直接给你一个完整的脚本,完美匹配你的需求:生成带地址栏、WebBrowser控件的窗体,底部的Select按钮点击后关闭窗体并把当前URL保存到本地文件。

完整实现脚本

# 加载Windows Forms相关程序集
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# 创建主窗体
$form = New-Object System.Windows.Forms.Form
$form.Text = "Web Browser Selector"
$form.Size = New-Object System.Drawing.Size(800, 600)
$form.StartPosition = "CenterScreen"
$form.FormBorderStyle = "FixedDialog"
$form.MaximizeBox = $false

# 创建地址栏输入框
$addressBar = New-Object System.Windows.Forms.TextBox
$addressBar.Location = New-Object System.Drawing.Point(10, 20)
$addressBar.Size = New-Object System.Drawing.Size(680, 25)
$addressBar.Text = "https://www.example.com"
# 回车触发导航
$addressBar.Add_KeyDown({
    if ($_.KeyCode -eq [System.Windows.Forms.Keys]::Enter) {
        $webBrowser.Navigate($addressBar.Text)
    }
})
$form.Controls.Add($addressBar)

# 创建导航按钮(辅助点击跳转)
$goButton = New-Object System.Windows.Forms.Button
$goButton.Location = New-Object System.Drawing.Point(700, 20)
$goButton.Size = New-Object System.Drawing.Size(80, 25)
$goButton.Text = "Go"
$goButton.Add_Click({
    $webBrowser.Navigate($addressBar.Text)
})
$form.Controls.Add($goButton)

# 创建WebBrowser控件
$webBrowser = New-Object System.Windows.Forms.WebBrowser
$webBrowser.Location = New-Object System.Drawing.Point(10, 50)
$webBrowser.Size = New-Object System.Drawing.Size(770, 480)
# 页面加载完成后自动同步地址栏
$webBrowser.Add_DocumentCompleted({
    $addressBar.Text = $webBrowser.Url.AbsoluteUri
})
$form.Controls.Add($webBrowser)

# 创建底部Select按钮
$selectButton = New-Object System.Windows.Forms.Button
$selectButton.Location = New-Object System.Drawing.Point(350, 540)
$selectButton.Size = New-Object System.Drawing.Size(100, 30)
$selectButton.Text = "Select"
$selectButton.Add_Click({
    # 保存当前URL到临时文件(可自行修改路径)
    $outputPath = Join-Path -Path $env:TEMP -ChildPath "SelectedUrl.txt"
    $webBrowser.Url.AbsoluteUri | Out-File -FilePath $outputPath -Encoding utf8
    # 关闭窗体
    $form.Close()
})
$form.Controls.Add($selectButton)

# 启动窗体消息循环
$form.ShowDialog() | Out-Null

关键功能说明

  • 先加载了System.Windows.Forms和System.Drawing两个.NET程序集,这是创建Windows窗体控件的基础依赖。
  • 主窗体设置为固定大小、居中显示,禁止最大化,保证界面简洁可控。
  • 地址栏支持两种导航方式:回车键触发,或者点击右侧的Go按钮;页面加载完成后会自动更新地址栏内容,和当前网页保持同步。
  • WebBrowser控件占据窗体大部分区域,负责渲染网页内容。
  • 点击Select按钮时,会把当前网页的URL写入系统临时目录下的SelectedUrl.txt文件,随后关闭窗体——调用这个脚本的程序可以直接读取该文件获取输出结果。

自定义提示

如果你需要修改输出文件的路径,只需要调整脚本中$outputPath变量的值即可,比如改成固定路径"C:\YourCustomPath\SelectedUrl.txt"。另外,这个脚本仅支持Windows环境运行,因为依赖Windows Forms控件。

内容的提问来源于stack exchange,提问作者schizoid04

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:28:10