Bir URL başlatmaya çalışıyorum ve ardından ekran açılan IE penceresini yakalamaya çalışıyorum (URL başlatıldığında bir SmartCard Reader uygulamasını da başlatıyor), bu yüzden tüm pencereleri ya da IE penceresini açıp yapıştırma işlemine ya da yapıştırma işlemine ihtiyacım var Aşağıdaki hücreye bir resim olarak veya C sürücüsüne bir resim olarak kaydedin, sonra bu dosyayı çalışma kitabına ekleyebilirim.
Bu kodu başlatan belirli bir ekran için çalışacak şekilde çalışıyorum, yarısını çalıştırdım ama yanlış uygulamayı yakaladım.
Sub Screenshot()
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
Dim IE As Object
Dim hwnd As Long, IECaption As String
Dim fdate As Date
'~~> Change Status and unmerge
Range("B11").Value = "Running"
ThisWorkbook.Sheets("SAT").Range("B18:D33").UnMerge
'~~> Launch URL
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "https://www.google.co.uk"
Sleep 5000
'~~> Get the caption of IE
IECaption = "Google - Internet Explorer"
Sleep 4000
'~~> Get handle of IE
hwnd = FindWindow(vbNullString, IECaption)
If hwnd = 0 Then
MsgBox "IE Window Not found!"
Exit Sub
Else
'~~> Maximize IE
'ShowWindow hwnd, SW_SHOWMAXIMIZED
End If
DoEvents
'~~> Snapshot of window & Paste into Sheet location (Esc used to close an application popup screen)
Sleep 1000
keybd_event vk_Escape, 0, 0, 0
Sleep 2000
Application.SendKeys "(%{1068})"
Sleep 2000
Application.SendKeys ("%{F4}")
ThisWorkbook.Sheets("SAT").Range("B18").Select
ActiveSheet.Paste
'~~> Tidy up and update status
Sheets("SAT").Range("B18:D33").Merge
Range("B11").Value = "Completed: Screen Captured"
End Sub
Ancak ekranın seçilmediğini ve altta B18'e yapıştıramadığını söylemediği bir sorun alıyorum, "ActiveSheet.Paste" bölümünde hata ayıklamamı sağlıyor.
O kadar yakın ki, herhangi bir yardım gerçekten takdir edilecektir.
Şu soruya bakarak IE penceresini odağa taşımaya bakın: stackoverflow.com/questions/21580606/…
—
davidmneedham 5:17
@davidmneedham Bunun için teşekkür ederim, çoğunlukla çalışmasını sağladım, ancak yine de yapıştırma ile ilgili bazı sorunlar var. Yukarıda düzenlenen sürümüme bakın.
—
Matt
Denedin
—
davidmneedham
ActiveSheet.Paste Destination:=Worksheets("SAT").Range("B15")mi
@davidmneedham hala çalışma sınıfı sınıfının Yapıştırma yöntemi başarısız oldu ve yine de IE penceresini seçmiyordum
—
Matt