PDA

View Full Version : حرفه ای: صدا زدن پارامتر Dll Dynamic



loo30fer
جمعه 02 اردیبهشت 1390, 14:55 عصر
با سلام خدمت دوستان
من میخوام یک پارامتر dll رو که به صورت Dynamic هست رو صدا بزنم حالا چطور میتونم اینکار بکنم ؟
در اصل میخوام پارامتر KbdLayerDescriptor دی ال ال KBDFA.DLL رو صدا بزنم تا زبان سیستم به فارسی تغییر کنه البته میدونم که میتونم با تابع LoadKeyboardLayout اینکار رو بکنم ولی برای من مهمه که خودم اینکار رو
بکنم البته من مبتدی هستم پس ممنون میشم در حد یک فرد مبتدی هم کمکم کنید .تشکر
ضمنا در این مورد هرچی تو سایت جستجو کردم چیزی نیافتم.

vcldeveloper
جمعه 02 اردیبهشت 1390, 18:54 عصر
پارامتر رو صدا بزنید، یا تابع رو صدا بزنید؟! پارامتر صدا زدن که معنی نمیده!

KbdLayerDescriptor یک تابع هست، اون هم یک تابع undocumented، یعنی این تابع توسط خودِ ویندوز استفاده میشه، و مایکروسافت مستنداتی برای استفاده از آن توسط سایر برنامه نویسان منتشر نمیکنه. اگر میخواید باهاش کار کنید، باید برید سراغ منابع غیر رسمی (مثلا مقالات یا پست های وبلاگ) که در اونها درباره اش توضیحی داده شده باشه. برای به دست آوردن لیست پارامترهاش هم باید فایل Kbdext.h یا Kbd.h رو که احتمالا فایل header ایی هستند که این تابع در آنها تعریف شده، جستجو کنید، و تعریف این تابع رو درش پیدا کنید، و اون رو به تعریف تابع معادل در دلفی ترجمه کنید.

loo30fer
جمعه 02 اردیبهشت 1390, 19:37 عصر
پارامتر رو صدا بزنید، یا تابع رو صدا بزنید؟! پارامتر صدا زدن که معنی نمیده!
منظورم همون تابع بود عذرخواهی میکنم اشتباه گفتم.

KbdLayerDescriptor یک تابع هست، اون هم یک تابع undocumented، یعنی این تابع توسط خودِ ویندوز استفاده میشه، و مایکروسافت مستنداتی برای استفاده از آن توسط سایر برنامه نویسان منتشر نمیکنه. اگر میخواید باهاش کار کنید، باید برید سراغ منابع غیر رسمی (مثلا مقالات یا پست های وبلاگ) که در اونها درباره اش توضیحی داده شده باشه. برای به دست آوردن لیست پارامترهاش هم باید فایل Kbdext.h یا Kbd.h رو که احتمالا فایل header ایی هستند که این تابع در آنها تعریف شده، جستجو کنید، و تعریف این تابع رو درش پیدا کنید، و اون رو به تعریف تابع معادل در دلفی ترجمه کنید.
ممنون از توضیحاتتون , راستش دلیل اینکه میخوام اینکار رو بکنم اینکه وقتی از تابع LoadKeyboardLayout برای تغییر زبان استفاده میکنم و چون ویندوز 7 با این تابع مشکل داره که نمیدونم چرا برنامه برای یک ثانیه فریز میشه و مکث میکنه که زیاد برای من و همینطور کاربر خوش آیند نیست و میخواستم بدونم اگه خودم همونطور که گفتین عمل کنم و خودم پیادش کنم باز ممکنه این مشکل فریز شدن و مکث در تغییر زبان پیش بیاد ؟

vcldeveloper
جمعه 02 اردیبهشت 1390, 23:19 عصر
راستش دلیل اینکه میخوام اینکار رو بکنم اینکه وقتی از تابع LoadKeyboardLayout برای تغییر زبان استفاده میکنم و چون ویندوز 7 با این تابع مشکل داره که نمیدونم چرا برنامه برای یک ثانیه فریز میشه و مکث میکنه
همین امشب در یک تاپیک دیگه درباره این مشکل توضیح دادم.