Private Const sw_restore = 9
#If VBA7 Then
Private Declare PtrSafe Function showwindow Lib "user32" (ByVal hwnd As Long, ByVal ncmdshow As Long) As Long
Private Declare PtrSafe Function isiconic Lib "user32.dll" (ByVal hwnd As Long) As Long
#Else
Private Declare Function showwindow Lib "user32" (ByVal hwnd As Long, ByVal ncmdshow As Long) As Long
Private Declare Function isiconic Lib "user32.dll" (ByVal hwnd As Long) As Long
#End If
Sub openProgram()
Dim strDirectory As String
Dim pID As Variant, sh As Variant
strDirectory = "H:\LocalStorage\Program.exe"
Set sh = CreateObject("shell.application")
For Each w In sh.Windows
If w.document.folder.self.Path = strDirectory Then
If CBool(isiconic(w.hwnd)) Then
w.Visible = False
w.Visible = True
End If
Exit Sub
End If
Next
pID = Shell("H:\LocalStorage\Program.exe", vbNormalFocus)
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{Right}", True
waittime 3000
Application.SendKeys "{%}", True
End Sub
Function waittime(ByVal milliseconds As Double)
Application.Wait (Now() + milliseconds / 24 / 60 / 60 / 1000)
End Function
Мне нужен ключ {%} или {END}, чтобы зарегистрироваться в программе, чтобы перейти к следующему ряду параметров. Чтобы затем go вправо дважды, нажмите клавишу ввода в отчетах. Затем вниз пару раз, чтобы создать новый отчет. Затем продолжайте использовать отрывочные и ненадежные ключи, пока я не смогу автоматизировать каждый отчет, который мне нужно запускать каждую неделю. Сэкономить время Я бы предпочел использовать что-то более надежное, чем sendkeys. Есть ли другие жизнеспособные варианты? Спасибо