سلام به همه
مخواستم بدونم چطور میشه وقتی که فرم فعال نیست ( پشت یه برنامه دیگه است یا به طور Minimize هست) میشه باهاش کار کرد ؟؟
مثلا وقتی فعال نیست با زدن دکمه PageDown یه پیامی بده یا پرینت بگیره ؟؟؟؟؟
مچکرم:10::40:
Printable View
سلام به همه
مخواستم بدونم چطور میشه وقتی که فرم فعال نیست ( پشت یه برنامه دیگه است یا به طور Minimize هست) میشه باهاش کار کرد ؟؟
مثلا وقتی فعال نیست با زدن دکمه PageDown یه پیامی بده یا پرینت بگیره ؟؟؟؟؟
مچکرم:10::40:
کد:Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Timer()
aa = GetAsyncKeyState(34) '"p down key"
If aa = -32767 Then
MsgBox "Hello"
End If
End Sub
نقل قول:
مرسی دوست عزیز
الان این کد با زدن چه دکمه ای مسیج میده ؟؟؟؟
page down هستش.
این +! دهن ما رو سرویس کرد تا این کد رو برای اسپای نویسی بده!نقل قول:
آقا دمت گرم!
شانسی این کد رو اینجا دیدم! ، بعد رفتم تابعش رو توی API-Guide پیدا کردم!
این توابع بدرد اسپای کامل و خوب نمیخورن و سریعا قابل ردگیری توسط آنتی ویروس ها هستن.نقل قول:
حالا از هیچی که بهتره! :27:نقل قول:
چیز دیگه ای هم سراغ دارید؟! :20:
عجب آدمی هستی ها...! اون API رو قبلاً بهت داده بودم...!نقل قول:
این +! دهن ما رو سرویس کرد تا این کد رو برای اسپای نویسی بده!
تازه این روش که از تایمر VB استفاده می کنه... اصلاً به درد بد افزار نویسی نمی خوره...!
:27::27::27:نقل قول:
نقل قول:
بیشتر از این جیززه!!!:32::34:
نقل قول:
تست کردم ولی هیچ عکس العملی نداشت :41:
---------- Post added at 08:50 PM ---------- Previous post was at 08:45 PM ----------
درست شد دوست عزیز
interval برای تایمر تعریف نکرده بودم :10::40::40::40::40:
حالا چطور میتونم با یه برنامه جای دکمه هارو عوض کنم ؟؟؟
مثلا pageup رو میزنی pagedown عمل کنه و برعکس
دوست عزیز شما باید اول با استفاده از کد زیر KeyCode دکمه ای رو که میخوای رو پیدا کنی:نقل قول:
بعد عددی رو که پرینت میشه رو به جای 34 قرار بدی. همین :40:کد:Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print KeyCode
End Sub
نه دیگه. برنامه ای که ایشون میخوان که فرم نداره.نقل قول:
برای این کار وقتی کلید رو دریافت کردین برنامه تون با Sendkeys کلید backspace رو باید بفرسته و بعدش با توجه به کلیدی که قبلا گرفته یه کلید دیگه رو بفرسته.
مثلا تو برنامه تون میگین که اگه حرف B زده شد کد زیر اجرا بشه:
البته حواستون هست که این کدها باید توی تایمر باشن.کد:SendKeys ("{BACKSPACE}")
SendKeys ("A")
نقل قول:نقل قول:
نه من توی خود ویندوز می خوام این کار انجام بشه
یعنی تا وقتی برنامه بازه کلید PageDown به جای PageUp قرار بگیره و دیگه تو هیچ برنامه ای PageUp کار نکنه
خوب الان هم توی ویندوز این کار انجام میشه. البته برای کلیدی مثل P up شما دیگه لازم نیست backspace رو بفرستین و فقط کافیه Page downرو بفرستین.
ببین دوست مننقل قول:
یه برنامه ای هست که با زدن کلید P Up پرینت میگیره (برنامه آمده است و نمیشه سورسشو دست کاری کرد)
شمافکر کن توی برنامه ای داری کار میکنی که با زدن Page Up اون برنامه پرینت میگیره، من میخوام با یه برنامه دیگه (که خودم می خوام بنویسم ) با زدن Page Up برنامه همون پیام hello رو بده و اون برنامه اصلی پرینت نده
اگر متوجه نشدید اینجا رو ببینید:
این برنامه با زدن PageUp پرینت مگیره
الان یه برنامه بنویسید که مخفی باشه و وقتی روی این فرم PageUp رو میزنی پرینت نگیره ،یه کاره دیگه بکنه
کد:http://parsaspace.com/files/9947338884/project12.exe.html
آخه ببین اصل کار این تابع اینطوری هست که وقتی شما Page Up رو بزنی هم اون کلید رو میفرسته هم اون عملی که مد نظرتون هست.
مثلا وقتی شما میگی وقتی P Up رو زدی برنامه P Down رو بزنه، اولا فقط تو برنامه خودتون کار می کنه. ثانیا هم کلید P Down گرفته میشه و هم کلید P Up فرستاده.
اما من قبلا یه همچین برنامه ای دیده بودم که هر جای ویندوز که a رو میزدی به جاش b وارد می کرد. اما از دیشب تا الان هر چی میگردم پیداش نمی کنم.:41:
از جناب _H2_ خواهش می کنم یه نظری بدند.:40:
من فکر میکردم برای مرورگری چیزی میخوان. راستی چرا میگین فقط تو برنامه ی خودمون کار میکنه؟ تابع Sendkeys همه جا کار میکنه و به فرم مون کاری نداره.
بله درسته همه جا کار می کنه اما هم عمل اول انجام میشه هم SendKeys. یعنی اگه شما برای برنامه تعریف کنی هر وقت Enter زده شد Delete رو بفرسته. اون وقت موقعی که Enter زده بشه هم عمل مربوط به Enter انجام میشه و هم Delete. منظورم از این که گفتم فقط تو برنامه انجام میشه همین بود.نقل قول: