2016-07-16 8 views
1

Ich schreibe ein Lua-Programm, das ich mit der Bildschirmfotofunktion meines Computers verknüpfen möchte (ich verwende Windows). Weiß jemand, wie man einen Screenshot macht, wenn eine Bedingung in meinem Programm erfüllt ist? Bei meinen Suchen konnte ich keine Hilfe finden. Ich denke, ich könnte Lua's 'os.execute ([command])' benutzen, aber ich bin mir nicht sicher, wie ich von dort aus auf Windows's Screenshot cmd verweisen soll. Jede Hilfe wäre großartig. Vielen Dank.lua screenshot von windows

+0

[Kann hilfreich sein] (http://superuser.com/a/943947/467273) –

+0

Das könnte funktionieren. Wissen Sie, wo Sie die Datei screenCapture.bat platzieren müssen, damit die cmd-Zeile sie erkennt? Vielen Dank. – dh21

+0

verwenden Sie einfach den vollständigen Pfad eines beliebigen Ordners Ihrer Wahl. Wenn Sie keinen Pfad angeben möchten, müssen Sie den enthaltenen Ordner zur Umgebungsvariablen PATH hinzufügen, damit Windows ihn finden kann. – Piglet

Antwort

0

Wenn Sie wxlua/wxwidgets verwenden oder den Zugang zu einer kompilierten binären haben, kann so etwas wie dies funktioniert:

require "wx" 
local width, height = wx.wxDisplaySize() 
local bitmap = wx.wxBitmap(width, height, -1) 
local memDC = wx.wxMemoryDC() 
memDC:SelectObject(bitmap) 
memDC:Blit(0, 0, width, height, wx.wxScreenDC(), 0, 0) 
memDC:SelectObject(wx.wxNullBitmap) 
bitmap:SaveFile("screenshot.png", wx.wxBITMAP_TYPE_PNG) 

Dieser Screenshot des gesamten Bildschirms nehmen sollte, aber man kann es leicht anpassen zu nehmen ein Screenshot eines bestimmten Bereichs des Bildschirms.