2015-06-18 15 views
5

Mam plik Excel, który uzyskuje dostęp do adresu URL HTTPS. Adres URL jako podstawowe uwierzytelnienie z nazwą użytkownika i hasłem.Excel VBA, otrzymuję komunikat "Zabezpieczenia systemu Windows" podczas uzyskiwania dostępu do adresu URL

To makro działa codziennie rano i wieczorem. To musi być AUTOMATYCZNE. Mam nazwę użytkownika i hasło.

Problem polega na tym, że za każdym razem, gdy uruchamiam makro, monituje mnie o "bezpieczeństwo systemu Windows". Nazwa użytkownika i hasło są już wypełnione, ponieważ dodałem to połączenie w moim poświadczeniu. "Zabezpieczenia systemu Windows" po prostu czekać, aż użytkownik kliknie enter. To makro powinno działać automatycznie i nie może czekać, aż ktoś kliknie przycisk OK.

Spróbowałem zalogować się do VBS Script, ale działa tylko wtedy, gdy użytkownik jest aktywny w sesji. Zobacz to: VBA code to pass username & password

Zrobiłem też spróbować umieścić nazwę użytkownika i hasło w adresie URL, takich jak: ...

Jak podłączyć bez "Zabezpieczenia systemu Windows" Prompt ???

Oto moi dodać funkcję połączenia:

Function GetForcast(DateStart As String, DateEnd As String) 


    Sheets("Forecast RAW").Select 
    With Sheets("Forecast RAW").QueryTables.Add(Connection:= _ 
     "URL;https://weather.dtn.com/basic/rest-3.4/obsfcst.wsgi?dataTypeMode=0001&dataType=HourlyForecast&startDate='" & DateStart & "'T00:00:00Z&EndDate='" & DateEnd & "'T00:00:00Z&stationID=KILG" _ 
     , Destination:=range("$A$1")) 
     .Name = "00Z&stationID=KILG" 
     .FieldNames = True 
     .RowNumbers = False 
     .FillAdjacentFormulas = False 
     .PreserveFormatting = True 
     .RefreshOnFileOpen = False 
     .BackgroundQuery = True 
     .RefreshStyle = xlInsertDeleteCells 
     .SavePassword = True 
     .SaveData = True 
     .AdjustColumnWidth = True 
     .RefreshPeriod = 0 
     .WebSelectionType = xlEntirePage 
     .WebFormatting = xlWebFormattingNone 
     .WebPreFormattedTextToColumns = True 
     .WebConsecutiveDelimitersAsOne = True 
     .WebSingleBlockTextImport = False 
     .WebDisableDateRecognition = False 
     .WebDisableRedirections = False 
     'Shell "WScript C:\Temp\Logon.vbs", vbNormalFocus 
     .Refresh BackgroundQuery:=False 
     End With 

End Function 
+0

Czy udało Ci się to rozwiązać? Mam taki sam problem – LucasSeveryn

+0

Czy próbowałeś użyć "http" zamiast "https" na swoim adresie URL? – aprados

+0

Co masz na myśli mówiąc: "Próbowałem zalogować się do VBS Script, ale działa tylko wtedy, gdy użytkownik jest aktywny w sesji"? Czy możesz wyjaśnić to bardziej ... – TheSilkCode

Odpowiedz

0

Jeśli nie można kontrolować poziom zabezpieczeń na komputerze zdalnym, a potem pójdę do jednego z następujących rozwiązań:

  • użytku SendKeys, aby wysłać klawisz Enter lub odpowiednik klawisza, który "kliknie" przycisk dla ciebie. Użyj licznika, aby poczekać 2-3 sekundy po uwierzytelnieniu, a następnie wyślij klawisz Enter, aby nie wysyłać klawisza Enter przed wyświetleniem okna msgbox.

  • Użyj Windows API, aby uzyskać uchwyt dla wyskakującego okienka komunikatu bezpieczeństwa, możesz wtedy sterować nim programowo.

Powiązane problemy