【Delphi】【問題】使用IdTime 時, 若網路未連線, 會出現"Socket Error # |
答題得分者是:hagar
|
TourNet
一般會員 發表:6 回覆:9 積分:3 註冊:2003-05-06 發送簡訊給我 |
請教各位大大, 小弟剛學Indy的東東,以下是使用idTime 取得標準時間並且更改本機電腦的時間, 但是若本機電腦未連線上網或是無法連接Host 時, 會出現"Socket Error #10061"的錯誤, 要如何判斷連接host 正常時才去取得標準時間, 以避免無法連接時所跳出的錯誤訊息... 謝謝各位大大!!!! Try
idTime := TidTime.Create (NIL);
Try
idTime.Host := 'time.nist.gov' ;
DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime);
SetSystemTime(asystemtime);
Except
end ;
Finally
Try
idTime.Disconnect ;
idTime.Free;
Except
end ;
end ;
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
begin idTime := TidTime.Create (NIL); try Try idTime.Host := 'time.nist.gov' ; idTime.Connect; if idTime.Connected then begin DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime); SetSystemTime(asystemtime); end; Except end ; Finally idTime.Disconnect ; idTime.Free; end ; end;另外, 雖然使用了 try .. except, 但在 IDE 下若連不上仍會顯示預訂的錯誤訊息是正常的 可在 Tools -> Debug Options -> Language Exceptions 頁中 的 Stop on Delphi Exceptions 的核取方塊取消即可. --- Everything I say is a lie. @>--- |
TourNet
一般會員 發表:6 回覆:9 積分:3 註冊:2003-05-06 發送簡訊給我 |
引言:謝謝hagar 我試過上面你加的方法, 可是執行到 DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime); 這一行時, 會出現 already connected 的錯誤 並且這一行也沒有執行, 所以SetSystemTime 也沒用了begin idTime := TidTime.Create (NIL); try Try idTime.Host := 'time.nist.gov' ; idTime.Connect; if idTime.Connected then begin DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime); SetSystemTime(asystemtime); end; Except end ; Finally idTime.Disconnect ; idTime.Free; end ; end;另外, 雖然使用了 try .. except, 但在 IDE 下若連不上仍會顯示預訂的錯誤訊息是正常的 可在 Tools -> Debug Options -> Language Exceptions 頁中 的 Stop on Delphi Exceptions 的核取方塊取消即可. --- Everything I say is a lie. @>--- |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |