چه جوری میشه یک کیبورد مجازی ساخت که متن را درون برنامه هایی که باز هستن تایپ کنه؟
چه جوری میشه یک کیبورد مجازی ساخت که متن را درون برنامه هایی که باز هستن تایپ کنه؟
با api میتونی با توابع vb نمیشه برای این کار باید رو توابعی که رو کیبورد کار میکنن کار کنی که با یه سرچ میتونی تو همینجا مطالب به درد بخوری رو یاد بگیری
دوست عزیز شما میتونین این کار رو با توابع خود vb هم انجام بدید
Sendkey "{enter}"
Sendkey "h"
Sendkey 95
آخرین ویرایش به وسیله program2vb : دوشنبه 15 اسفند 1390 در 10:10 صبح
خوب میتونیم به محض این که فرم فوکوس رو دریافت کرد فوکوس خودشو از دست بده
اینطوری مگه نمیشه
نه عزیز نمیشه
تو هر جا از فمت که کلیک یکنی فرمت فوکس میش و اون عملیات سند به فرمی انتقال داده میشه که فوکس رو اون باشه که نمیشه . اون دستورتم Sendkey نیس Sendkeys اونو اصلاح کن .
موفق و پیروز باشی یا علی .
سلام یه راه دیگه هم هست اونم اینه مثلا حرف a رو می خوامرو برچسب نشون بدم و label1.caption دومی باعث میشه که پشت سر هم چاپ کنه
Label1.Caption = Label1.Caption + "a"
منظورم من اینه که مثلا اگه برنامهNotePad باز باشه A رو درون NotePad تایپ کنه
سلام
اگه اجازه بدید، کاری رو که شما میخواید انجام بدید، به چند جزء تقسیم کنم. این طوری شما راحت تر میتونید جستجو کنید و به جواب برسید.
1- مسلمه که در شروع کار باید برنامتون به صورت top-most یا شبیه اون دربیاد که که حتی وقتی برنامتون غیر اکتیو هست (فوکوس رو یه برنامه دیگه هست) باز هم برنامتون روی سایر برنامه ها نشون داده بشه.
2- به دست اوردن هندل برنامه فعال (که در مثال شما همون نوتپد هست)
3- پس از فشرده شدن کامند باتون در برنامه شما: فرستادن کی کد مورد نظرتون به برنامه ای که در قسمت دوم هندل اون رو بدست اوردین با تابع سند مسیج یا پست مسیج.
(اگه بخواین از sendKey استفاده کنید قبلش باید برنامه که در قسمت 2 گفتیم رو دوباره فعال کنید.)
آخرین ویرایش به وسیله ASedJavad : شنبه 12 فروردین 1391 در 22:30 عصر دلیل: اشتباه نگارشی
درسته ولی چه جوری؟ میشه یه کم بیشتر راهنمایی کنید؟
کجاشو؟
کدوم قسمتشو؟
راستی!
جستجو یادت نره
این که وقتی فوکوس روی برنامه های دیگه هست برنامه من نشون داده بشه
اگه اشتباه نکنم با ای پی ای SetWindowPos
ممنون .
شما ندارید؟
این تعریف تابع:
Private Const SWP_HIDE = &H80
Private Const SWP_SHOW = &H40
Private Const SWP_REDRAW = &H20
Private Const SWP_NOREDRAW = &H100
Private Const SWP_NOMOVE = &H2
Private Const SWP_NORESIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const ZORDER_SENDTOBACK = 1
Private Const ZORDER_FIRSTTOP = 0
Private Const ZORDER_NOTOPMOST = -2
Private Const ZORDER_TOPMOST = -1
Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cWidth As Long, ByVal cHeight As Long, ByVal wFlags As Long) As Long
اینم توضیحاتش:
اين تابع مي تواند مشخصه هاي مکاني (طول ، عرض ، چپ و بالا) يک پنجره را تغيير دهد. يعني قابليت تغيير مکان و تغيير اندازه يک پنجره را دارا مي باشد.
گر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
hwnd : هندل پنجره مورد نظر
hWndInsertAfter : اين متغير مشخص کننده مکان پنجره در محور z است (zorder). در اين باره ثابت هاي زير به شما کمک خواهد کرد
ZORDER_SENDTOBACK : پنجره را به زير تمامي پنجره ها انتقال مي دهد
ZORDER_FIRSTTOP : پنجره را بر روي تمامي پنجره ها (حتي TopMost) انتقال مي دهد
ZORDER_NOTOPMOST : اين پنجره را بر روي تمامي پنجره ها به جز TopMost انتقال مي دهد
ZORDER_TOPMOST : پنجره را TopMost کرده و بر روي همهء پنجره ها انتقال مي دهد
x : فاصله جديد پنجره از لبهء چپ صفحه نمايش
y : فاصله جديد پنجره از بالاي صفحه نمايش
cWidth : عرض جديد
cHeight : ارتفاع جديد
wFlags : نحوه حرکت و تغيير اندازه را مشخص مي کند. ثابت هاي زير به شما کمک خواهد کرد
SWP_HIDE : پنجره را مخفي مي کند
SWP_SHOW : پنجره را نمايش مي دهد
SWP_REDRAW : پنجره را در محل جديد Redraw مي کند
SWP_NOREDRAW : پنجره را در محل جديد Redraw نمي کند
SWP_NOMOVE : پنجرع را جابهجا نمي کند
SWP_NORESIZE : پنجره را تغيير اندازه نمي دهد
SWP_NOZORDER : مکان پنجره را در راستاي z (در واقع همان zorder) حرکت نمي دهد
دوستان من تو استفاده از این تابع API مشکل دارم. این Error رو که تو عکس گذاشتم نشون میده. چیکار کنم؟
آخرین ویرایش به وسیله nakhodasokoot : یک شنبه 04 تیر 1391 در 13:51 عصر
مطمئنی تالار درستی برا سوالت انتخاب کردی؟
آقا شرمنده
من انقدر هول شدم که اصن به تالارش نگاه نکردم
میرم تو net. میپرسم
ممنون