PDA

مشاهده نسخه کامل : مشکل در فرستادن متن فارسی به کلیپ بورد



ghafarifar
16-03-09, 11:17
با سلام
این سوال رو من تو چند تا فروم دیگه هم مطرح کردم ولی کسی بهم جوابی نداد امبدوارم که بتونم اینجا یه راه حلی پیدا کنم
من با یه مشکل در فرستادن متن به کلیپ بورد روبرو شدم موقعه ای که می خوام یه نوشته فارسی که از قبل تو تکست باکس وارد شده رو به کلیپ بورد بفرستم بدون هیچ دردسری این کار انجام میشه اما اگه اول بیام متن رو تو یه متغییر ذخیره کنم مثلا متن 25 اسفند رو میام توی یه متغییر از نوع string به نام ss ذخیره کنم و بعد بخوام همین ss رو به کلیپ بورد بفرستم متن خروجیم به شکل زیر میشه
25 ÇÓÝäÏ"
Only the registered members can see the link
خوب من این حدس رو زدم که چون فرمتی براش تعریف نشده اینجوریه واسه همین این طور امتحان کردم
Clipboard.SetText ss,vbCFRTF
این دفعه امیدوار کننده بود و از شکل نامفهومش بیرون اومده بود ولی یه کاراکتر بهش اضافه کره بود
25 اسفند__
این __ که بازم یه مشکل دیگه هست Only the registered members can see the link البته با این آزمون خطاهایی که انجام دادم فهمیدم مشکل از این هست که من متن رو توی یه متغییر string ذخیره می کنم و بعد می فرستم به کلیپ بورد حالا راحی به نظرتون می رسه که من یه متن فارسی ترکیب از عدد و یه کلمه رو بفرستم به کلیپ بورد بدون اینکه با چنین مشکلهایی روبرو نشم البته برای درک بهتر دوستان از این مشکل کد رو ضمیمه می کنم
امیدوارم بتونید بهم کمک کنید.
نتونستم سورس رو اینجا اپلود کنم از اینجا بگیریدش
Only the registered members can see the link (Only the registered members can see the link)

MoBiN.R
16-03-09, 20:10
دوست عزیز این مشکل با تعویض متغیر ها و فرمت شیء کلیپ برد قابل حل نیست .. این مشکل برمیگرده به پشتیبانی نکردن متن یونیکد ( Unicode ) که شیء Clipboard به صورت معمولی ازش پشتیبانی نمیکنه .. تنها راحش اینه که از شیء Clipboard خود ویژوال بیسیک استفاده نکنید و اگر استفاده میکنید یه ترفندی زده بشه که از کلیپ برد خو ویژوال بیسیک استفاده نشه .. پس باید شیء Clipboard ای که خود ویژوال بیسیک داره بیخیال بشید و با توابع API ای که برای کار با کلیپ برد در حالت هاو فرمت های مختلف هستند استفاده کنید .

در لینک های زیر توضیحات و نمونه سورس هایی برای استفاده از کلیپ برد اصلی سیستم با پشتیبانی از یونیکد اورده شده ( برای اطلاعات بیتشر هم میتونین عبارت Clipboard+API+Unicode رو توی گوگل سرچ کنید) :

Only the registered members can see the link
Only the registered members can see the link