Skip to content

Commit e291909

Browse files
authored
Jiné barvy, přehlednější text(?) a opravy.
1 parent 74cd5e9 commit e291909

File tree

2 files changed

+66
-27
lines changed

2 files changed

+66
-27
lines changed

spam.cpp

+53-23
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
#define NOMINMAX
22
#define WHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
33
#define YELLOW FOREGROUND_RED | FOREGROUND_GREEN
4-
#define BGREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
4+
#define B_RED FOREGROUND_RED | FOREGROUND_INTENSITY
5+
#define B_GREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
6+
#define B_BLUE FOREGROUND_BLUE | FOREGROUND_INTENSITY
57

68
#include <iostream>
79
#include <string>
@@ -14,54 +16,82 @@ using namespace std;
1416

1517
int main() {
1618

19+
// Promìnné
1720
string ans;
18-
UINT codepage;
21+
UINT codepage = 1250;
1922
string sLocale;
2023
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
2124

25+
// Základní nastavení
2226
setlocale(LC_ALL, "cs_CZ");
23-
SetConsoleTextAttribute(hConsole, YELLOW);
27+
SetConsoleCP(1250);
28+
SetConsoleTextAttribute(hConsole, B_RED);
2429

25-
cout << "Chcete editovat nastavení? (ano/ne): ";
30+
cout << "Editovat adv. nastavení? (ano/ne): ";
2631
cin >> ans;
2732

2833
if (ans == "ano") {
2934

35+
Q1:
3036
cout << "\nProdleva mezi repeticemi (ms): ";
3137
cin >> delay;
32-
cout << "Prodleva nastavena na základní (" << delay << ")ms.\n\n";
38+
39+
if (!cin) {
40+
41+
flushCin("Neplatná prodleva. Zadejte jinou.");
42+
goto Q1;
3343

34-
cout << "Codepage: ";
44+
}
45+
Q2:
46+
cout << "\nCodepage: ";
3547
cin >> codepage;
36-
37-
cout << "Locale: ";
38-
cin >> sLocale;
3948

49+
if (!cin) {
50+
51+
flushCin("Neplatný codepage. Zadejte jiný.");
52+
goto Q2;
53+
54+
}
55+
Q3:
56+
cout << "\nLocale: ";
57+
cin >> sLocale;
58+
59+
if (!cin || sLocale.length() < 4 || sLocale.length() > 10) {
60+
61+
flushCin("Neplatný locale. Zadejte jiný.");
62+
goto Q3;
63+
64+
}
65+
66+
SetConsoleTextAttribute(hConsole, B_GREEN);
67+
cout << "\nNastaveno.\n";
4068
}
41-
else { // Cokoliv jiného než "ano" se bere jako ne
69+
else { // Cokoliv jiného než "ano" se bere jako ne
4270

4371
delay = 30;
44-
cout << "\nProdleva nastavena na základní (" << delay << "ms).\n";
45-
4672
codepage = 1250;
47-
locale = "cs_CZ";
73+
sLocale = "cs_CZ";
74+
75+
SetConsoleTextAttribute(hConsole, B_GREEN);
76+
cout << "\nProdleva nastavena na základní (" << delay << "ms).\n";
77+
cout << "Locale nastaven na základní (" << sLocale << ").\n";
78+
cout << "Codepage nastaven na základní (" << codepage << ").\n";
4879

4980
}
50-
setlocale(LC_ALL, sLocale);
51-
cout << "Locale nastaven na základní (" << sLocale << ").\n";
52-
SetConsoleCP(codepage);
53-
cout << "Codepage nastaven na základní (" << codepage << ").\n\n";
5481

55-
cout << "(c) Petr Šácha 2022. Podporuje diakritiku.\n";
56-
cout << "Použitím programu souhlasíte se samostatností Míkovic.\n";
82+
setlocale(LC_ALL, sLocale.c_str());
83+
SetConsoleCP(codepage);
84+
85+
SetConsoleTextAttribute(hConsole, WHITE);
86+
cout << "\n(c) Petr Šácha 2022. Podporuje diakritiku.\n";
87+
cout << "Použitím programu souhlasíte se samostatností Míkovic.\n";
5788
cout << "Co chcete spamovat? -> ";
5889

59-
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // jinak nebude kvůli cin-u fungovat getline
90+
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // jinak nebude kvùli cin-u fungovat getline
6091
getline(wcin, wts);
6192

62-
SetConsoleTextAttribute(hConsole, BGREEN);
63-
64-
cout << "\nHotovo. Držte F12 pro spam.\n";
93+
SetConsoleTextAttribute(hConsole, B_GREEN);
94+
cout << "\nHotovo. Držte F12 pro spam.\n";
6595

6696
while(true) {
6797

spam.h

+13-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
#include <locale>
55
#include <Windows.h>
66

7-
std::wstring wts;
7+
using namespace std;
8+
9+
wstring wts;
810
int delay;
911

1012
void sendText() {
11-
12-
13-
13+
1414
INPUT enter;
1515
enter.ki.wVk = 0x0D;
1616
enter.type = INPUT_KEYBOARD;
@@ -58,3 +58,12 @@ void sendText() {
5858

5959
Sleep(delay);
6060
}
61+
62+
void flushCin(string response) {
63+
64+
cin.clear();
65+
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
66+
67+
cout << response << "\n";
68+
69+
}

0 commit comments

Comments
 (0)