procedure TForm1.btnStartClick(Sender: TObject); var i: Integer; s: string; bshift: Boolean; begin Sleep(3000); s := mmoSrc.Lines.Text; for i := 1 to Length(s) do begin bshift := False; if (s[i] in ['A'..'Z']) then begin bshift := True; end; if (s[i] in ['a'..'z']) then begin s[i] := UpCase(s[i]); end; if s[i] = '.' then begin keybd_event(190, 0, 0, 0); keybd_event(190, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = ',' then begin keybd_event(188, 0, 0, 0); keybd_event(188, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '-' then begin keybd_event(189, 0, 0, 0); keybd_event(189, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '_' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(189, 0, 0, 0); keybd_event(189, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '*' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(56, 0, 0, 0); keybd_event(56, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '(' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(57, 0, 0, 0); keybd_event(57, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = ')' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(48, 0, 0, 0); keybd_event(48, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '!' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(49, 0, 0, 0); keybd_event(49, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = ';' then begin keybd_event(186, 0, 0, 0); keybd_event(186, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = ':' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(186, 0, 0, 0); keybd_event(186, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '=' then begin keybd_event(187, 0, 0, 0); keybd_event(187, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '+' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(187, 0, 0, 0); keybd_event(187, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '[' then begin keybd_event(219, 0, 0, 0); keybd_event(219, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = ']' then begin keybd_event(221, 0, 0, 0); keybd_event(221, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '%' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(53, 0, 0, 0); keybd_event(53, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '>' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(190, 0, 0, 0); keybd_event(190, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '''' then begin keybd_event(222, 0, 0, 0); keybd_event(222, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '"' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(222, 0, 0, 0); keybd_event(222, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '{' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(219, 0, 0, 0); keybd_event(219, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else if s[i] = '}' then begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(221, 0, 0, 0); keybd_event(221, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end else begin if bshift then begin keybd_event(VK_SHIFT, 0, 0, 0); end; keybd_event(Ord(s[i]), 0, 0, 0); keybd_event(Ord(s[i]), 0, KEYEVENTF_KEYUP, 0); if bshift then begin keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end; end; Sleep(55); end; end;