mirror of
https://github.com/lwch/natpass.git
synced 2024-04-21 12:41:54 +00:00
38 lines
813 B
Go
38 lines
813 B
Go
package worker
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/lwch/logging"
|
|
"github.com/lwch/natpass/code/client/rule/vnc/vncnetwork"
|
|
)
|
|
|
|
func (worker *Worker) runCapture() vncnetwork.ImageData {
|
|
detach, err := attachDesktop()
|
|
if err != nil {
|
|
logging.Error("attach desktop: " + err.Error())
|
|
return vncnetwork.ImageData{
|
|
Ok: false,
|
|
Msg: fmt.Sprintf("attach desktop: " + err.Error()),
|
|
}
|
|
}
|
|
defer detach()
|
|
img, err := worker.cli.Screenshot()
|
|
if err != nil {
|
|
logging.Error("screenshot: " + err.Error())
|
|
return vncnetwork.ImageData{
|
|
Ok: false,
|
|
Msg: fmt.Sprintf("screenshot: " + err.Error()),
|
|
}
|
|
}
|
|
data := make([]byte, len(img.Pix))
|
|
copy(data, img.Pix)
|
|
return vncnetwork.ImageData{
|
|
Ok: true,
|
|
Bits: 32,
|
|
Width: uint32(img.Rect.Max.X),
|
|
Height: uint32(img.Rect.Max.Y),
|
|
Data: data,
|
|
}
|
|
}
|