PDA

View Full Version : چه جوری میشه یک کیبورد مجازی ساخت که متن را درون برنامه هایی که باز هستن تایپ کنه؟



rezarko
چهارشنبه 26 بهمن 1390, 15:00 عصر
چه جوری میشه یک کیبورد مجازی ساخت که متن را درون برنامه هایی که باز هستن تایپ کنه؟

setroyd
جمعه 05 اسفند 1390, 23:12 عصر
با api میتونی با توابع vb نمیشه برای این کار باید رو توابعی که رو کیبورد کار میکنن کار کنی که با یه سرچ میتونی تو همینجا مطالب به درد بخوری رو یاد بگیری

h_a_m_i_d
یک شنبه 14 اسفند 1390, 21:14 عصر
دوست عزیز شما میتونین این کار رو با توابع خود vb هم انجام بدید
Sendkey "{enter}"
Sendkey "h"
Sendkey 95

program2vb
دوشنبه 15 اسفند 1390, 09:13 صبح
دوست عزیز شما میتونین این کار رو با توابع خود vb هم انجام بدید
Sendkey "{enter}"
Sendkey "h"
Sendkey 95

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


موفق و پیروز باشی . یا علی

h_a_m_i_d
دوشنبه 15 اسفند 1390, 15:48 عصر
خوب میتونیم به محض این که فرم فوکوس رو دریافت کرد فوکوس خودشو از دست بده
اینطوری مگه نمیشه

program2vb
دوشنبه 15 اسفند 1390, 17:41 عصر
نه عزیز نمیشه

تو هر جا از فمت که کلیک یکنی فرمت فوکس میش و اون عملیات سند به فرمی انتقال داده میشه که فوکس رو اون باشه که نمیشه . اون دستورتم Sendkey نیس Sendkeys اونو اصلاح کن .

موفق و پیروز باشی یا علی .

cjmoon
شنبه 12 فروردین 1391, 20:32 عصر
سلام یه راه دیگه هم هست اونم اینه مثلا حرف a رو می خوامرو برچسب نشون بدم و label1.caption دومی باعث میشه که پشت سر هم چاپ کنه


Label1.Caption = Label1.Caption + "a"

rezarko
شنبه 12 فروردین 1391, 20:38 عصر
منظورم من اینه که مثلا اگه برنامهNotePad باز باشه A رو درون NotePad تایپ کنه

ASedJavad
شنبه 12 فروردین 1391, 22:29 عصر
سلام
اگه اجازه بدید، کاری رو که شما میخواید انجام بدید، به چند جزء تقسیم کنم. این طوری شما راحت تر میتونید جستجو کنید و به جواب برسید.

1- مسلمه که در شروع کار باید برنامتون به صورت top-most یا شبیه اون دربیاد که که حتی وقتی برنامتون غیر اکتیو هست (فوکوس رو یه برنامه دیگه هست) باز هم برنامتون روی سایر برنامه ها نشون داده بشه.

2- به دست اوردن هندل برنامه فعال (که در مثال شما همون نوتپد هست)

3- پس از فشرده شدن کامند باتون در برنامه شما: فرستادن کی کد مورد نظرتون به برنامه ای که در قسمت دوم هندل اون رو بدست اوردین با تابع سند مسیج یا پست مسیج.
(اگه بخواین از sendKey استفاده کنید قبلش باید برنامه که در قسمت 2 گفتیم رو دوباره فعال کنید.)

rezarko
شنبه 12 فروردین 1391, 22:59 عصر
درسته ولی چه جوری؟ میشه یه کم بیشتر راهنمایی کنید؟

ASedJavad
شنبه 12 فروردین 1391, 23:07 عصر
کجاشو؟
کدوم قسمتشو؟
راستی!
جستجو یادت نره

rezarko
شنبه 12 فروردین 1391, 23:16 عصر
این که وقتی فوکوس روی برنامه های دیگه هست برنامه من نشون داده بشه

ASedJavad
یک شنبه 13 فروردین 1391, 00:11 صبح
اگه اشتباه نکنم با ای پی ای SetWindowPos

rezarko
یک شنبه 13 فروردین 1391, 00:14 صبح
ممنون .
شما ندارید؟

ASedJavad
یک شنبه 13 فروردین 1391, 00:35 صبح
این تعریف تابع:
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) حرکت نمي دهد

nakhodasokoot
یک شنبه 04 تیر 1391, 12:37 عصر
دوستان من تو استفاده از این تابع API مشکل دارم. این Error رو که تو عکس گذاشتم نشون میده. چیکار کنم؟

http://up.vatandownload.com/images/msvg0u3p59vykcxs7r81.jpg

ASedJavad
یک شنبه 04 تیر 1391, 13:15 عصر
مطمئنی تالار درستی برا سوالت انتخاب کردی؟

nakhodasokoot
یک شنبه 04 تیر 1391, 13:32 عصر
آقا شرمنده
من انقدر هول شدم که اصن به تالارش نگاه نکردم :لبخند:
میرم تو net. میپرسم
ممنون