2017-02-12 40 views
0

我只想要一個文件,我可以雙擊並讓Windows每隔15分鐘口頭告訴我一次。 (直到我殺的過程)VBscript循環 - 每15分鐘告訴一次

我發現這個教程一個VBScript,告訴時間每隔一小時,在小時: https://www.nextofwindows.com/windows-trick-how-to-make-your-computer-to-speak-out-time-at-every-hour

我不能讓Windows調度程序使用它爲我的目的(只有雙擊並且每15分鐘運行一次纔會啓動),並且說實話,我只想讓一個15分鐘間隔的循環編入腳本本身。 (也許用Do/While環和Sleep()?)

另一個問題:

我嘗試添加一分鐘可變因此Windows將公佈會議紀要,以及:

Dim speaks, speech 
speaks = 「It is 」 & hour(time) & minute(time) 
Set speech = CreateObject(「sapi.spvoice」) 
speech.Speak speaks 

然而,它宣佈以這種方式奇怪的時間。例如,它現在是凌晨5點01分,當我運行這個腳本時,Windows說「這是五十一。」爲什麼它將5:01解釋爲五十一加?早些時候當我在4:32測試它時,它說「四百三十二。」我希望它能以正常的12小時時間表示時間。

+0

如果你想通過雙擊來啓動它並讓它每15分鐘講一次,那麼應該忘記Windows調度器。下面是一個例子,說明如何讓VBScript定期做些事情:http://stackoverflow.com/questions/25009516/vba-excel-conditional-message-box-popup-every-2-minutes-from-now。看看你鏈接的網站,語音文本實際上是'5點鐘'。語音文本不是'5:00'。所以我想SAPI不會以這種方式認出時間。你需要自己生成文本。如果你分割小時和分鐘,這將是相當微不足道的:即'5'和'53'而不是'5:53' –

+1

@ Nick.McDermaid VBScript與VBA不同,有一個'Application.OnTime' VBScript中的事件處理程序。 – Lankymart

+0

哦,你是對的。我沒有意識到這是VBA –

回答

3

這樣做5秒。因此60 x 15 = 900.

如果您希望將它們解析爲單個數字,則需要數字之間的空格。

Set speech = CreateObject("sapi.spvoice") 
Do 
    If Hour(Now) < 12 then 
     Var = Hour(Now) & " AM" 
    else 
     Var = Hour(Now) - 12 & " PM" 
    End If 

    speech.Speak Var & " and " & Minute(Now) & " minutes and " & Second(Now) & " seconds" 
    wscript.sleep 5 
Loop 
相關問題