ورود

View Full Version : جایگزین برای دستور sendkeys



hamid-nice
سه شنبه 07 خرداد 1392, 20:30 عصر
با سلام
دستور sendkeys دستور خاص اکسس نبوده و با این دستور می تونیم عبارت ، عدد و را ارسال کنیم
اما نکته خیلی مهم که به کرات تجربه کردم این است که این دستور تابع پروسس سیستم بوده و اگر دقیقا به موقع اجرا نشود عبارت مورد نظر ممکن است که جایی که باید می نشست ، قرار نگیرد و عملا این دستور جا بماند و فعل مورد نظر انجام نشود از این جهت این دستور گزینه مناسبی در موارد حساس نیست

صرفا به عنوان مثال در اکسس اگر بخواهیم پسورد یک دیتابیس را برای باز کردن آن از دیتابیس دیگر با این دستور ارسال کنیم متاسفانه در بسیاری از موارد پنجره ورود پسورد در دیتابیس مورد نظر باز می ماند و عبارت ارسال شده در آن قرار نمی گیرد مثل زمانی می شود که می خواهیم پسورد را دستی وارد کنیم و کار متوقف می ماند (برای نمونه به تاپیک زیر مراجعه و نمونه ای را بردارید و سریع و پشت سر هم اجرا کنید تا مشاهده کنید که این مساله اتفاق می افته و کافی است حتی در کار اصلی یک بار اتفاق بیافته و بنابراین کلا استفاده از این دستور در بسیاری جاها غیر کاربردی می شه)
http://barnamenevis.org/showthread.php?390404-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-%DB%8C%DA%A9-%D9%81%D8%B1%D9%85-%D8%AF%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-%D9%BE%D8%B3%D9%88%D8%B1%D8%AF-%D8%AF%D8%A7%D8%B1-%D8%8C-%D8%A7%D8%B2-%DB%8C%DA%A9-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%DB%8C%DA%AF%D8%B1-%D8%A7%DA%A9%D8%B3%D8%B3

آیا دستور یا کد هایی که بتوان با آن به جای ارسال عبارت مورد نظر با sendkeys از آن استفاده نمود وجود دارد ؟

با تشکر

Abbas Amiri
سه شنبه 07 خرداد 1392, 21:53 عصر
سلام

مشکل دستور
Set db = AccessApp.DBEngine.OpenDatabase(strDbName, False, False, ";PWD=1234") چی بود ؟

hamid-nice
چهارشنبه 08 خرداد 1392, 00:49 صبح
دوست گرامی مشکل این کد دقیقا مثل همان مشکل sendkeys که در بالا توضیح دادم هست که گاهی زیاد دیدم که اتفاق می افته
قضیه هر دوی اینها اینست که گاهی دچار این مشکل می شوند نه همیشه و خود این مطلب مشکل ساز شده است و نمی شود عملا روشون حساب کرد
من تستهای زیاد ، در کامپیوترهای متفاوت و حتی ویندوزهای مختلف و شرایط عملکردی متفاوت انجام دادم و این مشکل در هر دوی اینها را مشاهده کردم ممکن است شما با یک تست یا چند تست در شرایط یکسان بر بخورید یا نخورید چرا که همانطور که گفتم این مشکل هماره اتفاق نمی افتد و بدون اینکه بتوان گفت کی اتفاق می افتد ، ظاهر می شود

بنابراین دنبال دستور یا کدی که به درستی و بدون اشکال عمل کنه هستم
اگر راه دیگری برای ارسال عبارت مورد می شناسید لطفا ارایه فرمایید

با تشکر فراوان

hamid-nice
چهارشنبه 08 خرداد 1392, 21:02 عصر
با سلام
دستور sendkeyes و دستوری که در پست 2# گذاشتید را امروز هم روی یک سیستم 64 بیتی تست کردم ، هر دو همان مشکل را داشتند صد رحمت به دستور sendkeys دستور دومی خیلی بد عمل می کرد و کلا از بکار بردنش منصرفم کرد

کسی دستوری دیگری می شناسد ؟
با تشکر منتظر نظرات عزیزان هستیم