Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk memisahkan Proses Go daripada Tetingkap Perintah dan Sembunyikan Tetingkap Konsol dalam Windows?

Bagaimana untuk memisahkan Proses Go daripada Tetingkap Perintah dan Sembunyikan Tetingkap Konsol dalam Windows?

DDD
DDDasal
2024-11-03 17:10:29838semak imbas

How to Decouple a Go Process from the Command Window and Hide the Console Window in Windows?

Menyahgandingkan Proses daripada Tetingkap Perintah

Dalam Go, anda boleh mencipta proses anak menggunakan os.StartProcess(). Walau bagaimanapun, secara lalai, proses ini kekal disambungkan ke tetingkap arahan induk. Untuk memisahkan proses dan menjalankannya di latar belakang, anda perlu mengubah suai atributnya.

Dalam kod anda, anda telah menyediakan struktur procAttr untuk mengubah hala deskriptor fail untuk proses anak. Walau bagaimanapun, nampaknya anda telah meninggalkan tetapan yang diperlukan untuk menyembunyikan tetingkap konsol untuk sistem Windows.

Untuk menyembunyikan tetingkap konsol, tambah baris berikut pada ahli procAttr.Sys:

procAttr.Sys.HideWindow = true

Walau bagaimanapun, anda telah menyebut bahawa ini mengakibatkan ralat "panic to wrong memory pointer". Ini berkemungkinan besar disebabkan oleh isu lain dalam kod anda yang tidak berkaitan dengan proses penyahgandingan.

Untuk menyusun atur cara anda tanpa memaut ke subsistem GUI Windows dan melumpuhkan penciptaan tetingkap konsol, gunakan arahan berikut:

go tool 8l -o output.exe -Hwindowsgui input.8

Ini akan menjana boleh laku yang boleh dijalankan di latar belakang tanpa tetingkap konsol.

Atas ialah kandungan terperinci Bagaimana untuk memisahkan Proses Go daripada Tetingkap Perintah dan Sembunyikan Tetingkap Konsol dalam Windows?. 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