Click here to Skip to main content
16,019,140 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: Type of array and printf specifiers Pin
k505420-Sep-23 5:36
mvek505420-Sep-23 5:36 
AnswerRe: Type of array and printf specifiers Pin
CPallini20-Sep-23 5:51
mveCPallini20-Sep-23 5:51 
QuestionHow to get disk model and serial number for the disk Windows is installed on Pin
JohnCodding19-Sep-23 20:41
JohnCodding19-Sep-23 20:41 
AnswerRe: How to get disk model and serial number for the disk Windows is installed on Pin
Richard MacCutchan19-Sep-23 21:59
mveRichard MacCutchan19-Sep-23 21:59 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
Valentinor19-Sep-23 22:15
Valentinor19-Sep-23 22:15 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
Richard MacCutchan19-Sep-23 22:26
mveRichard MacCutchan19-Sep-23 22:26 
AnswerRe: How to get disk model and serial number for the disk Windows is installed on Pin
Richard MacCutchan19-Sep-23 22:28
mveRichard MacCutchan19-Sep-23 22:28 
AnswerRe: How to get disk model and serial number for the disk Windows is installed on Pin
JohnCodding19-Sep-23 22:57
JohnCodding19-Sep-23 22:57 
Based on the reply from Richard MacCutchan and Valentinor I ended up using CMD call in C++ and this is the final form of the code after parsing the returns as well:

C++
#include <iostream>
#include <string>
#include <array>

std::string exec(const char* cmd) {
    std::array<char, 128> buffer;
    std::string result;
    std::unique_ptr<FILE, decltype(&_pclose)> pipe(_popen(cmd, "r"), _pclose);
    if (!pipe) {
        throw std::runtime_error("popen() failed!");
    }
    while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
        result += buffer.data();
    }
    return result;
}

void replaceString(std::string& subject, const std::string& search,
    const std::string& replace) {
    size_t pos = 0;
    while ((pos = subject.find(search, pos)) != std::string::npos) {
        subject.replace(pos, search.length(), replace);
        pos += replace.length();
    }
}

void main() {
    std::string index = exec("wmic bootconfig get description");
    index = index.at(index.find_last_of("\\") - 1);
    std::string modelSerialNumber = "wmic diskdrive where DeviceID='\\\\\\\\.\\\\PHYSICALDRIVE" + index + "' get model,serialnumber";
    modelSerialNumber = exec(modelSerialNumber.c_str());
    replaceString(modelSerialNumber, "Model", "");
    replaceString(modelSerialNumber, "SerialNumber", "");
    replaceString(modelSerialNumber, " ", "");
    std::cout << modelSerialNumber;
}


The output will be: KINGSTONSA2000M8250GXXXX_XXXX_XXXX_XXXX_XXXX_XXXX_XXXX_XXXX. For my use case I needed the model and the serial number united like that.

Thank you both for your help!
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
David Crow20-Sep-23 2:08
David Crow20-Sep-23 2:08 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
trønderen20-Sep-23 10:34
trønderen20-Sep-23 10:34 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
jschell20-Sep-23 13:13
jschell20-Sep-23 13:13 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
trønderen21-Sep-23 6:29
trønderen21-Sep-23 6:29 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
Richard MacCutchan20-Sep-23 22:03
mveRichard MacCutchan20-Sep-23 22:03 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
jschell21-Sep-23 4:57
jschell21-Sep-23 4:57 
GeneralRe: How to get disk model and serial number for the disk Windows is installed on Pin
trønderen21-Sep-23 6:23
trønderen21-Sep-23 6:23 
AnswerRe: How to get disk model and serial number for the disk Windows is installed on Pin
Dave Kreskowiak20-Sep-23 13:23
mveDave Kreskowiak20-Sep-23 13:23 
AnswerRe: How to get disk model and serial number for the disk Windows is installed on Pin
Randor 20-Sep-23 22:34
professional Randor 20-Sep-23 22:34 
Questionwrite a progrrame create a calculator (using function) Pin
CHIRAG VAJA 202318-Sep-23 20:15
CHIRAG VAJA 202318-Sep-23 20:15 
AnswerRe: write a progrrame create a calculator (using function) Pin
Victor Nijegorodov18-Sep-23 20:26
Victor Nijegorodov18-Sep-23 20:26 
RantRe: write a progrrame create a calculator (using function) Pin
Richard Deeming18-Sep-23 21:23
mveRichard Deeming18-Sep-23 21:23 
AnswerRe: write a progrrame create a calculator (using function) Pin
jschell19-Sep-23 5:49
jschell19-Sep-23 5:49 
QuestionRe: write a progrrame create a calculator (using function) Pin
CPallini19-Sep-23 20:02
mveCPallini19-Sep-23 20:02 
AnswerRe: write a progrrame create a calculator (using function) Pin
Richard MacCutchan19-Sep-23 21:44
mveRichard MacCutchan19-Sep-23 21:44 
GeneralRe: write a progrrame create a calculator (using function) Pin
CPallini19-Sep-23 21:50
mveCPallini19-Sep-23 21:50 
JokeRe: write a progrrame create a calculator (using function) Pin
trønderen21-Sep-23 6:35
trønderen21-Sep-23 6:35 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.