روشهای آموزش بهتر

برای کسانی که علاقمند به توسعه روشهای آموزشی جدید هستند

روشهای آموزش بهتر

برای کسانی که علاقمند به توسعه روشهای آموزشی جدید هستند

طرز ارسال کلید ها به برنامه ها در Vb قابل توجه علاقمندان هک

یکی از دستورات جالب در vb   دستور Sendkeys می باشد با استفاده از این دستور میتوان کلید مورد نظر را بدون اینکه کاربر آن را از صفحه کلید زده باشد به برنامه فعال ارسال کرد . در این مقاله سعی شده طرز استفاده از این دستور اموزش داده شود و با یک مثال اینکار را انجام داده ایم .

قبل از شروع توجه به این مطلب ضروری است که این دستور مانند صفحه کلید فقط کلید را به برنامه فعال ارسال میکند پس اگر میخواهید روی برنامه خاصی اجرا شود باید ابتدا آن برنامه را با دستور Shell  فراخوانی کنید و اگر قبلا آن برنامه اجرا شده و میخواهید آن را به عنوان پنجره فعال مشاهده کنید باید از دستور Appactivate   و سپس نوشتن نام آن برنامه فعال کنید . در ضمن اگر نام آن برنامه را نمیدانید میتوانید از کلمه Activeprogect  استفاده کنید مانند مثال .

طرز استفاده از Senkeys: شکل کلی این دستور بصورت زیر است

SendKeys string,[wait]

 

پارامتر String :  شامل کلید یا کلیدهایی است که شما میخواهید ارسال کنید .که شامل کلیدهای معمولی و کلیدهای مخصوص مانند {HOME}, {ESC}و {ENTER}  میباشد . در ادامه نحوه استفاده از این کلید ها توضیح داده شده . کلیدهای Shift , Alt ,Ctrl  با استفاده از کاراکتر های +,%,^  فرستاده میشوند کاراکتر های + ^ % { } [ ]  را باید موقع استفاده داخل علامت کوتیشن "  "  استفاده کنیم .

 

پارامتر wait :  این پارامتر که اختیاری است میتواند مقادیر True  یا  False  داشته باشد اگر آن را ننویسیم مقدار پیش فرض آن  False  میباشد و اگر از کلمه True  استفاده شود به مهنای آن است که Sendkeys  پس از ارسال کلید به برنامه فعال منتظر پایان پردازش و تاثیر آن کلید روی آن برنامه بماند سپس به خط بعدی برنامه برود ، این حالت توصیه میشود زیرا بعضی از برنامه ها بلافاصله به کلیدی که برای آنها میفرستیم پاسخ نمی دهند .

مثال : میخواهیم برنامه ای بنویسیم که برنامه Notepad  را باز کند نام پروژه vb  ما را که اکنون داریم با آن کار می کنیم را درون آن بنویسد و در پایان فایل را ذخیره کند . البته برای فراخوانی یک برنامه از دستور Shell استفاده میشود و عدد 3 به معنای maximize بودن پنجره برنامه است . هنگام ذخیره فایل پیش بینی میکنیم که ممکن است فایلی با نام  C:TEST2.TXT ممکن است قبلا در ان آدرس باشد و برنامه از ما برای بازنویسی تایید بخواهد پس کلید Y   را نیز ارسال میکنیم و در پایان با ارسال کلید    "%{F4}"  که معادل Alt+F4   است برنامه را می بندیم . این برنامه را میتوانید داخل یک Command button  بنویسید و اجرا کنید .

Shell "NotePad", 3

SendKeys " salam in Project yek azmayesh ast :{Enter 2}", True

SendKeys "Name: " & ActiveProject.Name & "{Enter}", True

SendKeys "%FS"

SendKeys "C:TEST2.TXT{ENTER}"

SendKeys "Y"

SendKeys "%{F4}"

 

علامت {Enter 2}  یعنی کلید اینتر را دوبار ارسال کن .

همچنین برنامه زیر می تواند برنامه ماشین حساب ویندوز را باز کرده اعداد 1 تا 10 را جمع بزند و ببندد . این برنامه را نیز می توانید داخل یک Command button  بنویسید و اجرا کنید .

R = Shell("calc.exe", 1)

AppActivate  R

For I = 1 To 10

   SendKeys I & "{+}", True

Next I

SendKeys "=", True

MsgBox ("payan")

SendKeys "%{F4}", True

برای اطلاعات بیشتر مراجعه کنید به http://www.sjjvb.blogfa.com/

لیست کلیدها و علائم مورد نیاز برای ارسال آنها به برنامه فعال .

 

Key

Code

 

ENTER

{enter} or ~

ESC

{escape} or {esc}

SPACE

{ }

TAB

{tab}

BACKSPACE

{backspace} or {bs} or {bksp}

BREAK

{break}

CAPS LOCK

{capslock}

CLEAR

{clear}

DEL

{delete} or {del}

DOWN ARROW

{down}

END

{end}

HELP

{help}

HOME

{home}

INS

{insert}

LEFT ARROW

{left}

NUM LOCK

{numlock}

PAGE DOWN

{pgdn}

PAGE UP

{pgup}

RIGHT ARROW

{right}

UP ARROW

{up}

F1, F2, F3,F16

{F1}, {F2}, {F3},{F16}

SHIFT

+ (plus sign)

ALT (Windows) or
COMMAND (Macintosh)

% (percent sign)

CTRL (Windows) or
CONTROL (Macintosh)

^ (caret)

OPTION (Macintosh)

# (pound sign)

 

نظرات 2 + ارسال نظر
رضا چهارشنبه 15 مرداد‌ماه سال 1399 ساعت 11:42 ق.ظ

آیا میشه فاصله زمانی بین ارسال کلید هارو هم مشخص کرد؟ مثلا هر کلید رو با فاصلیه سیصد میلی ثانیه به نرم افزار مورد نظر ارسال کنه

محمد جمعه 26 آذر‌ماه سال 1400 ساعت 08:39 ق.ظ

Application.Wait (Now() + TimeValue("00:00:3"))

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد