Introduction: Morse Code Keyboard

About: Electrical Engineer

This program shows you how to create a c++ program that uses a key-logger approach to find the key that is being pressed and generate the Morse code value through the use of the scroll lock light on your keyboard(who even uses that?). This project consists of 41 different programs that interweave and seamlessly interact with one another, translating 3 languages between the programs. There aren't many pictures in this 'ible as the project is based entirely on computer code. For this project, you will need:
A keyboard with a scroll lock light
Notepad
Something that can compile c++ code (I used CodeBlocks)

What did you make? I made a c++ program that translates keystrokes into Morse code through the use of vb script programs that I made.
How did you make it? I spent quite a while researching c++, Morse code, and vb script as I didn't know either and after a while I had the necessary knowledge to make this program. I spent a few hours after the researching to develop a simple keystroke program and then did some more research on opening programs and running programs in the background (undetectable). I used these methods to create a c++ program that runs without interrupting the user or taking up space on the screen (it runs in the background). I also made a batch file that kills the c++ program when the user is done with it.
Where did you make it? I made these programs on the family computer at home, finding time when other family members didn't need to use the computer.
What did you learn? Over the course of this project, I pretty much learned 3 new languages and developed the ability to make that languages "communicate" with each other. I also learned the complexities that come with the different languages and how to get around errors and bugs(I was forced to use my brain... to think...).

Step 1: .vbs Files (creation)

You will need to make a total of 37 vbs files. To make a vbs file, make a new text file and change the extension from .txt to .vbs (save it as ___.vbs).
Now you will need to start naming them. You will need:
Capital Letters A-Z
SPACE
Numbers 0-9

The following steps will go through the code you have to put into each separate file. To do that, you need to right click on the .vbs file and select "edit"

This will be the most time consuming part as each file has completely different code inside. Be careful not to mess up, you DO NOT want to have to start over... (I speak from experience)

Step 2: .vbs Files (content-numbers + Space)

0.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"


1.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"


2.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"


3.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

4.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"


5.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

6.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

7.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

8.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

9.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

SPACE.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wscript.sleep 2100

Step 3: .vbs Files (content-letters)

A.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

B.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

C.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

D.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

E.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

F.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

G.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

H.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

I.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

J.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

K.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

L.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

M.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

N.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

O.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

P.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

Q.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

R.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

S.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

T.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

U.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

V.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

W.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
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.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

Y.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"

Z.vbs
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 900
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"
wscript.sleep 300
wshshell.sendkeys "{SCROLLLOCK}"

Step 4: The C++ Code

Make sure to save this as Morse.cpp or else it won't work.


Prepare yourself...







#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <winuser.h>
#define BUFSIZE 80
using namespace std;
int test_key(void);
int create_key(char *);
int get_keys(void);

int main(void)
{
    HWND stealth;
    AllocConsole();
    stealth=FindWindowA("ConsoleWindowClass",NULL);
    ShowWindow(stealth,0);
    int test,create;
    test=test_key();
    /*if (test==2)
    {
        char *path="c:\\%windir%\\svchost.exe";
        create=create_key(path);
    }
    */
    int t=get_keys();

    return t;

}

int get_keys(void)
{
            short character;
              while(1)
              {

                     for(character=8;character<=222;character++)
                     {
                         if(GetAsyncKeyState(character)==-32767)
                         {


                             if(1==1)
                             {

                                     if((character>64)&&(character<91))
                                     {

                                           character+=32;

                                    }

                                    switch(character)
                                    {
                                                case 97:
                                                ShellExecute( NULL, NULL, "A.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 98:
                                                ShellExecute( NULL, NULL, "B.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 99:
                                                ShellExecute( NULL, NULL, "C.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 100:
                                                ShellExecute( NULL, NULL, "D.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 101:
                                                ShellExecute( NULL, NULL, "E.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 102:
                                                ShellExecute( NULL, NULL, "F.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 103:
                                                ShellExecute( NULL, NULL, "G.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 104:
                                                ShellExecute( NULL, NULL, "H.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 105:
                                                ShellExecute( NULL, NULL, "I.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 106:
                                                ShellExecute( NULL, NULL, "J.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 107:
                                                ShellExecute( NULL, NULL, "K.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 108:
                                                ShellExecute( NULL, NULL, "L.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 109:
                                                ShellExecute( NULL, NULL, "M.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 110:
                                                ShellExecute( NULL, NULL, "N.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 111:
                                                ShellExecute( NULL, NULL, "O.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 112:
                                                ShellExecute( NULL, NULL, "P.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 113:
                                                ShellExecute( NULL, NULL, "Q.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 114:
                                                ShellExecute( NULL, NULL, "R.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 115:
                                                ShellExecute( NULL, NULL, "S.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 116:
                                                ShellExecute( NULL, NULL, "T.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 117:
                                                ShellExecute( NULL, NULL, "U.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 118:
                                                ShellExecute( NULL, NULL, "V.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 119:
                                                ShellExecute( NULL, NULL, "W.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 120:
                                                ShellExecute( NULL, NULL, "X.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 121:
                                                ShellExecute( NULL, NULL, "Y.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 122:
                                                ShellExecute( NULL, NULL, "Z.vbs", NULL, NULL, SW_SHOW );
                                                break;

                                                case 48:
                                                ShellExecute( NULL, NULL, "0.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 49:
                                                ShellExecute( NULL, NULL, "1.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 50:
                                                ShellExecute( NULL, NULL, "2.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 51:
                                                ShellExecute( NULL, NULL, "3.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 52:
                                                ShellExecute( NULL, NULL, "4.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 53:
                                                ShellExecute( NULL, NULL, "5.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 54:
                                                ShellExecute( NULL, NULL, "6.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 55:
                                                ShellExecute( NULL, NULL, "7.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 56:
                                                ShellExecute( NULL, NULL, "8.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                                case 57:
                                                ShellExecute( NULL, NULL, "9.vbs", NULL, NULL, SW_SHOW );
                                                break;
                                               case VK_SPACE:
                                                ShellExecute( NULL, NULL, "SPACE.vbs", NULL, NULL, SW_SHOW );
                                               break;
                                               default:

                                               break;
                                        }

                              }
                    }
                }
            }
            return EXIT_SUCCESS;
}

int test_key(void)
{
    int check;
    HKEY hKey;
    char path[BUFSIZE];
    DWORD buf_length=BUFSIZE;
    int reg_key;
    reg_key=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_QUERY_VALUE,&hKey);
    if(reg_key!=0)
    {
        check=1;
        return check;
    }
    reg_key=RegQueryValueEx(hKey,"svchost",NULL,NULL,(LPBYTE)path,&buf_length);
    if((reg_key!=0)||(buf_length>BUFSIZE))
        check=2;
    if(reg_key==0)
        check=0;
    RegCloseKey(hKey);
    return check;
}

int create_key(char *path)
{
        int reg_key,check;
        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 *)path,strlen(path));
                check=0;
                return check;
        }
        if(reg_key!=0)
                check=1;
        return check;
}

Step 5: Killing the Program

There are two ways to kill this program.

1. Either Press CTRL+ALT+DELETE and then navigate to task bar OR Press CTRL+SHIFT+ESC
Then navigate to processes and scroll down to "Morse.exe". After that, select "Morse.exe" and click "End Process"
2. Create a new text file (notepad)
Paste the following line of code into the text file:
taskkill /IM Morse.exe
once you have done that, save it as MorseKill.bat
now when you click on it, it shuts down the Morse.exe throught processes

UP! Contest

Participated in the
UP! Contest

Make-to-Learn Youth Contest

Participated in the
Make-to-Learn Youth Contest