#include <Windows.h> #include <iostream> #include <sstream> void setConsoleTitle(const std::string& title) { SetConsoleTitleA(title.c_str()); } void executeCommand(const std::string& command, std::stringstream& output) { FILE* pipe = _popen(command.c_str(), "r"); if (pipe) { char buffer[128]; while (fgets(buffer, sizeof(buffer), pipe) != nullptr) { output << buffer; } _pclose(pipe); } } void displaySectionTitle(const std::string& title, bool found) { const int width = 50; const char lineChar = '-'; std::string sectionLine(width, lineChar); std::string centeredTitle = " " + title + " "; const int titlePadding = (width - centeredTitle.length()) / 2; std::cout << sectionLine << "\n"; if (found) std::cout << "| \x1b[32m" << std::string(titlePadding, ' ') << centeredTitle << std::string(titlePadding, ' ') << "\x1b[0m|\n"; else std::cout << "| \x1b[31m" << std::string(titlePadding, ' ') << centeredTitle << std::string(titlePadding, ' ') << "\x1b[0m|\n"; std::cout << sectionLine << "\n"; } int main() { std::stringstream disk; executeCommand("wmic diskdrive get serialnumber", disk); std::cout << disk.str() << "\n"; std::string currentSerial = "", disk; std::string expectedSerial = "12345678"; if (currentSerial == expectedSerial) { std::cout << "Серийный номер верный. Программа продолжает работу." << std::endl; // Дальнейшая работа программы } else { std::cout << "Серийный номер неверный. Программа завершает работу." << std::endl; return 0; } setConsoleTitle("SecHex-Serials"); return 0; }
У тебя некоторые одноимённые переменные и функции недоделанные, попробуй так #include <Windows.h> #include <iostream> #include <sstream> void setConsoleTitle(const std::string& title) { SetConsoleTitleA(title.c_str()); } std::string executeCommand(const std::string& command) { FILE* pipe = _popen(command.c_str(), "r"); if (pipe) { char buffer[128]; std::string result = ""; while (fgets(buffer, sizeof(buffer), pipe) != nullptr) { result += buffer; } _pclose(pipe); return result; } return ""; } void displaySectionTitle(const std::string& title, bool found) { const int width = 50; const char lineChar = '-'; std::string sectionLine(width, lineChar); std::string centeredTitle = " " + title + " "; const int titlePadding = (width - centeredTitle.length()) / 2; std::cout << sectionLine << "\n"; if (found) std::cout << "| \x1b[32m" << std::string(titlePadding, ' ') << centeredTitle << std::string(titlePadding, ' ') << "\x1b[0m|\n"; else std::cout << "| \x1b[31m" << std::string(titlePadding, ' ') << centeredTitle << std::string(titlePadding, ' ') << "\x1b[0m|\n"; std::cout << sectionLine << "\n"; } int main() { std::string diskOutput = executeCommand("wmic diskdrive get serialnumber"); std::stringstream diskStream(diskOutput); std::string serialNumber; while (std::getline(diskStream, serialNumber)) { // Проверяем, что строка содержит серийный номер if (serialNumber.find_first_not_of(' ') != std::string::npos) { break; } } serialNumber.erase(std::remove(serialNumber.begin(), serialNumber.end(), ' '), serialNumber.end()); serialNumber.erase(std::remove(serialNumber.begin(), serialNumber.end(), '\r'), serialNumber.end()); serialNumber.erase(std::remove(serialNumber.begin(), serialNumber.end(), '\n'), serialNumber.end()); std::cout << "Серийный номер диска: " << serialNumber << "\n"; std::string expectedSerial = "12345678"; if (serialNumber == expectedSerial) { std::cout << "Серийный номер верный. Программа продолжает работу." << std::endl; } else { std::cout << "Серийный номер неверный. Программа завершает работу." << std::endl; return 0; } setConsoleTitle("SecHex-Serials"); return 0; }