我无法使用我使用Win32 api开发的屏幕截图应用程序作为Windows后台服务。我将其作为Windows后台服务安装并运行,到目前为止我没有问题。我的问题:该服务没有给我打印输出。不截取屏幕截图。我尝试制作另一个简单的应用程序。我尝试使用 OutputDebugStringW 函数发送消息,但我的问题没有得到解决。
无法使用 Win32 api 开发 Windows 后台应用程序?
为什么我会遇到此问题?
如何使用win32 api将屏幕截图应用程序作为Windows后台服务运行?
我的 Windows 后台服务未生成输出
package main
import (
"fmt"
"log"
"time"
"github.com/checkgo/win"
"github.com/kardianos/service"
)
var logger service.Logger
type program struct {
exit chan struct{}
}
func (p *program) Start(s service.Service) error {
if service.Interactive() {
logger.Info("Running in terminal.")
} else {
logger.Info("Running under service manager.")
}
p.exit = make(chan struct{})
// Start should not block. Do the actual work async.
go p.run()
return nil
}
func (p *program) run() {
logger.Infof("I'm running %v.", service.Platform())
ticker := time.NewTicker(2 * time.Second)
for {
select {
case tm := <-ticker.C:
win.OutputDebugString(fmt.Sprintf("%s : %v", "This is test message", tm))
case <-p.exit:
ticker.Stop()
}
} // link to whaterver image from the web
}
func (p *program) Stop(s service.Service) error {
// Stop should not block. Return with a few seconds.
return nil
}
func main() {
svcConfig := &service.Config{
Name: "GoServiceExampleSimple",
DisplayName: "Go Service Example",
Description: "This is an example Go service.",
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
log.Fatal(err)
}
logger, err = s.Logger(nil)
if err != nil {
log.Fatal(err)
}
err = s.Run()
if err != nil {
logger.Error(err)
}
}
屏幕截图:调试视图和 Windows 服务屏幕捕获
慕码人2483693
慕盖茨4494581
相关分类