|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
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連上我這台主機.即是可以知道我的軟體內,目前有多少使用者正在線上,在區域網路上. |
|
回頂端 |
|
|
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才會更有趣~
############################# |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|