|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
whh
註冊時間: 2010-04-16 文章: 166
第 1 樓
|
發表於: 星期四 四月 21, 2011 3:11 pm 文章主題: VFP如何去判斷某個IP是否能ping通? |
|
|
因為有時候會要內部丟檔案
每次都要做一些重附動作好麻煩
開始→輸入IP→輸入帳號密碼→才能開啟C:...等
有寫一段程式如下
&& 自動輸入帳號密碼
C_IP = ALLTRIM(THISFORM.TEXT1.VALUE)
IF EMPTY(C_IP)
RETURN ""
ENDIF
C_STR = 'net use \\' + C_IP + '\c$ 密碼 /user:"mynet\帳號"'
! &C_STR
&& 開啟資料夾
C_STR ='EXPLORER.EXE \\' + C_IP + '\c$'
! &C_STR
可是有一個問題是如果,IP打錯或是那台電腦沒開機
就要等等等等......
是否有可以類似CMD ping的功能
ping不到就Ctrl+C (不用等他好幾秒等回傳連不到)
有連到在在執行我的程式 |
|
回頂端 |
|
|
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 2 樓
|
發表於: 星期四 四月 21, 2011 3:53 pm 文章主題: |
|
|
寫段小程式去解析ARP -A出來的結果
看看對方電腦IP有無在其中
用PING的結果會因為各版本OS出來的結果會稍有不同 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 3 樓
|
發表於: 星期五 四月 22, 2011 3:19 pm 文章主題: |
|
|
MyDll.dll 中有提供 ping 的函數
去搜尋看看吧 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4215 來自: Taipei,Taiwan
第 4 樓
|
發表於: 星期五 四月 22, 2011 3:35 pm 文章主題: |
|
|
如果你的問題是 "PING 下去要等一段時間才知道有沒有PING到,想要縮短時間或不需要時間",
那好像就無解. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
zlabsoft
註冊時間: 2003-10-18 文章: 22
第 5 樓
|
發表於: 星期六 四月 30, 2011 12:07 pm 文章主題: |
|
|
可参考以下程式:
LPARAMETERS lcServer, lnPort, lcDebug
LOCAL lnState, loPing, lnLast
*
* Ping utility Ver 1.4
*
*** Input :
*
* lcServer - Host name to ping
* lnPort - Port number to ping
* lcDebug - .T.: Display status message
*
*** Output :
*
* .T. - Ping successfully
* .F. - Ping Fail
*
* Description : Ping a host for specify port availability
* Require Microsoft Winsock ActiveX version 6.0 (SP4)
* mswinsck.ocx - 109,248 bytes
* locate at C:\WINDOWS\SYSTEM32
*
* Example: ? PING('jassing.com',80) would check jassing.com to be sure it's running a web server
*
* 24/05/2005 - Error handling when winsock is not proper installed
* 05/08/2004 - Ping delay increase to 1/10 sec instead of 1/20 sec
* 13/04/2002 - Last status message show 2 seconds before leave when debug is 'ON'
* 12/04/2002 - Minor code updated
* 11/04/2002 - Code modify from original
*
* By: josh@jassing.com modified by Tommy Tsang
*
#DEFINE sckClosed 0
#DEFINE sckOpen 1
#DEFINE sckListening 2
#DEFINE sckConnectionPending 3
#DEFINE sckResolvingHost 4
#DEFINE sckHostResolved 5
#DEFINE sckConnecting 6
#DEFINE sckConnected 7
#DEFINE sckClosing 8
#DEFINE sckError 9
loPing = CREATEOBJECT('mswinsock.winsock')
IF VARTYPE(loPing) = 'O'
WITH loPing
.remoteport = lnPort
.remotehost = lcServer
.CONNECT()
lnLast = -1
DO WHILE .state < sckConnected
IF lnLast <> .state
PINGSTATE(.state, lcDebug)
lnLast = .state
ELSE
*
* Wait a little while to release the loading of system
*
INKEY(.1) && Delay 1/10 second
ENDIF
ENDDO
PINGSTATE(.state, lcDebug)
lnState = .state
.CLOSE()
PINGSTATE(.state, lcDebug, 2)
ENDWITH
ENDIF
RETURN lnState <> sckError
PROCEDURE PINGSTATE
LPARAMETERS lnState, lcDebug, lnTimeOut
LOCAL lcState
IF lcDebug
DO CASE
CASE lnState = sckClosed
lcState = 'Closed'
CASE lnState = sckOpen
lcState = 'Open'
CASE lnState = sckListening
lcState = 'Listening'
CASE lnState = sckConnectionPending
lcState = 'Waiting'
CASE lnState = sckResolvingHost
lcState = 'Resolving'
CASE lnState = sckConnecting
lcState = 'Connecting'
CASE lnState = sckConnected
lcState = 'Connected'
CASE lnState = sckClosing
lcState = 'Closing'
CASE lnState = sckError
lcState = 'Error'
OTHERWISE
lcState = 'Unknown'
ENDCASE
IF VARTYPE(lnTimeOut) = 'N'
WWAIT('Ping State: ' + lcState, .F., lnTimeOut)
ELSE
WWAIT('Ping State: ' + lcState)
ENDIF
ENDIF
RETURN lcState |
|
回頂端 |
|
|
andywilliams
註冊時間: 2004-10-23 文章: 111
第 6 樓
|
發表於: 星期日 五月 01, 2011 11:26 am 文章主題: |
|
|
owsh=CREATEOBJECT("wscript.shell")
owsh.RUN(C_STR ,0,.T.)
IF !DIRECTORY('\\'+C_IP +'\c$')
MESSAGEBOX("請稍後再試或檢查網路線或是那台電腦沒開機", 0+16+256, "連線失敗")
*quit
return
ENDIF |
|
回頂端 |
|
|
whh
註冊時間: 2010-04-16 文章: 166
第 7 樓
|
發表於: 星期三 五月 11, 2011 9:06 am 文章主題: |
|
|
andywilliams 寫到: | owsh=CREATEOBJECT("wscript.shell")
owsh.RUN(C_STR ,0,.T.)
IF !DIRECTORY('\\'+C_IP +'\c$')
MESSAGEBOX("請稍後再試或檢查網路線或是那台電腦沒開機", 0+16+256, "連線失敗")
*quit
return
ENDIF |
剛剛搜尋了一下
測試以下兩行就出現
owsh=createobject("wscript.shell")&&調用WSH
owsh.run("command.com /c ping 192.170.170.170 -w 2 >ftp.txt",0,.t.)&&執行
OLE錯誤程式碼 0x8002802b: Element not found 是我沒有註冊這個東西嗎><"?
要去哪邊註冊,使用版本是VFP 6.0 |
|
回頂端 |
|
|
whh
註冊時間: 2010-04-16 文章: 166
第 8 樓
|
發表於: 星期三 五月 11, 2011 9:15 am 文章主題: |
|
|
剛剛搜尋了一下
測試以下兩行就出現
owsh=createobject("wscript.shell")&&調用WSH
owsh.run("command.com /c ping 192.170.170.170 -w 2 >ftp.txt",0,.t.)&&執行
OLE錯誤程式碼 0x8002802b: Element not found 是我沒有註冊這個東西嗎><"?
要去哪邊註冊,使用版本是VFP 6.0[/quote]
找到方法了 參考這篇的^^
http://chiahu.com/blog/?p=461 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|