Страницы: 1
RSS
Как сохранить/открыть скачанный файл в Internet Explorer, Вы хотите открыть или сохранить файл?
 
Здравствуйте! При скачивании файла из Internet Explorer он выдает диалоговое окно "Вы хотите Открыть/Сохранить/Отмена". Как мне через код макроса:
1) Нажать кнопку "открыть"
2) Нажать кнопку "Сохранить" (чтобы он сохранял с определенным названием и в определенную папку на компьютере)

Буду благодарен, если поможете. Я попытался сам сделать, но что то выходит у меня какая то дичь, что даже прикладывать не хочу свой код.
Заранее огромное спасибо!!! Если поможете, то вы будете моим героем!
 
Я нашел Следующий код в интернете как решение. Но Застрял на h = FindWindow ("#32770", "Internet Explorer") (На этой строке выдает ошибку Sub or Function not defined). Помогите пожалуйста!
'wait for save as window to appear
Код
Dim o As IUIAutomation
Dim h As LongPtr
Set o = New CUIAutomation
h = 0
Do Until h > 0
    'h = ie.hWnd
    h = FindWindow("#32770", "Internet Explorer")
Loop

'find and click save as button
Dim e As IUIAutomationElement
Dim iCnd As IUIAutomationCondition
Dim Button As IUIAutomationElement
Set e = o.ElementFromHandle(ByVal h)
Set Button = Nothing
Do Until Not Button Is Nothing
    Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Save as")
    Set Button = e.FindFirst(TreeScope_Subtree, iCnd)
Loop

Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke
Изменено: Anton_Kozlov - 22.01.2021 23:44:12
 
И так к продолжению решения моей проблемы. Код выше не сработал, компьютер постоянно ругается на другие проблемы уже. Нашел другое решение через имитацию клика мыши. Вот код вдруг кому-нибудь он пригодится.
Код
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10

Private Sub SingleClick()
  SetCursorPos 100, 100 'x and y position
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Private Sub DoubleClick()
  'Double click as a quick series of two clicks
  SetCursorPos 100, 100 'x and y position
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Private Sub RightClick()
  'Right click
  SetCursorPos 200, 200 'x and y position
  mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0
  mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
End Sub
 
Вот это всё вообще не нужно
Чтобы скачать файл, - не нужно использовать браузер, не нужно нажимать программно кнопки
Просто 1-2 строки кода
(но поскольку вы не озвучили, что и для чего хотите сделать, что откуда скачать, а изначально пошли самым сложным путём, потому простого решения вам и не предложили)
 
Игорь, вы правы. Когда через некоторое время перечитываю свои запросы понимаю, что по сложному пути иду. У меня с тем кодом возникла проблема и я не знаю в чем причина макрос просто перестал работать на моменте клики мыши, хотя до этого работал исправно. Я уже злюсь! Помогите пожалуйста с кодом про который вы говорили. Как я могу легко скачать файл из интернета?  
 
Цитата
Anton_Kozlov написал:
легко скачать файл из интернета?
легко это не бывает, т.к. сначала надо выудить корректную ссылку на этот файл. А уж скачать без проблем: Как скачать файл из интернета по ссылке
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Универсальная альтернатива - Curl.
Владимир
 
Дмитрий(The_Prist) Щербаков, Тут проблема, я не знаю что это за ссылка. Я с яндекса в личном кабинете скачиваю excel файл через кнопку. Этот файл постоянно обновляется и там каждый день новые данные. Скидываю картинку.
Проблема в том что код кнопки он без ссылки. там только стили и html код без ссылки. И я не нашел другого решения кроме того чтобы топорно открыть Internet explorer по ссылке где находится та кнопка и нажать на кнопку через его название. А конечная проблема это уведомление и нажать на кнопку открыть и я додумался только через имитацию мыши.

Но вот незадача буквально я позавчера сделал этот код и уже радовался до потолка т к решал эту проблему дня 3. А сегодня он без какой либо причины перестал работать. Я уже в отчаянии (
Страницы: 1
Наверх