全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1151
推到 Plurk!
推到 Facebook!

如何抓取PC的使用者名稱

答題得分者是:st33chen
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-06 15:24:00 IP:122.116.xxx.xxx 訂閱
小弟想寫在使用者按下BUTTON之後

會寫入 此PC的使用者名稱到 LABEL 上

請問該怎麼去執行呢??



[code delphi]
LABEL1.CAPTION := '使用者名稱 ' ???????????
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-06 16:06:18 IP:122.116.xxx.xxx 未訂閱
哈哈
這一題我正好就在我的 sql formatter 專案中用過, 只是忘了從哪裡搜到的.

// 取得使用者名
Size:=250;
GetMem(StrUserName, Size);
GetUserName(StrUserName, Size);
os_username := StrPas(StrUserName);
FreeMem(StrUserName);

參考一下.

===================引 用 lovemari 文 章===================
小弟想寫在使用者按下BUTTON之後

會寫入 此PC的使用者名稱到 LABEL 上

請問該怎麼去執行呢??



[code delphi]
LABEL1.CAPTION := '使用者名稱 ' ???????????
[/code]
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-07 08:18:47 IP:122.116.xxx.xxx 訂閱
請問大大 我該怎麼套用在 label上呢?
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-07 08:49:41 IP:122.116.xxx.xxx 訂閱
大大 我這樣寫之後

他顯示第三段有錯誤耶

[Error] ALL.pas(123): Too many actual parameters //太多參數??


[code delphi]
Function GetUserName: string;
var
User: PChar;
Size: DWord;
begin
Size := 250;
GetMem(User, Size);
GetUserName(User, Size); <----------- 錯誤
Result := Trim(StrPas(User));
FreeMem(User);
end;
[/code]


然而我把 GetUserName(User, Size); 關掉 之後 是可以執行

但是執行結果都是亂碼
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-07 08:52:24, 註解 無‧
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-07 09:21:51 IP:122.116.xxx.xxx 未訂閱
1. GetUserName 是 windows 的 function, 直接用就好, 不必自己再定義.
2. 重 post 程式段
// 取得使用者名
Size:=250;
GetMem(StrUserName, Size);
GetUserName(StrUserName, Size);
// os_username := StrPas(StrUserName);
LABEL1.CAPTION := '使用者名稱 ' StrPas(StrUserName); // 大哥, 您也真是的, 連顯示在 label1 上也要我老人家動手?

FreeMem(StrUserName);

參考一下.
  1. ===================引 用 lovemari 文 章===================
    大大 我這樣寫之後

    他顯示第三段有錯誤耶

    [Error] ALL.pas(123): Too many actual parameters //太多參數??


    [code delphi]
    Function GetUserName: string;
    var
    User: PChar;
    Size: DWord;
    begin
    Size := 250;
    GetMem(User, Size);
    GetUserName(User, Size); <----------- 錯誤
    Result := Trim(StrPas(User));
    FreeMem(User);
    end;
    [/code]


    然而我把 GetUserName(User, Size); 關掉 之後 是可以執行

    但是執行結果都是亂碼
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-07 11:12:04 IP:122.116.xxx.xxx 訂閱
解好了^^

我知道我錯在哪裡了

感謝
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
系統時間:2024-05-06 11:54:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!