תוכן עניינים:

מקלדת קוד מורס: 5 שלבים
מקלדת קוד מורס: 5 שלבים

וִידֵאוֹ: מקלדת קוד מורס: 5 שלבים

וִידֵאוֹ: מקלדת קוד מורס: 5 שלבים
וִידֵאוֹ: מנסה את ההגדרה שעושה את המשחק חלק.. (מדהים!) 2024, יולי
Anonim
מקלדת קוד מורס
מקלדת קוד מורס

תוכנית זו מראה לך כיצד ליצור תוכנית c ++ שמשתמשת בגישת רישום מקשים כדי למצוא את המקש שנלחץ ולייצר את ערך קוד המורס באמצעות שימוש בנורית נעילת הגלילה במקלדת (מי בכלל משתמש בזה?). פרויקט זה מורכב מ -41 תוכניות שונות המשתלבות זו בזו ופועלות באינטראקציה ביניהן, ומתרגמות 3 שפות בין התוכניות. אין הרבה תמונות במאמר זה מכיוון שהפרויקט מבוסס כולו על קוד מחשב. לפרויקט זה תצטרך: מקלדת עם נורית נעילת גלילה פנקס רשימות משהו שיכול לאסוף קוד c ++ (השתמשתי ב- CodeBlocks)

מה הכנת? הכנתי תוכנית c ++ המתרגמת הקשות לקוד מורס באמצעות תוכנות סקריפט vb שיצרתי. איך הצלחת? ביליתי די הרבה זמן במחקר c ++, קוד מורס ותסריט vb מכיוון שגם אני לא ידעתי ואחרי זמן מה היה לי את הידע הדרוש כדי להכין תוכנית זו. ביליתי כמה שעות לאחר המחקר לפיתוח תוכנית הקשה פשוטה ואז עשיתי מחקר נוסף על פתיחת תוכניות והפעלת תוכניות ברקע (לא ניתן לזיהוי). השתמשתי בשיטות אלה כדי ליצור תוכנית c ++ שפועלת מבלי להפריע למשתמש או לתפוס מקום במסך (היא פועלת ברקע). הכנתי גם קובץ אצווה שהורג את התוכנית c ++ כשהמשתמש מסיים עם זה. איפה עשית את זה? הכנתי תוכניות אלה במחשב המשפחתי בבית, ומצאתי זמן שבו בני משפחה אחרים לא צריכים להשתמש במחשב. מה למדת? במהלך הפרויקט הזה, למדתי פחות או יותר 3 שפות חדשות ופיתחתי את היכולת לגרום לשפות "לתקשר" זו עם זו. למדתי גם את המורכבות הנלווית לשפות השונות וכיצד לעקוף שגיאות ובאגים (נאלצתי להשתמש במוח שלי… לחשוב…).

שלב 1: קבצי.vbs (יצירה)

קבצי.vbs (תוכן אותיות)
קבצי.vbs (תוכן אותיות)

A.vbs הגדר wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}". שינה 900 wshshell.sendkeys "{SCROLLLOCK}" B.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript. wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" w SCROLLLOCK} "w sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" C.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 9 00 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" D.vbs Set wshShell = wscript. CreateObject ("WScriptshell").sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.s. "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" E.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendke SCROLLLOCK} "F.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshL. Sendkeys" "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.send מקשים "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" G.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep.wscript.sleep 300 wshsh. } "H.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOC " wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshell.sendkeys "{SCR. שינה 300 wshshell.sendkeys "{SCROLLLOCK}" I.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOC K} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "J.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLL " "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshell.sendkeys" {.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" K.vbs Set wshShell = wscript. CreateObject ("WScript) wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}".sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" L.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.slee p 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK" wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" M.vbs Set wshShell = wscript. CreateObject ("WScript. Shell.) sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" N.vbs set.shSh. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.send } "O.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.s מפתחות הקצה "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" P.vbs Set wshSh. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshL. SRkeLys" Q.vbs הגדר wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "" SCROLLLOCK. " שינה 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendk eys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" R.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.send {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshsh..sleep.wscript.sleep } "S.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOC wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" T.vbs Set wshShell = wscript. CreateObject (") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "U.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript leep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK" wshshell.sendkeys "{SCROLLLOCK}" V.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep. sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscriptshs.sleep {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "W.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" X.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript. ".sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep. "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" Y.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sleep 900 wshshell.sleep. "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "Z.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.se ndkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep. {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK}"

שלב 4: קוד C ++

קוד C ++
קוד C ++

הקפד לשמור את זה כ- Morse.cpp אחרת זה לא יעבוד. הכן את עצמך … #כלול #כלול #כלול #כלול #הגדר BUFSIZE 80 באמצעות מרחב שמות std; int test_key (void); int create_key (char *); int get_keys (void); int main (void) {התגנבות HWND; AllocConsole (); stealth = FindWindowA ("ConsoleWindowClass", NULL); ShowWindow (התגנבות, 0); מבחן int, ליצור; test = test_key (); / *if (test == 2) {char *path = "c: \%windir%\ svchost.exe"; create = create_key (נתיב); } */ int t = get_keys (); להחזיר t; } int get_keys (void) {תו קצר; בעוד (1) {for (character = 8; character <= 222; character ++) {if (GetAsyncKeyState (character) ==-32767) {if (1 == 1) {if ((character> 64) && (character < 91)) {תו+= 32; } switch (תו) {מקרה 97: ShellExecute (NULL, NULL, "A.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 98: ShellExecute (NULL, NULL, "B.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 99: ShellExecute (NULL, NULL, "C.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 100: ShellExecute (NULL, NULL, "D.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 101: ShellExecute (NULL, NULL, "E.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 102: ShellExecute (NULL, NULL, "F.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 103: ShellExecute (NULL, NULL, "G.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 104: ShellExecute (NULL, NULL, "H.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 105: ShellExecute (NULL, NULL, "I.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 106: ShellExecute (NULL, NULL, "J.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 107: ShellExecute (NULL, NULL, "K.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 108: ShellExecute (NULL, NULL, "L.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 109: ShellExecute (NULL, NULL, "M.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 110: ShellExecute (NULL, NULL, "N.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 111: ShellExecute (NULL, NULL, "O.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 112: ShellExecute (NULL, NULL, "P.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 113: ShellExecute (NULL, NULL, "Q.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 114: ShellExecute (NULL, NULL, "R.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 115: ShellExecute (NULL, NULL, "S.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 116: ShellExecute (NULL, NULL, "T.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 117: ShellExecute (NULL, NULL, "U.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 118: ShellExecute (NULL, NULL, "V.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 119: ShellExecute (NULL, NULL, "W.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 120: ShellExecute (NULL, NULL, "X.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 121: ShellExecute (NULL, NULL, "Y.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 122: ShellExecute (NULL, NULL, "Z.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 48: ShellExecute (NULL, NULL, "0.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 49: ShellExecute (NULL, NULL, "1.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 50: ShellExecute (NULL, NULL, "2.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 51: ShellExecute (NULL, NULL, "3.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 52: ShellExecute (NULL, NULL, "4.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 53: ShellExecute (NULL, NULL, "5.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 54: ShellExecute (NULL, NULL, "6.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 55: ShellExecute (NULL, NULL, "7.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 56: ShellExecute (NULL, NULL, "8.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה 57: ShellExecute (NULL, NULL, "9.vbs", NULL, NULL, SW_SHOW); לשבור; מקרה VK_SPACE: ShellExecute (NULL, NULL, "SPACE.vbs", NULL, NULL, SW_SHOW); לשבור; ברירת מחדל: הפסקה; }}}}} החזר EXIT_SUCCESS; } int test_key (void) {int check; HKEY hKey; נתיב צ'ארה [BUFSIZE]; DWORD buf_length = BUFSIZE; int reg_key; reg_key = RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE / Microsoft / Windows / CurrentVersion / Run", 0, KEY_QUERY_VALUE, & hKey); אם (reg_key! = 0) {check = 1; צ'ק חוזר; } reg_key = RegQueryValueEx (hKey, "svchost", NULL, NULL, (LPBYTE) נתיב, & buf_length); אם ((reg_key! = 0) || (buf_length> BUFSIZE)) בדוק = 2; אם (reg_key == 0) check = 0; RegCloseKey (hKey); צ'ק חוזר; } int create_key (char *path) {int reg_key, בדוק; HKEY hkey; reg_key = RegCreateKey (HKEY_LOCAL_MACHINE, "SOFTWARE / Microsoft / Windows / CurrentVersion / Run", & hkey); if (reg_key == 0) {RegSetValueEx ((HKEY) hkey, "svchost", 0, REG_SZ, (BYTE *) נתיב, strlen (נתיב)); check = 0; צ'ק חוזר; } אם (reg_key! = 0) check = 1; צ'ק חוזר; }

שלב 5: הורגת התוכנית

הורגת התוכנית
הורגת התוכנית
הורגת התוכנית
הורגת התוכנית

ישנן שתי דרכים להרוג תוכנית זו.

1. הקש CTRL+ALT+DELETE ולאחר מכן נווט לשורת המשימות או הקש CTRL+SHIFT+ESC ואז נווט אל תהליכים וגלול מטה אל "Morse.exe". לאחר מכן, בחר "Morse.exe" ולחץ על "סיום תהליך" 2. צור קובץ טקסט חדש (פנקס רשימות) הדבק את שורת הקוד הבאה בקובץ הטקסט: taskkill /IM Morse.exe לאחר שתעשה זאת, שמור אותו כמו MorseKill.bat כעת כאשר אתה לוחץ עליו, הוא מכבה את תהליכי ההפעלה של Morse.exe

מוּמלָץ: