Загрузка...

Help please the code doesnt work

Thread in C/C++ created by EkZoRtSiSt Dec 7, 2023. 113 views

  1. EkZoRtSiSt
    EkZoRtSiSt Topic starter Dec 7, 2023 0 Jul 16, 2023
    #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;
    }
     
  2. alsoso_guru
    alsoso_guru Dec 9, 2023 12 Sep 30, 2023
    У тебя некоторые одноимённые переменные и функции недоделанные, попробуй так

    #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;
    }
     
Loading...
Top