SendInput נחסם לי ע"י תראד אחר. מה אני יכול לעשות? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

SendInput נחסם לי ע"י תראד אחר. מה אני יכול לעשות?


Ghosthunter

Recommended Posts

היי,

אני מנסה לשלוח ליחצות מקלדת ע"י SendInput.

הכל עובד כשאני נמצא בWIN, אך שאני נכנס למשחק כלשהו, הפונ נחסמת ע"י תראד אחר.

איך אני יכול לעקוף את החסימה הזו, ואיך אני יכול לחסום תוכניות אחרות?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/sendinput.asp

תודה.

עריכה: עכשיו גיליתי את BlockInput:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/blockinput.asp

יש אפשרות לשחק עם זה קצת?

האם BlockInput חוסם גם גויסטיקים(עבור INPUT_HARDWARE)?

קישור לתוכן
שתף באתרים אחרים


BOOL PostMessage(

HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);

איך אני מגלה את המזהה של החלון של המשחק(או של התראד אם אני משתמש ב- postthreadmessage)?

האם ההודעה שמדמה לחיצת עכבר יכולה להשתנות מתוכנית לתוכנית(מה אני צריך לשלוח ב- Msg)?

לא אני כתבתי את המשחק, כך שעלי לזהות איזו הודעה מסמלת לחיצת עכבר. איך אני עושה זאת?

האם יש דרך לצפות בהודעות השונות שהתראד של המשחק שולח ומקבל? אולי כך אוכל לזהות.

אין דרך פשוטה יותר לדמות לחיצת עכבר ולהתחמק מה BlockInput?

האם יש אפשרות "לספח" את החלון שאני יוצר לתראד ואז לגרום למערכת ההפעלה לחשוב שזה חלק מהמשחק?

טוב, כנראה המשחק לא משתמש בBlockInput מכיוון שאני יכול להזיז בו את העכבר. הבעיה היא שכשאני משתמש בSendInput, הפונקציה מחזירה לי 0, כאילו השתמשו בBlockInput. מישהו מכיר את זה? אולי יש פונ' אחרת שמסוגלת לחסום רק את הSendInput, ולא את העכבר והמקלדת.

עריכה: זה בטוח לא BlockInput מכיוון שאם אני מפעיל אותה, ואחר כך את המשחק, אני באמת לא מסוגל להזיז את העכבר(עם היד), וגם הSendInput מחזיר לי 0(למרות שהוא באותו התראד שביצע את הBlock).

הPostMessage גם מחזיר לי 0. קיבלתי שם הhWnd ע"י FindWindow(NULL, title)

קישור לתוכן
שתף באתרים אחרים

הבעיה היא שאני לא יכול לשלוח הודעות לחון בכלל. אם אני מריץ את הפונ PostMessage היא מחזירה 0, כלומר ההודעה בכלל לא נכנסה לבאפר(לפי MSDN).

חשבתי על פתרון פשוט יותר ברמה נמוכה יותר, בה אני אציין פשוט ש"נלחץ" מקש הרווח. יש דרך לעשות זאת?

קישור לתוכן
שתף באתרים אחרים

  • 2 שבועות מאוחר יותר...

אני משתמש בVC++, אבל זה רלוונטי גם לVB וכו.

אני חושב שהבעיה היא ב- game guard.

בכל מקרה כבר ידרתי מהעניין... מצאתי שרת אחר שלא דורש את הGAME GUARD(אך הוא מריץ גירסא שונה של המשחק) וזה עובד.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...