PDA

View Full Version : بدست آوردن username یک کامپیوتر



دوشنبه 13 بهمن 1382, 02:10 صبح
با سلام
می خواهم از طریق دلفی اسم کابری را که تو ویندوز xp وارد شده را بفهمم. از دستورات زیر استفاده کردم ولی خطا داد.
کسی میدونه چرا ؟ :(

procedure TForm1.Button1Click(Sender: TObject);
var
StrUserName: PChar;
const
Size: Integer = 20;
begin
GetMem(StrUserName, Size);
GetUserName(StrUserName, Size);
Label1.Caption:=StrPas(StrUserName);
FreeMem(StrUserName);
end;
اصلاح شده توسط مشاطان

SyntaxCheck
دوشنبه 13 بهمن 1382, 02:41 صبح
سلام
Size باید بصورت متغیر کاردینال تعریف بشه و نه ثابت. شما از یک ثابت استفاده کردید.

SReza1
دوشنبه 13 بهمن 1382, 22:32 عصر
خوب سایز رو اونطوری نباید تعریف کنی
در ضمن در ویندوز مبشه فهمید که حداکثر طول نام کامپویر و یا نام کابری چقدر است

Function TDM1.GetPCName : String;
Var LocalMachine: array [0..MAX_COMPUTERNAME_LENGTH] of char;
Size: DWORD;
begin
Size := Sizeof(LocalMachine);
GetComputerName(LocalMachine, Size);
Result := LocalMachine;
end;
این دسنور ور نگاه کن اسمه کامپوتر رو برمیگردونه‍‍ کنار اون هم میتونی تو جستجو MSND استفاده کنی

Gladiator
دوشنبه 13 بهمن 1382, 23:13 عصر
توی مجموعه کامپوننتهای ایندی چند کامپوننت هست که ( البته برای این منظور نیستند ) ولی به راحتی نام کامپیوتر رو برمیگردونه و فقط به 1 خط کد نویسی احتیاج داره .

موفق باشید .
گلادیاتور .

سه شنبه 14 بهمن 1382, 00:40 صبح
با تشکر از توجه دوستان
من هم می دانم که تعریف متغیر size را اشتباه انجام دادم. ولی روش درست آنرا نمی دانم. :|
لطفا روش درست آنرا بفرمایید .
با تشکر

Kambiz
سه شنبه 14 بهمن 1382, 00:52 صبح
خوب سایز رو اونطوری نباید تعریف کنی
در ضمن در ویندوز مبشه فهمید که حداکثر طول نام کامپویر و یا نام کابری چقدر است

Function TDM1.GetPCName : String;
Var LocalMachine: array [0..MAX_COMPUTERNAME_LENGTH] of char;
Size: DWORD;
begin
Size := Sizeof(LocalMachine);
GetComputerName(LocalMachine, Size);
Result := LocalMachine;
end;
این دسنور ور نگاه کن اسمه کامپوتر رو برمیگردونه‍‍ کنار اون هم میتونی تو جستجو MSND استفاده کنی
جناب SReza1 دو سه پست قبلتر روش صحیح رو با یک مثال کامل عنوان کردند.

سه شنبه 14 بهمن 1382, 01:15 صبح
با سلام مجدد
باید ببخشید. بی سوادی و هزار دردسر. :oops:
شما درست گفتید و مشکل من حل شد.
با تشکر از همه اساتید