السلام عليكم
ممكن كيفية معرفة اسم مستخدم الوندوز ؟
اريد انشاء ملف في
c:\\Documents and Settings\\HowToKnowThis\\Bureau
اللغة C
المرجوا الافادة او على الاقل كلمة مساعدة للبحث في ججوجل
شكرا
السلام عليكم
ممكن كيفية معرفة اسم مستخدم الوندوز ؟
اريد انشاء ملف في
c:\\Documents and Settings\\HowToKnowThis\\Bureau
اللغة C
المرجوا الافادة او على الاقل كلمة مساعدة للبحث في ججوجل
شكرا
بالـ APIs
و ستحصل على مسار My Documents الخاص بالمستخدم :D
تم تعديل هذه المشاركة بواسطة msayed2004 في 11 يوليو 2008 في 15:27
إقرأ معى:
----
المثقفون العرب .. المزورون العرب: تأبين محمود درويش نموذجا
ماذا خسر العالم بانحطاط المسلمين ؟!! للعلامه: أبو الحسن الندوى (كتاب هام لكل مسلم).
المنهجية ومقدمات في الطلب (لطلاب العلم الشرعى)
السلام عليكم
أولا هذا الأمر لا يتعلق بلغة بعينها ولكن بنظام التشغيل نفسه ,, عموما طالما نتكلم عن الويندوز فيوجد أكثر من طريقة :
1- جلب اسم المستخدم عن طريق الدالة GetUserName و تعريفها كالتالي :
[color= #0000ff;]BOOL GetUserName[color= #000000;](
LPTSTR lpBuffer, [color= #007f00;]// address of name buffer
LPDWORD nSize [color= #007f00;]// address of size of name buffer
[color= #000000;]);كما ترى فإن اول باراميتر هو عنوان تخزين الاسم(بفر) ,, ثاني باراميتر هو مؤشر الى طول البفر ,, مثال :
[color= #0000ff;]char buffer[color= #000000;][MAX_PATH[color= #000000;]] [color= #000000;]= [color= #A31515;]""; DWORD sz [color= #000000;]= MAX_PATH; GetUserName[color= #000000;](buffer, [color= #000000;]&sz[color= #000000;]); printf[color= #000000;]([color= #A31515;]"%s [color= #666666; font-weight: bold;]n[color= #666666; font-weight: bold;]n", buffer[color= #000000;]);
-------------
2- يمكن معرفة عنوان البروفايل للمستخدم الحالي(C:\Documents and Settings\xxx) عن طريق الـEnvironmentsVariables ,, كل عملية يتم انشاءها يكون ذلك مصاحب لعمل Initialize لمتغيرات العملية و يشمل ذلك وضع الـEnvironmentsVariables حيث تكون متواجدة دائما في البروسس ,, وتكون على هذا الشكل :
windir=D:\WINDOWS SystemDrive=D:
يمكن معرفة احد المتغيرات عن طريق الدالة :
DWORD GetEnvironmentVariable[color= #000000;](
LPCTSTR lpName, [color= #007f00;]// address of environment variable name
LPTSTR lpBuffer, [color= #007f00;]// address of buffer for variable value
DWORD nSize [color= #007f00;]// size of buffer, in characters
[color= #000000;]);كمثال :
[color= #0000ff;]char buffer[color= #000000;][MAX_PATH[color= #000000;]] [color= #000000;]= [color= #A31515;]""; GetEnvironmentVariable[color= #000000;]([color= #A31515;]"USERPROFILE", buffer, MAX_PATH[color= #000000;]); printf[color= #000000;]([color= #A31515;]"VariableName: %s [color= #666666; font-weight: bold;]n",buffer[color= #000000;]);
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
وفي ال Qt تقدر تقراها عن طريق
QProcess::environment
وإذا حاب تغير شيئ
QProcess::setEnvironment
تم الحل بفضلكم ... شكرا