Files
go-screenshot/main.go
Mitchell Gerber e3b43d99c4 init
2018-07-11 10:49:10 -05:00

67 lines
1.2 KiB
Go

package main
import (
"fmt"
"github.com/getlantern/systray"
"github.com/kbinani/screenshot"
"image/png"
"os"
)
var window *ui.Window
func main() {
go func() {
systray.Run(onReady, onExit)
}()
<-make(chan struct{})
}
func onReady() {
systray.SetTitle("Awesome App")
systray.SetTooltip("Pretty awesome超级棒")
screenshot := systray.AddMenuItem("Screenshot", "Take a screenshot")
config := systray.AddMenuItem("Config", "Configuration")
quit := systray.AddMenuItem("Quit", "Quit the whole app")
go func() {
<-quit.ClickedCh
systray.Quit()
}()
go func() {
for {
select {
case <-screenshot.ClickedCh:
takeScreenShot()
case <-config.ClickedCh:
go showConfig()
}
}
}()
}
func onExit() {
fmt.Println("exit")
}
func takeScreenShot() {
n := screenshot.NumActiveDisplays()
for i := 0; i < n; i++ {
bounds := screenshot.GetDisplayBounds(i)
img, err := screenshot.CaptureRect(bounds)
if err != nil {
panic(err)
}
fileName := fmt.Sprintf("%d_%dx%d.png", i, bounds.Dx(), bounds.Dy())
file, _ := os.Create(fileName)
defer file.Close()
png.Encode(file, img)
fmt.Printf("#%d : %v \"%s\"\n", i, bounds, fileName)
}
}