2013-05-05 3 views
3

Сделайте снимок экрана активного окна.Vbscript Printscreen to MSpaint

Set Wshshell=CreateObject("Word.Basic") 
WshShell.sendkeys"%{prtsc}" 
WScript.Sleep 1500 

Запустить Mspaint и вставить.

set Wshshell = WScript.CreateObject("WScript.Shell") 
Wshshell.Run "mspaint" 
WScript.Sleep 500 

WshShell.AppActivate "Paint" 
WScript.Sleep 500 

WshShell.sendkeys "^(v)" 
WScript.Sleep 1500 

Здесь операция Принимая скриншот активного окна отлично работает .. Кроме того, она начинается с MSPaint, но содержание не вставлен в файл краски.

ответ

3

Ваш^параметр V в .Sendkeys неправильно, он должен быть:

WshShell.sendkeys "^v" 

.Sleep после .AppActivate кажется критическим; Я не мог заставить его «работать», пока я не увеличивал время сна:

WshShell.AppActivate "Paint" 
WScript.Sleep 5000 

Вашей проблема, что .Sendkeys доказательств не является надежным. Посмотрите here, especially the posting of Moby Disk, чтобы подумать о других стратегиях.

Смежные вопросы