How to implement a simple window hiding running application in golang

PHPz
Release: 2023-04-25 09:42:35
Original
925 people have browsed it

Golang is an efficient programming language that can handle large amounts of data and concurrent tasks easily. The ability to run with a window hidden is very useful in many applications in computer science. If you need to run an app in the background but don't want others to find it, then this article will provide you with a solution.

In this article, we will use Golang to implement a simple window hiding running application. We'll demonstrate how to hide a window from the taskbar and desktop, but still run it in the background, receiving and processing events.

Implementation steps

First, you need to import the "Golang.org/x/sys/windows" library to use the Windows API. Then through the process of creating the window, the window is hidden.

package main

import (

"fmt"
"syscall"
"unsafe"

"golang.org/x/sys/windows"
Copy after login

)

func main() {

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

}

func hideWindow() error {

// 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
Copy after login

}

In this code, we use windows.GetConsoleWindow() to retreive the handle of the current window, and then use the ShowWindow() function to remove the window from the taskbar and desktop hidden in. Finally, we use SetWindowLong() to set the window style to WS_EX_TOOLWINDOW, making the window a tool window that will not appear in the taskbar, but can still be found in the background.

Note that hiding a window does not mean that the application no longer responds to user input or cannot receive messages. So, we have to keep the application running in an infinite loop, receiving and processing events to ensure that the application is always running. This cycle can be completed by opening another Goroutine.

Test the application

Open the command line tool, enter the directory where the application is located, and run the application. You will find that the application's window has disappeared and it is no longer visible in the taskbar. Try clicking the icon to which the application belongs and you will find that the application is still responsive to events and messages.

If you wish to end the application, you can press Ctrl C to close it.

Conclusion

Golang is an efficient programming language that makes it easy to implement the window hidden running function. In this article, we implemented a simple window hiding running application using Windows API. By hiding the application's window and running it in the background, we can make the application invisible to the user while still being able to handle events and messages. This technique is very useful in many scenarios where applications need to be hidden, such as running scheduled tasks in the background or hiding system management tools.

The above is the detailed content of How to implement a simple window hiding running application in golang. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!