[.NET] [分享]主控台應用程式-鬧鐘

看板Visual_Basic作者 (山崎翔太)時間13年前 (2012/10/08 23:05), 編輯推噓3(307)
留言10則, 4人參與, 最新討論串1/2 (看更多)
練習寫主控台的時候寫的一個小程式 包含註解:D 原理蠻簡單的... Module Module1 'SLEEP_API 防止BEEP來不及反應 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Dim time1 As String Dim yoba As Boolean Sub Main() On Error GoTo ers Console.Title = "山崎小鬧鐘" For i = 1 To 3 Step 1 Console.Beep(600, 100) Sleep(200) Next i Console.WriteLine("如果剛才沒有聽到電腦叫三聲 表示您的電腦不支援此鬧鐘。") Console.WriteLine("程式設計:山崎翔太 (C)Copyright 山崎翔太-2012") '問到確定時間是正確的才肯罷休 Do Console.WriteLine("請輸入響鈴時間: 格式 yyyyMMddHHmm") Console.WriteLine("如 2012年10月4日 晚上8點50分就輸入 201210042050") Console.WriteLine("例如::現在時間就是= " & vbCrLf & Mid(Format(Now, "yyyyMMddHHmm"), 1, 4) & "年" _ & Mid(Format(Now, "yyyyMMddHHmm"), 5, 2) & "月" _ & Mid(Format(Now, "yyyyMMddHHmm"), 7, 2) & "日 " & _ Mid(Format(Now, "yyyyMMddHHmm"), 9, 2) & "時" & Mid(Format(Now, "yyyyMMddHHmm"), 11, 2) _ & "分" & vbCrLf & "那您就輸入::" & Format(Now, "yyyyMMddHHmm")) time1 = Val(Console.ReadLine) Console.WriteLine("您確定時間是 " & Mid(time1, 1, 4) & "年" & Mid(time1, 5, 2) & "月" _ & Mid(time1, 7, 2) & "日 " & Mid(time1, 9, 2) & "時" & Mid(time1, 11, 2) & "分" _ & " ? 如果確定請回1 要修正請回0") Loop Until Console.ReadLine() = 1 Console.WriteLine("鬧鈴已設定完成並且已啟動" & vbCrLf & "響鈴時間 = " & Mid(time1, 1, 4) & "年" _ & Mid(time1, 5, 2) & "月" _ & Mid(time1, 7, 2) & "日," & Mid(time1, 9, 2) & "時" & _ Mid(time1, 11, 2) & "分") '主要設定的時間到了 就開始叫 Do If Val(time1) = Format(Now, "yyyyMMddHHmm") Then Console.WriteLine("響鈴已啟動") Do While Val(time1) = Format(Now, "yyyyMMddHHmm") Console.Beep(600, 100) Sleep(200) Loop yoba = True End If Loop Until yoba = True Console.WriteLine("響鈴已結束,請按任意鍵結束本應用程式") Console.ReadKey() '以下是應用程式出錯時的處理方法 Exit Sub ers: Console.Beep(600, 100) Console.WriteLine("應用程式發生錯誤" & vbCrLf & "請按任意鍵結束應用程式") Console.ReadKey() End End Sub End Module 以上... 我寫的就這樣= = 原本想加入貪睡功能 但是我忘記時間的加減函數了>//< 所以他只會叫一次...=.= -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.2.7

10/09 00:26, , 1F
既然是.net裡 本身就可以找到sleep這東西
10/09 00:26, 1F

10/09 00:27, , 2F
另外在vb.net中使用 win32 API時 這個sleep宣告要注意
10/09 00:27, 2F

10/09 00:28, , 3F
在我vb2010下去測試 就會有問題 sleep的dwMilliseconds理
10/09 00:28, 3F

10/09 00:28, , 4F
應為int32 而非 long (64bit)
10/09 00:28, 4F

10/09 00:29, , 5F
雖然程式裡有不少點都還能做個改善 還是支持你的分享
10/09 00:29, 5F

10/09 00:31, , 6F
幫貼程式碼: http://ppt.cc/BpPE
10/09 00:31, 6F

10/09 00:34, , 7F
... 修正一下 有UInt32可以用
10/09 00:34, 7F

10/09 10:16, , 8F
這東程式,用表單作介面,用TIMER計時,才比較正確
10/09 10:16, 8F

10/09 15:35, , 9F
怎麼覺得這語法還停在VB6時代 .net其實有很多更簡潔寫法
10/09 15:35, 9F

10/09 18:28, , 10F
因為我從VB6跳2008-.-有些指令還不清楚...
10/09 18:28, 10F
文章代碼(AID): #1GSklMHl (Visual_Basic)
文章代碼(AID): #1GSklMHl (Visual_Basic)