Logo

רד-בורד: ארכיון

ראשי > תיכנות > עזרה בשפת c מקשים

27/09/2006 00:16:23 KoSmo
אני רוצה לדעת איך אפשר לעשות שכשאני ילחץ על מקש מסוים זה יעשה משהו מסוים כשהתוכנית פתוחה אוו להפך כשאני יפתח את התוכנית היא תלחץ על המקש הזה כמה פעמים אוו משהו כזה בבקשה תעזרו עם יש מדריך לדבר הזה אפילו באנגלית אני ישמח לקרוא תודה רבה לעוזרים!!!!!
27/09/2006 00:38:13 Acid-Burn
מזאת אומרת אתה מתכוון איך לעשות שיקלוט ערך ...?
27/09/2006 00:54:08 KoSmo
דוגמה כשאני יקיש על המקש tab זה יכתוב במילים tab
והשאלה השניה זה ההפך לדוגמה שכשאני יפעיל את התוכנית זה לבד יקיש על המקש מקווה שהייתי יותר ברור הפעם!!!
27/09/2006 01:03:29 Acid-Burn
כלומר מה שאתה שואל זה איך אפשר לגרום למחשב לרשום את שם הכפתור שעילו אתה לוחץ

שמה אני לא יודע עם אתה מודה לזה או לא אבל למקש TAB לא ככה שמו במערכת
יש לו קוד מסויים

ומה שאתה רוצה זה אפשרי רק אם תתחיל להגיד לו כול קוד שווה למה...

וזה סתם הרבה זמן

ואת החלק השני לא ממש הבנתי מזאת אומרת שהוא ילחץ לבד...?
27/09/2006 18:24:08 ziv
KoSmo באיזה סביבה אתה מתכנת?
27/09/2006 21:56:20 KoSmo
turbo c++ עם זה כזה חשוב
27/09/2006 22:45:21 ziv
כן זה כזה חשוב! בדרך כלל לא שואלים דברים סתם(וגם אם כן אז זה לא נורא)
אתה רוצה לעשות תוכנה שתפעיל תוכנה אחרת על ידי לחיצה, אני משער שאתה רוצה לעשות את זה בסיגנון טריינרים כלומר שלא יראו את התוכנה או שמכל חלון שאתה נמצא בו כרגע המקש יפעיל את התוכנה.
אני צודק?
28/09/2006 12:20:06 KoSmo
כן זה בערך הרעיון שלי עם תוכל להסביר לי איך לעשות את זה אני ישמח מאוד
ולגבי החלק השני אני מתכוון נגיד כמו
התוכנה הזאת
http://planet.nana.co.il/urielh/Klick0r.rar
שלוחצת הרבה פעמים על מקש מסוים אני רוצה לעשות משהו דומה זה הכוונה שלי תודה רבה רבה לעוזרים!!!!
28/09/2006 20:22:44 ziv
כן אז זהו... שבטורבו אתה לא יכול...
דברים כאלו משתמשים ב WINAPI שאין את זה בטורבו.
30/09/2006 17:06:37 KoSmo
אתה יכול להביא לי לינק ל winapi חיפשתי ולא מצאתי ועוד משהו מה הפקודות שאיתם עושים את המקשים האלה את הקודי אסקי של המקשים אני כבר ימצא לבד רק את הפקודות שצריכים אני צריך וגם על הפקודות האלה אני ילמד לבד תודה רבה לך ולכל מי שעוזר!!!!
30/09/2006 18:51:13 ziv
אי אפשר לעשות את זה ב tc/tclite!
אפשר לעשות את זה דרך מהדרים אחרים כמו visual c או devcpp.
01/10/2006 11:01:09 xtr
אממ תמשתמש בgetch ובif

אם המקש שהוכנס שווה לקוד אסקי אז .. לא יודע :\
08/10/2006 13:46:57 hashashin
בולשיט
אין כזה דבר לא יכול ומי שאומר את זה כנראה אין לו מושג איך עובד המחשב
אתה צריך לשנות את פסיקת המקלדת, לקלוט מה התו ולהוסיף את קטע הקוד שלך שירים דגל במקום ידוע בזכרון ברגע ביצוע הפסיקה . משם הפונקציה שלך בעזרת קוד אסמבלי קטן תופעל ע"י פסיקה וירטואלית לכתיבה לאזור קוד מסויים
08/10/2006 16:09:15 ziv
פחחח... אחי איפה אתה חי?!
אנחנו פה חיים על windows xp!
אין דבר כזה assembly אמיתי ואין לך גישה אמיתית לזיכרון.
היום כל מה שאתה יכול לעשות זה להשתמש ב WINAPIs אם אתה משתמש בוינדוס.
09/10/2006 00:55:53 T4uSBaZ
חפש בMSDN על GetAsyncKeyState ..היא תקלוט מקשים שונים עם לחצנו עליהם כשאנחנו בתוכנית ואם לחצנו כשאנחנו בתוכנית אחרת. היא גם מסוגלת לקלוט לחיצות עכבר, ועוד ..

ולגבי התוכנה המוסתרת, אם ברצונך להסוות את התוכנה, הקוד:
קוד:
HWND stealth; /*creating stealth */
AllocConsole();
stealth=FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(stealth,0);

(נ.ב. צריך את ספריית windows.h )
09/10/2006 13:17:19 ziv
... יש לו טורבו C
10/10/2006 21:59:00 HLL
turbo c++ זה סביבת דוס T4uSBaZ אז מן הסתם זה לא יעבוד
אתה יכול לנסות כמה דברים אחד, תנסה ל-כ-ת-ו-ב ל stdin (אני בספק שזה יעבוד)
משו בסגנון:
קוד:fwrite(stdin, 1, 4, "abcd");
עם הרבה תפילה, מה שיקרה זה שבמקום שאתה תקרא מהבאפר של המקלדת אתה תכתוב אליו...
אם זה לא עובד אתה יכול לגשת איכשהוא לבקר המקלדת ולשתול שמה מקשים אני חושב
או לבאפר של דוס של המקלדת ושמה לשתול מקשים אני כבר לא זוכר חושב שעשיתי פעם...

גוגל - מענה לכל תחלואותיך
23/10/2006 11:44:55 hashashin
אחי ... שם זין על הווינדוס
אתה יכול לעקוף את זה. ולהריץ את הקוד שלך עוד לפני שהוינדוס עולה ואח"כ להגן עליו שהמערכת הפעלה לא תוכל לשנות את האזור הזה. אבל זה באמת קצת סיבוך .... רק אל תגיד אי אפשר אם אתה לא יודע איך
23/10/2006 12:49:52 HLL
אחי, זה טורבו C++, אתה לא יכול לעבוד איתו ב Windows API, כי הוא לא מהדר ולא סביבת עבודה עבור חלונות!!!

.... רק אל תגיד "רק אל תגיד אי אפשר אם אתה לא יודע איך" אם אתה לא יודע שבאמת אי אפשר...

בלי קשר, אשמח אם תדגים את מה שאמרת כרגע בהודעה ...
23/10/2006 13:12:37 hashashin
אחי אין לי בעיה ... קוד די מסובך ... זאת העבודה שלי :)
אתה צריך להכניס את הקוד שלך לביוס .. את זה אתה יכול לעשות מווינדוווס .. להגדיר טבלת דפים משלך ולהגדיר דף אחד מסוג הרשאות הפוך ככה שרק אפליקציות יכולות לגשת אליו ולא מערכת הפעלה. שם אתה דןחף את הוקטור שמצביע לטבלת הפסיקות. לאחר מכן אתה צריך לדאוג ששאר הפסיקות לא ישתנו .. כלומר שיהי וקטור כמעט זהה למקורי ששמור במקום שבו מערכת ההפעלה תעבוד. לא אמרתי שזה קל ... כולה אמרתי שזה אפשרי.
23/10/2006 23:53:03 ziv
hashashin למה שמישהו ירצה בשם אלוהים לעשות דבר כזה מסובך אם אפשר לעשות את אותו הדבר דרך windows שזה הרבה פחות מסובך וגם הרבה פחות מסוכן?
24/10/2006 13:52:37 HLL
כאילו, קוד, או הסבר יותר מורחב, אפשר לראות?
לא לגמרי הבנתי למה אתה מתכוון ממש גם...

מה בידיוק הכוונה שלך במה שאמרת, הבנאדם ביקש לעשות 2 דברים:
1. לשתול בעצמו הקשות על המקלדת
2. לאפשר לתוכנית לקלוט לחיצות מקשים מכל חלון (כמו שווינאמפ וסקייפ עושים - Global hotkeys)
(זה לפחות מה שלי נדמה שהוא ביקש)

וגם אם פתרת לו את הבעייה, מה שאמרתי בהודעה המקורית שלי, נכון, עדיין טורבו C++ לא נועד לחלונות, ולכן לא יוכל לקרוא ל Windows API[ההודעה נערכה על-ידי HLL ב-24/10/2006 13:54:32]
25/10/2006 12:36:06 hashashin
איזה חלק בדיוק מעניין אותך?
החלק של החלפת וקטור הפסיקות או החלפת הסגמנט לסגמנט שלא יתן הרשאות למערכת ההפעלה(זה הכי קשה כי כאן אתה אמוטר להחליף חלקית את מערכת ההפעלה). תכלס לא קשה אבל הוא אמור לרוץ לפני שמערכת ההפעלה קבעה סגמנטציה משלה(טבלאות דפים אני מתכוון) כי אחרי זה אתה כבר לא תוכל לעשות כלום.
25/10/2006 18:35:48 ziv
אני אשאל שוב... אולי בטעות התעלמת מהשאלה שלי...
למה צריכים לעשות כזה דבר?
27/10/2006 19:07:48 HLL
זיו, דקה אני מנסה להבין קצת תבנאדם...
קצת קשה לי לחבר אחד ועוד אחד מה שאתה אומר, מה המטרה בידיוק במה שאתה מתאר לי, האם זה:
- להריץ קוד RM לפני שמערכת הפעלה עולה?
- להריץ אפליקציה במקביל לחלונות, שלחלונות לא תהייה גישה אליו?
או שאני בכלל לא בכיוון?

לפי מה שאני יודע, מערכות x86 למרות שזה אפשרי לקבוע סיגמנטציה, הם לא. הם משתמשות ב Flat memory model במקום, ובדפים ווירטואלים (והMMU כמובן) כדי לתרגם כתובת לוגית לכתובת לינארית(=פיזית);
איפה ווקטור הפסיקות נכנס בכל העניין, אתה יודע שווקטור הפסיקות ב RM לא עובד בכלל כמו ב PM...

תן לי לינקים לחומר שיש לך בנידון - בכלל - בכל התהליך שניסית ליצור פה, או תסביר לי מה בידיוק אתה מתכוון, זה נשמע מעניין...
27/10/2006 22:55:48 hashashin
לגבי הפלאט מודל אתה צודק.
אתה עדיין יכול ליצור עמודים שלמערכת הפעלה לא תהיה אליהם גישה. הווקטור כמו שהיה בפנטיום1 ככה נשאר עד היום. ונשמע לי שהבנת את התהליך... אההה וד"א כתובת לינארית אינה כתובת פיסית.
ולינקים זה עניין בעייתי זה חסוי :)
29/10/2006 20:05:33 HLL
ב Flat memory model כתובת לינארית היא אכן פיזית... מכיוון שאתה לא משתמש בסגמנטציה הכתובת הלינארית לאחר תרגום ה MMU מומרת ישירות לכתובת פיזית,
לא לא ממש הבנתי את הרעיון, וגם לא הבנתי את המטרה ... אני יודע קצת על איך שמנגנון ה Paging עובד, תוכל אולי להסביר לי בפרטי או בIRC...

ווקטור הפסיקות הוא לא אותו דבר שהיה בבמחשבים הראשונים (דהיינו 0:0) הוא יכול להתחיל מכל נקודה, וכבר המבנה של segment.offset כבר לא קיים ולא תופס תחת x86.
30/10/2006 00:40:33 hashashin
הכל תופס בכל המעבדים חוץ מP4 שיאין הרבה אחרי שיצא ה CORE DUO.
אם אתה רוצה עוד מידע דבר איתי ביום רביעי לא בערב באייסי 112084625 אז אני אהיה בעבודה ואוכל לבדוק דברים
02/11/2006 18:09:18 HLL

--- טוב ---
-הודעה לכל קוראי הטופיק,-
בתור מישהוא שקרא (אומנם לא ביסודיות) את ארכיטקטורת אינטל x86 ומכיר גם את הסדרה שקדמה לכך של המעבדים של אינטל (8086\88 - כמו שהרבה פה גם מכירים) אני גאה להודיע שמה ש
hashashin אמר בכמה תגובות אחרונות אינו הגיוני - חסר כל בסיס - ונראה כמו אוסף של מילים שאכן נלקחו מהמפרט של אינטל, אבל אז הוכנסו לבלנדר ונטחנו טוב טוב עד שהפכו לעיסה חומה ודביקה .

יום טוב ;)
הלל.
02/11/2006 23:58:38 ziv
בתור מישהו רציונלי אני רוצה להצהיר שאני לא מבין למה לעשות כל כך הרבה בלאגן לרעיון כל כך פשוט.... לחפור בפסיקות ולשנות אותן? למה כשיש לך אפשרות פי אלף פשוטה שגם מותאמת למערכת? את זה אני לא מבין :)
עמודים: 1 2