golang でターミナルを非表示にする方法について話し合う

PHPz
リリース: 2023-04-14 09:25:20
オリジナル
780 人が閲覧しました

golang アプリケーションを作成するときは、多くの場合、ターミナルと対話する必要があります。ただし、ジョブの実行時など、ターミナル ウィンドウを非表示にする必要がある場合があります。この記事では、golang でターミナルを非表示にする方法について説明します。

なぜターミナルを非表示にするのでしょうか?

多くのシナリオでは、端末を非表示にすることが必要になる場合があります。

  1. 指定されたプログラムまたはアプリケーションの実行中に端末がユーザーと対話することは望ましくありません。
  2. コマンドまたはオペレーティング システム コマンドの実行時にターミナル出力が表示されることは望ましくありません。
  3. 自動テスト ケースを実行するときは、テスト結果が明確になるようにターミナル ウィンドウを非表示にする必要があります。

ターミナルを非表示にするにはどうすればよいですか?

golang では、syscall パッケージを使用してシステムと対話し、隠しターミナルを実現できます。

手順は次のとおりです。

  1. syscall パッケージをインポートします

    import "syscall"
    ログイン後にコピー
  2. 構造を定義します

    var (
        kernel32DLL = syscall.NewLazyDLL("kernel32.dll")
        procShowWindow = kernel32DLL.NewProc("ShowWindow")
    )
    const (
        SW_HIDE = 0
    )
    ログイン後にコピー
  3. システム関数の呼び出し

    procShowWindow.Call(uintptr(hwnd), uintptr(SW_HIDE))
    ログイン後にコピー

このうち、hwnd はウィンドウ識別子、SW_HIDE はウィンドウを非表示にするコマンドです。

サンプルコード

以下は、golangを使用してウィンドウを非表示にするサンプルコードです。

package main

import (
    "syscall"
)

func main() {
    var hwnd syscall.Handle
    syscall.GetInputState()
    syscall.GetConsoleWindow()
    procShowWindow.Call(uintptr(hwnd), uintptr(SW_HIDE))
}
ログイン後にコピー

概要

golang では、隠しターミナルはシステムと対話する必要があり、syscall パッケージを使用して実装されます。この記事の導入を通じて、golang でターミナルを非表示にする方法を学ぶ必要があります。

以上がgolang でターミナルを非表示にする方法について話し合うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート