2016-06-06 3 views
0

Привет, У меня есть код vba, который сделает скриншот на веб-сайте, и я хотел бы вставить его в MS PAINT, а затем снова скопировать в базу данных MS ACCESS. Прямо сейчас я пытаюсь вставить скриншот на MS PAINT, но не работает.excel vba paste screenshot in ms paint

Вот часть моего кода, где я буду делать скриншот затем открыть MSPaint для вставки:

keybd_event VK_MENU, 0, 0, 0 
keybd_event VK_SNAPSHOT, 0, 0, 0 
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0 
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 

'open mspaint 
Shell "C:\windows\system32\mspaint.exe", 1 

Application.SendKeys "^V" 
+0

Где вы делаете копию ? – Sgdva

+0

Код будет исполнять команду скриншота, поэтому копия не будет. после скриншота на веб-сайте код откроет MS PAINT, тогда скриншот в буфере обмена должен быть вставлен туда. – user2819919

+0

Это работает для вас? 'open mspaint Shell "C: \ windows \ system32 \ mspaint.exe" Application.Wait Now + TimeValue ("00:00:01") AppActivate "Untitled - Paint" – Sgdva

ответ

0

Рытье немного больше, это должно работать

'your code to get the screenshot 
Dim WshShell as Object 
Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run "mspaint" 
Application.Wait Now + TimeValue("00:00:01") 

WshShell.AppActivate "Paint" 
Application.Wait Now + TimeValue("00:00:01") 

WshShell.SendKeys "^(v)" 
Application.Wait Now + TimeValue("00:00:01") 
+0

Как я могу использовать .AppActivate? он не работает в моем коде. – user2819919

+0

Вам нужно добавить библиотеку «WScript» в ссылки, если не использовать мою переменную Set WshShell = CreateObject («WScript.Shell»), код, как он должен работать, или, по крайней мере, для меня. – Sgdva