1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| Option Explicit
Dim HLever, Hcoucher
Dim ChemSleep
'*****************************************************************
'*****************************************************************
Sub VerifSleeper()
' ************ procédure pour vérifier/créer un substitut à la fonction Sleep, ******
' ************ car wscript.sleep ne marche pas dans un HTA ******
Dim Fso : Set Fso = CreateObject("Scripting.FileSystemObject")
Dim TempFolder : Set TempFolder = Fso.GetSpecialFolder(2)
Dim TempName : TempName = "Sleeper.vbs"
ChemSleep = TempFolder&"\"&TempName
Set TempFolder = NotHing
' vérifier que le système a ou n'a pas déjà le substitut à la fonction WScript.Sleep
If Not Fso.FileExists(ChemSleep) Then
' Création du fichier Sleeper.vbs, substitut de la fonction WScript.Sleep
Dim objOutputFile : Set objOutputFile = Fso.CreateTextFile(ChemSleep, True)
objOutputFile.Write "wscript.sleep WScript.Arguments(0)"
objOutputFile.Close
Set objOutputFile = NotHing
End If
Set Fso = NotHing
' ***********************************************************************************
End Sub
' ************************ utilisation du substitut de WScript.Sleep ********************
Sub Sleep(MSecs): CreateObject("WScript.Shell").Run ChemSleep &" "& MSecs,1,True: End Sub
' ***************************************************************************************
'------------------------------------------------------------------------------------------------------------------
Sub RecupeHoraires()
Dim ie, DebUrl, FinUrl, SrcUrl, doc
DebUrl = "http://calendriersolaire.com/fr/paris"
FinUrl = ""
SrcUrl = DebUrl & FinUrl
on error resume next
Set ie = CreateObject("internetexplorer.application")
ie.Navigate SrcUrl,2
If Err Then
MsgBox "Erreur N°" & Err.Number & vbNewLine & Err.Description: Err.Clear: Exit Sub
End If
Err.Clear
Do While ie.Busy: Sleep 200: Loop ' <----- Appel du supstitut de WScript..Sleep pour le HTA
ie.visible = true
Set doc = ie.Document
HLever = RecupHeure(Right(doc.getElementsByTagName("p").item(3).innertext,10))'heure du lever du soleil
Hcoucher = RecupHeure(Right(doc.getElementsByTagName("p").item(4).innertext,10))'heure du coucher du soleil
ie.quit: Set doc = Nothing: Set ie = Nothing
End Sub
Function RecupHeure(dataH)
Dim H, M, S
RecupHeure = Trim(dataH)
RecupHeure = Left(RecupHeure,len(RecupHeure)-3)
If Right(dataH, 2) = "PM" Then
H = Hour(RecupHeure) + 12
Else
H = Hour(RecupHeure)
End If
M = Minute(RecupHeure)
S = Second(RecupHeure)
RecupHeure = H & " heure " & M & " minute " & S & " seconde"
End Function
VerifSleeper 'pour avoir Sleep dans un HTA
RecupeHoraires
msgbox "Le soleil se leve à : " & HLever & vbnewline & vbnewline & "Le soleil se couche à : " & Hcoucher
Dim Parler, TexteAlire
TexteAlire = "Le soleil se leve à : " & HLever & ". Le soleil se couche à : " & Hcoucher
On Error Resume Next
Set Parler = CreateObject("SAPI.SpVoice").Speak(TexteAlire)
If Err Then Err.Clear |
Partager