1.باید با فایند ویندو اول پنجرت رو پیدا کنی
2.بعد با سند مسیج یا پست مسیج کلید مورد نظرت رو بفرستی
در واقع میایم و سندکی رو شبیه سازی می کنیم
نکته ای که گفتنش بد نیست اینکه که برای فرستادن پیغام به روی پنجره ها و
برنامه ها باید از پست مسیج استفاده کرد ( اصلاح شد )
اگه کسی می خواهد بگه مثال بزنم البته همه دیگه استادند تو این قضیه !
برا ما بی سوادا مثال بزن.
من اصلا نتونستم با این سند مسیج و پست مسیج کنار بیام!!
یه سوال دیگه واسه یا shift یا چیکار باید بکنم؟alt ctrl
Soheilvb نوشته است:اره
اصلا اصلا مظمئن نيست
از Sendkey استفاده كن ديگه.؟؟؟؟؟؟؟؟
با دستور set مطمئن نمیشه ؟!
نقل قول: یه سوال دیگه واسه یا shift یا چیکار باید بکنم؟alt ctrl
منظورت رو نفهمیدم
نقل قول: من اصلا نتونستم با این سند مسیج و پست مسیج کنار بیام!!
اولآ اون صحبتی که کردم که گفتم باید برای پنجره از پست مسیج و برای برنامه
سند مسیج استفاده کرد با بررسی دوباره ای که کردم غلت از آب در اومد
و درستش اینه که برای همشون باید از پست مسیج استفاده کرد.
و به عنوان مثال با احتساب اینکه پنجره Calculator باز است با این کد
عدد 5 را به ماشین حساب می فرستیم
چیز خوبی که این روش داره اینه که در هرصورتی پیغام رو به پنجره می فرسته
و نیازی به اکتیو بودن پنجره نیست
کد :
کد:
Dim MyHwnd As Long
MyHwnd = FindWindow(vbNullString, "Calculator")
Call PostMessage(MyHwnd, WM_KEYDOWN, vbKeyNumpad5, 0)
دکلریشن :
کد:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_KEYDOWN = &H100
تفاوت پست مسیج و سند مسیج از نظر ساختاری ( از قول کتاب برنامه نویسی در ویندوز با استفاده از توابع API نوشته پژمان حسینی ) :
در پیام رسانی گاهی اوقات از تابع سند مسیج و گاهی اوقات از تابع پست
مسیج استفاده می شود . تابع پست مسیج پیغام ها را به صف ویندوز می
فرستد و بر می گردد اما سند مسیج پس از آنکه پیغام ها را در صف پیغام ها
قرار داد منتظر می ماند تا پیغام انجام شود
در سند مسیج اگر بخوایم بفرستیم چیکار باید بکنیم؟ctrl
مثلا برای اینتر اینو مینویسیم {Enter}
ولی برای shift
یا ctrl
نمیشه اینجوری نو شت
یه سواله دیگه اگه بخوای به طور کلی از سند کی استفاده کنی چیکار باید کرد یعنی رو پنجره خاصی فوکوس نکنه یا رو دسک تاپ بخوای عمل فشردن یک کلید رو شبیه سازی کنی
باید از Set استفاده کنی. منم بلد نیستم!
دوست عزیز دسکتاپ هم هندل داره که اون هم با تابع GetDesktopWindow
به دست می آد
بعد از بدست آوردن هندل دسکتاپ همون روال سابق رو به پیش بگیر !