史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2009-07-07, 01:08 PM   #1
chung1206 帥哥
註冊會員
 
chung1206 的頭像
榮譽勳章
UID - 322141
在線等級: 級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時
註冊日期: 2009-04-14
住址: Kaohsiung
文章: 192
精華: 0
現金: 121 金幣
資產: 521 金幣
預設 疑問 - VB6.0從工作列再跳出程式



--------------------
閱讀本主題的最佳解答
--------------------


各位先進們好,請教在VB6.0裡,我執行我的程式,我將此程式縮小到工作列,我希望5分鐘後他能自動再跳出來桌面上,Timer我會設定,但跳出來這個就不會了,謝謝。
chung1206 目前離線  
送花文章: 25, 收花文章: 108 篇, 收花: 261 次
回覆時引用此帖
舊 2009-07-07, 01:55 PM   #2 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時
註冊日期: 2002-12-07
文章: 13276
精華: 0
現金: 26303 金幣
資產: 3024113 金幣
預設

Me.WindowState = 0
mini 目前離線  
送花文章: 2003, 收花文章: 7966 篇, 收花: 26761 次
回覆時引用此帖
向 mini 送花的會員:
chung1206 (2009-07-07)
感謝您發表一篇好文章
舊 2009-07-07, 03:10 PM   #3 (permalink)
註冊會員
 
chung1206 的頭像
榮譽勳章
UID - 322141
在線等級: 級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時
註冊日期: 2009-04-14
住址: Kaohsiung
文章: 192
精華: 0
現金: 121 金幣
資產: 521 金幣
預設

引用:
作者: mini 查看文章
Me.WindowState = 0
感謝大大,問題解決了,不知這種小問題是要靠經驗累積而成的還是有書
本有介紹?如果有可否介紹一下,謝謝。

另外不知道要如何突破五分鐘才偵測一次,因為我試了最多一分五秒=65535
有找到相關解決方式,但我看不懂,可否請大大再次指教,謝謝。

Private Sub Timer_Timer
Dim NowSecond As Long
NowSecond = (Date - StartDate) * 86400 + Timer
If NowSecond - StartSecond >= 10800 Then
MsgBox "三小時到"
StartDate = Date
StartSecond = Timer
End If
End Sub
chung1206 目前離線  
送花文章: 25, 收花文章: 108 篇, 收花: 261 次
回覆時引用此帖
舊 2009-07-08, 08:45 PM   #4 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時
註冊日期: 2002-12-07
文章: 13276
精華: 0
現金: 26303 金幣
資產: 3024113 金幣
預設

可以說算是 經驗吧
以 google為主 MSDN Library Visual Studio為輔


一天有多少秒
60*60*24=86400

Timer 函數
傳回一 Single,其內容為從前一個午夜算起到現在所經過的秒數

如果 StartDate是今年的一月一號
所以 (Date- StartDate) * 86400 + Timer
就可以算出現在是今年的第幾秒
mini 目前離線  
送花文章: 2003, 收花文章: 7966 篇, 收花: 26761 次
回覆時引用此帖
舊 2009-07-09, 09:30 AM   #5 (permalink)
註冊會員
 
chung1206 的頭像
榮譽勳章
UID - 322141
在線等級: 級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時
註冊日期: 2009-04-14
住址: Kaohsiung
文章: 192
精華: 0
現金: 121 金幣
資產: 521 金幣
預設

引用:
作者: mini 查看文章
可以說算是 經驗吧
以 google為主 MSDN Library Visual Studio為輔


一天有多少秒
60*60*24=86400

Timer 函數
傳回一 Single,其內容為從前一個午夜算起到現在所經過的秒數

如果 StartDate是今年的一月一號
所以 (Date- StartDate) * 86400 + Timer
就可以算出現在是今年的第幾秒
感謝大大,我將10800改為120,我想二分鐘偵測一次,但測試過了
二分鐘後連動都沒動,不知問題出在那,程式碼如下:

Private Sub Timer1_Timer()
Dim NowSecond As Long
NowSecond = (Date - StartDate) * 86400 + Timer
If NowSecond - StartSecond >= 120 Then
End If
StartDate = Date
StartSecond = Timer
Call Command1_Click
Me.WindowState = 0
End Sub

謝謝。
chung1206 目前離線  
送花文章: 25, 收花文章: 108 篇, 收花: 261 次
回覆時引用此帖
舊 2009-07-09, 12:02 PM   #6 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時
註冊日期: 2002-12-07
文章: 13276
精華: 0
現金: 26303 金幣
資產: 3024113 金幣
預設

引用:
作者: chung1206 查看文章
感謝大大,我將10800改為120,我想二分鐘偵測一次,但測試過了
二分鐘後連動都沒動,不知問題出在那,程式碼如下:

Private Sub Timer1_Timer()
Dim NowSecond As Long
NowSecond = (Date - StartDate) * 86400 + Timer
If NowSecond - StartSecond >= 120 Then
End If
StartDate = Date
StartSecond = Timer
Call Command1_Click
Me.WindowState = 0
End Sub

謝謝。
IF 區塊裡沒有什麼程式碼
當然就什麼都不會做
你可以放個 msgbox "兩分鐘到了"
看看有沒有反應

還有 Timer1.Interval屬性 要給他一個小於 1000的值(500應該就可以了)

此帖於 2009-07-09 01:37 PM 被 mini 編輯.
mini 目前離線  
送花文章: 2003, 收花文章: 7966 篇, 收花: 26761 次
回覆時引用此帖
舊 2009-07-09, 12:35 PM   #7 (permalink)
註冊會員
 
chung1206 的頭像
榮譽勳章
UID - 322141
在線等級: 級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時
註冊日期: 2009-04-14
住址: Kaohsiung
文章: 192
精華: 0
現金: 121 金幣
資產: 521 金幣
預設

引用:
作者: mini 查看文章
IF 區塊裡沒有什麼程式碼
當然就什麼都不會做
你可以放個 msgbox "兩分鐘到了"
看看有沒有反應
我改成這樣如下:

Private Sub Timer1_Timer()
Dim NowSecond As Long
NowSecond = (Date - StartDate) * 86400 + Timer
If NowSecond - StartSecond >= 120 Then
Call Command1_Click
Me.WindowState = 0
End If
StartDate = Date
StartSecond = Timer
End Sub

但仍然沒反應=.=
chung1206 目前離線  
送花文章: 25, 收花文章: 108 篇, 收花: 261 次
回覆時引用此帖
舊 2009-07-09, 09:29 PM   #8 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時
註冊日期: 2002-12-07
文章: 13276
精華: 0
現金: 26303 金幣
資產: 3024113 金幣
預設

引用:
作者: chung1206 查看文章
我改成這樣如下:

Private Sub Timer1_Timer()
Dim NowSecond As Long
NowSecond = (Date - StartDate) * 86400 + Timer
If NowSecond - StartSecond >= 120 Then
Call Command1_Click
Me.WindowState = 0
End If
StartDate = Date
StartSecond = Timer
End Sub

但仍然沒反應=.=
發現程式有矛盾
改成
語法:
Dim StartDate As Date
Dim StartSecond As Long

Private Sub Form_Load()

    StartDate = Date
    StartSecond = Timer
    Timer1.Interval = 500

End Sub

Private Sub Timer1_Timer()
Dim NowSecond As Long

    NowSecond = (Date - StartDate) * 86400 + Timer
    If NowSecond - StartSecond >= 120 Then
'        MsgBox "2分鐘了"
        Me.WindowState = 0
        
        StartDate = Date
        StartSecond = Timer
    End If
    
End Sub
mini 目前離線  
送花文章: 2003, 收花文章: 7966 篇, 收花: 26761 次
回覆時引用此帖
向 mini 送花的會員:
chung1206 (2009-07-10)
感謝您發表一篇好文章
舊 2009-07-10, 09:52 AM   #9 (permalink)
註冊會員
 
chung1206 的頭像
榮譽勳章
UID - 322141
在線等級: 級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時級別:9 | 在線時長:134小時 | 升級還需:6小時
註冊日期: 2009-04-14
住址: Kaohsiung
文章: 192
精華: 0
現金: 121 金幣
資產: 521 金幣
預設

引用:
作者: mini 查看文章
發現程式有矛盾
改成
語法:
Dim StartDate As Date
Dim StartSecond As Long

Private Sub Form_Load()

    StartDate = Date
    StartSecond = Timer
    Timer1.Interval = 500

End Sub

Private Sub Timer1_Timer()
Dim NowSecond As Long

    NowSecond = (Date - StartDate) * 86400 + Timer
    If NowSecond - StartSecond >= 120 Then
'        MsgBox "2分鐘了"
        Me.WindowState = 0
        
        StartDate = Date
        StartSecond = Timer
    End If
    
End Sub
感謝大大,但不知道為何Timer1.Interval = 500
是500呢?
chung1206 目前離線  
送花文章: 25, 收花文章: 108 篇, 收花: 261 次
回覆時引用此帖
舊 2009-07-10, 02:35 PM   #10 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時級別:96 | 在線時長:9729小時 | 升級還需:68小時
註冊日期: 2002-12-07
文章: 13276
精華: 0
現金: 26303 金幣
資產: 3024113 金幣
預設



引用:
作者: chung1206 查看文章
感謝大大,但不知道為何Timer1.Interval = 500
是500呢?
因為你的最小計時單位是 1000也就是 一秒
但 VB的Timer其實精度不怎麼好 (也就是雖然設定1000ms執行一次,其實會是1050ms也不一定)
再加上
執行程式碼也會花費一些時間
所以
如果以效能(不要執行太多次無意義的監察,比如如果以每0.1秒檢查一次的話,說真的就真的太過火了)

小於0.5秒的誤差
個人是認為以 0.5秒檢查一次為最佳

其實個人也沒有驗證過啦
畢竟每個人的程式寫的不一樣
沒有所謂的標準答案
mini 目前離線  
送花文章: 2003, 收花文章: 7966 篇, 收花: 26761 次
回覆時引用此帖
發文 回覆


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
電腦中毒後--工作列音量控制程式被刪掉-找不到 lisansu3 一般電腦疑難討論區 3 2006-04-30 11:39 AM
如何解決系統右邊程式佔用過多的工作列空間 psac 作業系統操作技術文件 0 2004-09-15 01:39 AM
我的Win98se一 直跳出程式發生錯誤即將關閉 ufoon 一般電腦疑難討論區 2 2003-09-25 10:27 PM
工作列上沒有圖示??沒有灌控制音量程式?? jane girl 軟體應用問題討論區 20 2003-05-27 12:26 PM
win2k開機時,如何把工作列一些常駐程式取消?? 馬英九 軟體應用問題討論區 0 2003-04-23 09:33 PM


所有時間均為台北時間。現在的時間是 06:29 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1