ايران ويج

نسخه‌ی کامل: كمك براي GetKeyboardLayoutName
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
من يك keylogger نوشتم كه به صورت مخفي كار مي كنه و تمام كليد هاي فشرده شده را ثبت مي كند ولي يك مشكلي دارم با زبان صفحه كليد.
اگر فرض كنيم زبان صفحه كليد در برنامه مخفي من انگليسي باشد و در برنامه ديگري مثلا notepad خودم دستي فارسيش كنم در برنامه اي كه نوشتم اول مياد با تابع GetKeyboardLayoutName چك ميكنه كه زبان الان كامپيوتر چيه ولي متاسفانه با اين كه مثلا من در notepad مي نويسم و زبان اينجا فارسيه ولي در برنامه انگليسي رو متوجه ميشه چون زبان برنامه خودش هست.
اين تابع هندلي هم نداره كه به وسيله اون بشه زبان اكتيو روي يك برنامه خاص رو در آورد.
حالا از دوستان مي خواستم بپرسم روشي براي حل مشكل من دارند؟
ممنون
كسي نبود كمك كنه يا يك راه حل ديگه بده؟
شما برای اینکار باید ابتدا Thread ID مربوط به برنامه فعال ( مثلا همون notepad ) رو بدست بیاری . بعد اون مقدار رو به تابع GetKeyboardLayout بدی تا بتونی زبان اکتیو اون برنامه خاص رو بدست بیاری . GetKeyboardLayoutName فقط زبان برنامه ای رو به شما میده که توش داره اجرا میشه پس این تابع فقط میتونه زبان اکتیو برنامه خودت رو بهت بده و بس .

http://msdn2.microsoft.com/en-us/library/ms646296.aspx

http://msdn2.microsoft.com/en-us/library/ms776324.aspx
دوست عزيز بسيارسپاسگذار و ممنونم.
مشكل من با توضيحات شما حل شد.موفق باشيد.