ايران ويج

نسخه‌ی کامل: نام کاربری در مسیر My Documents و چگونگی تعریف به برنامه!!
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام خدمت همه عزیزان

به عنوان مثال ما می خواهیم در مسیر = C:\Documents and Settings\User\My Documents\

با استفاده از برنامه نویسی دلفی فعل و انفعلاتی از جمله ساختن فایل و .... انجام بدیم . همانطوری که مستحضر هستید User در هر ویندوزی بسته به سلیقه کاربر هستش .می خواستم بدونم چگونه و چطور و چه کدی به برنامه بدیم تا هر یوزری رو در بر بگیره و تغییرات رو اعمال کنه

با تشکر از همه دوستانHeart
سوالتون واضح نیست (منکه چیزی متوجه نشدم)ولی تغییراتی که در hkey_local_machine ثبت میشوند برای تمام یوزرها اجرا میشوند
سوال من اینه مثلا میخوایم توی مسیر C:\Documents and Settings\User\My Documents یه فایل ایجاد کنیم و کلا تغییر بدیم

USer برای همه سیستم ها متفاوت هستش و نام کاربری هست که با اون لاگین کردیم .حالا چیکار کنیم که تغییرات ما با هر کاربری بر روی \My Documents اعمال شود و یا چطوری کاربری سیستم کاربران را توسط برنامه شناسایی و اقدام به عمل نمائیم

C:\Documents and Settings\ALI\My Documents
C:\Documents and Settings\Hasan\My Documents
C:\Documents and Settings\حسین\My Documents
سلام
با این کد ساده می تونی نام کاربر فعال رو دریافت کنی

کد:
procedure TForm1.Button1Click(Sender: TObject);
Var
     buffer : String;
     buffsize : DWORD;
begin
       buffsize := 128;
       Setlength(buffer,buffsize);
       Getusername(Pchar(buffer),buffsize);
       lblUser.Caption   := buffer;
end;

موفق باشی
سلام
با این کد میشه مسیرهای مختلفی رو که توی سیستم های مختلف آدرسشون ممکنه فرق کنه بدست آورد. مثل Desktop و StartUp و MyDocuments و ...
مقادیر قابل قبول برای پارامتر تابع رو هم نوشتم. ولی کد از خودم نیست.
شرمنده که کد VB گذاشتم
یکی از دلفی کارای محترم لطف کنن کد رو به دلفی تبدیل کنند.
همه چی تو فایل پیوست
سلام دوستان و تشکر بابت کمکتون . من کد مربوطه رو پیدا کردم و یونیتش رو هم نوشتم اگه کسی از دوستان میخواد بزارمش Happy
سلام
کسی نیست معادل این دو تابع رو دلفی پیدا کنه؟ Sad
SHGetSpecialFolderLocation
SHGetPathFromIDList
اعلان این توابع در VB بصورت زیر است:
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

من ShellAPI رو تو بخش Uses نوشتم ولی این توابع رو پیدا نکردم.
فولدر های مخصوصی که ویندوز ازش استفاده میکنه تو یه بخش از رجیستری ثبت هستند(فکر کنم همین باشه)
hkey_users /s-1-5-20/microsoft/windows/currentversion/explorer/shellfolders
اینم تابع api مربوطه در دلفی
WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderLocation(;

HWND hwndOwner,
int nFolder,
LPITEMIDLIST *ppidl
);


Parameters

hwndOwner

Handle of the owner window that the client should specify if it displays a dialog box or message box.

nFolder

Value specifying the folder to retrieve the location of. This parameter can be one of the following values:

CSIDL_BITBUCKET Recycle bin ¾ file system directory containing file objects in the user's recycle bin. The location of this directory is not in the registry; it is marked with the hidden and system attributes to prevent the user from moving or deleting it.
CSIDL_CONTROLS Control Panel ¾ virtual folder containing icons for the control panel applications.
CSIDL_DESKTOP Windows desktop ¾ virtual folder at the root of the name space.
CSIDL_DESKTOPDIRECTORY File system directory used to physically store file objects on the desktop (not to be confused with the desktop folder itself).
CSIDL_DRIVES My Computer ¾ virtual folder containing everything on the local computer: storage devices, printers, and Control Panel. The folder may also contain mapped network drives.
CSIDL_FONTS Virtual folder containing fonts.
CSIDL_NETHOOD File system directory containing objects that appear in the network neighborhood.
CSIDL_NETWORK Network Neighborhood ¾ virtual folder representing the top level of the network hierarchy.
CSIDL_PERSONAL File system directory that serves as a common respository for documents.
CSIDL_PRINTERS Printers folder ¾ virtual folder containing installed printers.
CSIDL_PROGRAMS File system directory that contains the user's program groups (which are also file system directories).
CSIDL_RECENT File system directory that contains the user's most recently used documents.
CSIDL_SENDTO File system directory that contains Send To menu items.
CSIDL_STARTMENU File system directory containing Start menu items.
CSIDL_STARTUP File system directory that corresponds to the user's Startup program group.
CSIDL_TEMPLATES File system directory that serves as a common repository for document templates.


ppidl

Address that receives a pointer to an item identifier list specifying the folder's location relative to the root of the name space (the desktop).
سلام
نقل قول: WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderLocation
ببخشید ولی متوجه نشدم Shy
نمی دونم تابع SHGetSpecialFolderLocation رو از تو کدوم یونیت باید استفاده کرد
جناب lord_viper از راهنماییتون خیلی ممنون Wink
چند دقیقه بعد از اینکه DC شدم رفتم تو Windows SDK و تو قسمت Quick Info یونیت مذکور رو پیدا کردم.
ShlObj
ولی هنوز معادل اون کد وی بی رو ننوشتم. اگه آماده شد پیوست می کنم.
صفحه‌ها: 1 2