هل هناك أي بدائل لـ SHGetKnownFolderPath مع رمز المستخدم لنظام التشغيل Windows XP؟

StackOverflow https://stackoverflow.com//questions/22055822

سؤال

لا يزال برنامجي مطلوبًا لدعم نظام التشغيل Windows XP.فيه أدعو SHGetKnownFolderPath API من خدمة Windows للحصول على مسارات خاصة بالمستخدم (مثل FOLDERID_Desktop) بواسطة hToken.نظرًا لأن واجهة برمجة التطبيقات هذه غير مدعومة على نظام التشغيل XP، فأنا أشعر بالفضول لمعرفة ما إذا كانت هناك أي طرق بديلة للقيام بذلك على نظام التشغيل هذا؟

هل كانت مفيدة؟

المحلول

الوظيفة المناسبة للاستخدام ستكون SHGetFolderLocation, ، ويمر سواء NULL أو -1 كرمز الوصول:

حتوكين [في]

يكتب:مقبض

رمز وصول يمكن استخدامه لتمثيل مستخدم معين.عادة ما يتم ضبطه على NULL ، ولكن قد يكون هناك حاجة عندما يكون هناك متعددين من المستخدمين لتلك المجلدات التي يتم التعامل معها على أنها تنتمي إلى مستخدم واحد.المجلد الأكثر استخدامًا من هذا النوع هو مستنداتي.تطبيق الاتصال هو المسؤول عن الانتحال الصحيح عندما يكون Htoken غير خبيث.يجب أن يكون لديها امتيازات أمان مناسبة للمستخدم المعين ، ويجب تثبيت Hive سجل المستخدم حاليًا.انظر التحكم في الوصول لمزيد من المناقشة حول قضايا التحكم في الوصول.

يشير تعيين المعلمة hToken بقيمة -1 إلى المستخدم الافتراضي.يتيح ذلك لعملاء ShgetFolderLocation العثور على مواقع مجلدات (مثل مجلد سطح المكتب) للمستخدم الافتراضي.يتم تكرار ملف تعريف المستخدم الافتراضي عند إنشاء أي حساب مستخدم جديد ، ويتضمن مجلدات خاصة مثل المستندات وسطح المكتب.أي عناصر تمت إضافتها إلى مجلد المستخدم الافتراضي تظهر أيضًا في أي حساب مستخدم جديد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top