Go语言弹窗提示:无需GUI界面,使用dlgs库实现弹窗输入和信息提示

如果只需要弹窗来提示信息而不需要GUI界面,可以使用github.com/gen2brain/dlgs库来实现。具体代码如下:

package main

import (
    "fmt"
    "github.com/gen2brain/dlgs"
    "io"
    "net/http"
    "os"
    "path/filepath"
)

func downloadFile(url string, filepath string) error {
    // 创建文件
    out, err := os.Create(filepath)
    if err != nil {
        return err
    }
    defer out.Close()

    // 发送请求并下载文件
    resp, err := http.Get(url)
    if err != nil {
        return err
    }
    defer resp.Body.Close()

    // 写入文件
    _, err = io.Copy(out, resp.Body)
    if err != nil {
        return err
    }

    return nil
}

func writeIni(name string) error {
    // 获取用户目录
    userDir, err := os.UserHomeDir()
    if err != nil {
        return err
    }

    // 获取配置文件路径
    iniPath := filepath.Join(userDir, "HC.ini")

    // 创建配置文件
    f, err := os.Create(iniPath)
    if err != nil {
        return err
    }
    defer f.Close()

    // 写入配置
    _, err = f.WriteString("[general]
")
    if err != nil {
        return err
    }

    return nil
}

func main() {
    // 弹出输入框
    entryText, _, err := dlgs.Entry("证书下载和配置", "请输入编号", "")
    if err != nil {
        dlgs.Error("错误", fmt.Sprintf("弹出输入框失败: %v", err))
        return
    }

    // 下载证书
    filepath := filepath.Join(os.Getenv("USERPROFILE"), "Desktop", "mitmproxy-ca-cert.p12")
    err = downloadFile("http://mitm.it/cert/p12", filepath)
    if err != nil {
        dlgs.Error("错误", fmt.Sprintf("下载证书失败: %v", err))
        return
    }

    // 写入配置文件
    err = writeIni(entryText)
    if err != nil {
        dlgs.Error("错误", fmt.Sprintf("写入配置文件失败: %v", err))
        return
    }

    // 提示设置完成信息
    dlgs.Info("信息", "设置完成,证书已下载到桌面请手动安装")
}

代码说明:

  1. 导入github.com/gen2brain/dlgs
  2. 使用dlgs.Entry函数弹出输入框,获取用户输入的编号
  3. 使用dlgs.Errordlgs.Info函数分别弹出错误提示和成功提示

使用示例:

  1. 运行代码
  2. 弹出输入框,提示用户输入编号
  3. 输入编号后,程序下载证书并写入配置文件
  4. 最后弹出信息提示,告知用户证书已下载到桌面,请手动安装

注意:

  1. 确保已安装dlgs库:go get github.com/gen2brain/dlgs
  2. 修改代码中的证书下载地址和配置文件路径,以适应您的实际情况
  3. 用户需要手动安装下载的证书

使用dlgs库可以轻松实现弹窗提示功能,简化了Go语言程序的开发流程。

Go语言弹窗提示:无需GUI界面,使用dlgs库实现弹窗输入和信息提示

原文地址: https://www.cveoy.top/t/topic/nRPj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录