Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk melaksanakan aplikasi berjalan menyembunyikan tetingkap mudah dalam golang

Bagaimana untuk melaksanakan aplikasi berjalan menyembunyikan tetingkap mudah dalam golang

PHPz
PHPzasal
2023-04-25 09:19:22966semak imbas

Golang ialah bahasa pengaturcaraan yang cekap yang boleh mengendalikan sejumlah besar data dan tugas serentak dengan mudah. Keupayaan untuk berjalan dengan tetingkap tersembunyi sangat berguna dalam banyak aplikasi dalam sains komputer. Jika anda perlu menjalankan apl di latar belakang tetapi tidak mahu orang lain menemuinya, maka artikel ini akan memberi anda penyelesaian.

Dalam artikel ini, kami akan menggunakan Golang untuk melaksanakan aplikasi berjalan menyembunyikan tetingkap mudah. Kami akan menunjukkan cara menyembunyikan tetingkap daripada bar tugas dan desktop tetapi masih berjalan di latar belakang, menerima dan memproses acara.

Langkah pelaksanaan

Mula-mula, anda perlu mengimport pustaka "Golang.org/x/sys/windows" untuk menggunakan API Windows. Kemudian melalui proses mencipta tetingkap, tetingkap itu disembunyikan.

utama pakej

import (

"fmt"
"syscall"
"unsafe"

"golang.org/x/sys/windows"

)

func main() {

err := hideWindow()
if err != nil {
    fmt.Println("Error:", err)
}
for {
    // 无限循环以保持应用程序运行
}

}

ralat func hideWindow() {

// Get the window handle of the current process
hwnd := windows.GetConsoleWindow()
// Hide the window from taskbar and desktop
_, _, err := windows.ShowWindow(hwnd, windows.SW_HIDE)
if err != nil {
    return err
}
// Set the window style to WS_EX_TOOLWINDOW
const GWL_EXSTYLE = -20
const WS_EX_TOOLWINDOW = 0x00000080
style := windows.GetWindowLong(hwnd, GWL_EXSTYLE)
windows.SetWindowLong(hwnd, GWL_EXSTYLE, style | WS_EX_TOOLWINDOW)
return nil

}

Dalam kod ini, kami menggunakan windows.GetConsoleWindow() untuk mendapatkan semula pemegang tetingkap semasa, dan kemudian gunakan ShowWindow () fungsi ke Tetingkap tersembunyi daripada bar tugas dan desktop. Akhir sekali, kami menggunakan SetWindowLong() untuk menetapkan gaya tetingkap kepada WS_EX_TOOLWINDOW, menjadikan tetingkap sebagai tetingkap alat yang tidak akan muncul dalam bar tugas, tetapi masih boleh ditemui di latar belakang.

Perhatikan bahawa menyembunyikan tetingkap tidak bermakna aplikasi tidak lagi bertindak balas kepada input pengguna atau tidak boleh menerima mesej. Jadi, kita perlu memastikan aplikasi berjalan dalam gelung tak terhingga, menerima dan memproses acara untuk memastikan aplikasi sentiasa berjalan. Kitaran ini boleh diselesaikan dengan membuka Goroutine yang lain.

Uji aplikasi

Buka alat baris arahan, masukkan direktori tempat aplikasi berada dan jalankan aplikasi. Anda akan melihat bahawa tetingkap aplikasi telah hilang dan ia tidak lagi kelihatan dalam bar tugas. Cuba klik ikon kepunyaan aplikasi itu dan anda akan mendapati bahawa aplikasi itu masih responsif kepada acara dan mesej.

Jika anda ingin menamatkan aplikasi, anda boleh menekan Ctrl + C untuk menutupnya.

Kesimpulan

Golang ialah bahasa pengaturcaraan yang cekap yang memudahkan untuk melaksanakan fungsi larian tersembunyi tetingkap. Dalam artikel ini, kami melaksanakan aplikasi penyembunyian tetingkap mudah yang dijalankan menggunakan API Windows. Dengan menyembunyikan tetingkap aplikasi dan menjalankannya di latar belakang, kami boleh menjadikan aplikasi itu tidak kelihatan kepada pengguna sambil masih dapat mengendalikan acara dan mesej. Teknik ini sangat berguna dalam banyak senario di mana aplikasi perlu disembunyikan, seperti menjalankan tugas berjadual di latar belakang atau menyembunyikan alat pengurusan sistem.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan aplikasi berjalan menyembunyikan tetingkap mudah dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn