請問要如何查詢 指定ip(或遠端電腦名稱) 的作業系統型態? |
尚未結案
|
rambo287
一般會員 發表:17 回覆:4 積分:4 註冊:2002-06-07 發送簡訊給我 |
|
leo2568
中階會員 發表:54 回覆:124 積分:70 註冊:2003-09-21 發送簡訊給我 |
引言: 要怎樣才能夠查詢 指定ip(或遠端電腦名稱) 的作業系統型態? 不是在local 端,我想寫一個function , 傳一個ip address 或 電腦名稱就可以查出指定的遠端電腦是使用何種作業系統? 請問這可以做得到嗎? 還是需用WMI 來做呢? 可以用 WNetGetUser() 這個函數來得到Windows用戶名稱; 函數原型: DWORD WNetGetUser(LPCTSTR lpName, LPTSTR lpUserName, LPDWORD lpnLength); 參數: lpName 指定已連接資源的遠端名稱或本地名稱 lpUserName 用於存放用戶名的一個字串緩衝區 lpnLength lpUserName緩衝區的長度。如果緩衝區不夠大,則自動設為需要的緩衝區長度 返回值: 如果函數成功,返回值是NO_ERROR,否則返回一個錯誤代碼,其含義如下: ERROR_NOT_CONNECTED lpName參數指定的不是一個連接資源名稱 ERROR_MORE_DATA 多個可用的併發調用 ERROR_NO_NETWORK 沒有網路 ERROR_EXTENDED_ERROR 網路細節錯誤 ERROR_NO_NET_OR_BAD_PATH 沒有一個連接名稱 實例: // 取得用戶名稱 function GetUserName: AnsiString; var lpName: PAnsiChar; lpUserName: PAnsiChar; lpnLength: DWORD; begin Result := ''; lpnLength := 0; WNetGetUser(nil, nil, lpnLength); // 取得字串所需的長度 if lpnLength > 0 then begin GetMem(lpUserName, lpnLength); if WNetGetUser(lpName, lpUserName, lpnLength) = NO_ERROR then Result := lpUserName; FreeMem(lpUserName, lpnLength); end; end; { GetUserName }╭╧╮╭╧╮╭╧╮╭╧╮╭╮☆ ║聖│║誕│║快│║樂│ ╰☆╮ ╘∞╛╘∞╛╘∞╛╘∞╛☆╰☆ . ﹒☆‧☆∴.:☆﹒‧∴ ☆..... |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |