VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

獲取網路上的用戶名(轉貼)

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期五 五月 23, 2003 7:47 pm    文章主題: 獲取網路上的用戶名(轉貼) 引言回覆

獲取網路上的用戶名

2002-1-3
某本地設備通過某種方式與網路連接。通過FoxPro程式獲取本地用戶登陸網路時使用的用戶名。這時候本地設備與網路之間的連接必須是存在的。

方案1:利用WNetGetUser函數
DECLARE INTEGER WNetGetUser IN Win32API STRING lpName, STRING @lpUserName,INTEGER @lpnLength
szUserName = SPACE(80)
dwResult = 0
cchBuff = 80
dwResult = WNetGetUser("", @szUserName, @cchBuff)
?substr(szUsername,1,atc(chr(0),szUsername)-1)
?cchBuff

方案2:利用SYS(0)函數
IF allt(substr(sys(0),rat("#",sys(0))+2)) > "1" and
!empty(allt(substr(sys(0),rat("#",sys(0))+2)))
gcUserName = allt(substr(sys(0),rat("#",sys(0))+2))
ELSE
gcUserName = "NotConnected"
ENDIF
事實上,在某些內置了網路功能的PC機(如運行Windows 98的PC機)上,運行以上兩個方案都將返回正在使用本機的用戶名。
作者:蔣清野
通訊位址:清華大學23#421 (100084)
電子郵件:qyjohn@letterbox.com
回頂端
檢視會員個人資料 發送私人訊息
jakey



註冊時間: 2003-05-26
文章: 18


第 2 樓

發表發表於: 星期三 六月 18, 2003 10:09 am    文章主題: 引言回覆

請教一下:可否在VFP中做到,有多少個USER連上我這台主機.即是可以知道我的軟體內,目前有多少使用者正在線上,在區域網路上. Laughing
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 3 樓

發表發表於: 星期三 六月 18, 2003 3:46 pm    文章主題: 引言回覆

這個功能我有想過要如何做, 須在主機端執行一個監測程式, 在工作端的程式須每隔一分鐘回報說有還在執行中, 且於結束時告知主機端的監測程式. VFP是沒有這種程式, 完全是要自行開發的.
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 4 樓

發表發表於: 星期四 六月 19, 2003 11:57 am    文章主題: 引言回覆

1.或許增加一個使用者紀錄檔
你就能解決一個問題
2.NT上有一個使用者連線紀錄

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
elleryq



註冊時間: 2007-06-21
文章: 768


第 5 樓

發表發表於: 星期五 六月 20, 2003 8:50 am    文章主題: 引言回覆

Ruey 寫到:
1.或許增加一個使用者紀錄檔
你就能解決一個問題
2.NT上有一個使用者連線紀錄

這樣子還要自行去 parse 記錄檔
我比較贊同 garfield 的做法:自行開發 service 去作 monitor
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 6 樓

發表發表於: 星期日 七月 13, 2003 8:25 pm    文章主題: 引言回覆

取得用戶名稱又一範例
RetVal = 0
lpUserIDBuffer = SPACE(25) && Return buffer for user ID string
nBufferSize = 25 && Size of user ID return buffer

DECLARE INTEGER GetUserName IN Win32API AS GetName ;
STRING @lpUserIDBuffer, ;
INTEGER @nBufferSize

RetVal = GetName(@lpUserIDBuffer, @nBufferSize)
RETURN LEFT(lpUserIDBuffer,nBufferSize-1)



--------------------------------------------------------------------------------
* Get user name
sUser = GETENV("USERNAME")
kipdole

--------------------------------------------------------------------------------
The similar code retrieving both names -- the user and the computer. Though, why don't we look back at the function SYS(0):


DECLARE INTEGER GetComputerName IN "kernel32" As "GetComputerNameA";
STRING @ lpBuffer,;
INTEGER @ nSize

DECLARE INTEGER GetUserName IN "advapi32.dll" As "GetUserNameA";
STRING @ lpBuffer,;
INTEGER @ nSize

nSize = 250
lpBuffer = SPACE(nSize)

IF GetComputerNameA (@lpBuffer, @nSize) > 0
? "Computer: " + Left(lpBuffer, nSize-1)
ENDIF

nSize = 250
lpBuffer = SPACE(nSize)

IF GetUserNameA (@lpBuffer, @nSize) > 0
? "User: " + Left(lpBuffer, nSize-1)
ENDIF

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作