# Windows

此页面包含了在 Windows 上开发 Wails 应用程序相关的其他指南。

## 处理 WebView2 运行时依赖

为 Windows 构建 Wails 应用程序时对 Microsoft [WebView2 运行时](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) 有要求。 默认情况下，Windows 11 会安装它，但有些机器不会。 Wails 提供了一种简单的方法来处理这种依赖关系。

通过在构建时使用 `-webview2` 标志, 您可以决定在未检测到合适的运行时的时候（包括安装的运行时是否太旧）应用程序将执行的操作。 四个选项是：

1. Download（下载）
2. Embed（内嵌）
3. Browser（浏览器）
4. Error（报错）

### Download（下载）

此选项将提示用户在未找到合适的运行时时，提供从 Microsoft 的 WebView2 官方站点下载并运行引导程序。 如果用户继续，官方引导程序将被下载并运行。

### Embed（内嵌）

此选项将官方引导程序嵌入到应用程序中。 如果没有找到合适的运行时，应用程序将提供并运行引导程序。 这将使二进制大小增加约 150k。

### Browser（浏览器）

此选项将提示用户没有找到合适的运行时时，提供打开浏览器到 WebView2 官方页面，可以下载和安装引导程序。 然后应用程序将会退出，安装的操作留给用户。

### Error（报错）

如果未找到合适的运行时间，则会向用户显示错误并且不采取进一步措施。

## 固定版本运行时

处理 webview2 依赖的另一种方法是自己发送。 您可以下载 [固定版本的运行时](https://developer.microsoft.com/microsoft-edge/webview2/#download-section) 并将其捆绑或与您的应用程序一起下载。

此外，您应该在启动 wails 时在结构体 `windows.Options` 中指定 webview2 运行时的固定版本的路径。

```go
    wails.Run(&options.App{
        Windows: &windows.Options{
            WebviewBrowserPath:  "",
        },
    })
```

注意：当 `WebviewBrowserPath` 指定时，`error` 策略将在最小要求版本不匹配或运行时路径无效的情况下被强制执行。

## 创建其他程序

当生成其他程序（例如脚本）时，您将看到屏幕上出现该窗口。 要隐藏窗口，可以使用以下代码：

```go
cmd := exec.Command("your_script.exe")
cmd.SysProcAttr = &syscall.SysProcAttr{
    HideWindow:    true,
    CreationFlags: 0x08000000,
}
cmd.Start()
```

[sithembiso](https://github.com/sithembiso) 在 [讨论板](https://github.com/wailsapp/wails/discussions/1734#discussioncomment-3386172) 上提供的解决方案。
