Tag: QT

C++ Windows Detect If MBR or GPT PartitionStyle Simple Example

As the title suggest this is a Windows-only example, you may notice that I used it in QT environment from qDebug() helper function, honestly, the only small project that I can think of for this function is one where you would like to change the bootloader, but as I said this is a trivial example.

A few remarks:

  • 1 CreateFile needs to be called from a process that was run as admin in order to work ( require admin in manifest )
  • 2 On MBR Fist sector/boot sector is always writeable
  • 3 L”\\\\.\\PHYSICALDRIVE0″ means the first Volume but the user might have multiple volumes and you should make additional checks

CODE:

void QtClAct::detectHddBootType(){

    HANDLE h = CreateFile ( L"\\\\.\\PHYSICALDRIVE0",
View full article

Shred Function Qt C++ on windows

So, I searched for such a function and, I did find some things on O-Stack, but I rewrote what I found because it didn’t actually work, I tested this function and it works pretty well, I think it has room for improvement as usual but I thought to share it anyway.

So here it is:

bool QtClAct::shred(const QString & fileName, uint RepeatWrite, bool DeleteFileLink) {

  if(RepeatWrite < 1) RepeatWrite = 1;
  QSaveFile file(fileName);
  QFileInfo fi(file.fileName());

  for(int i=0; i < RepeatWrite; i++){ qint64 fileSize = fi.size(); if (! file.open(QIODevice::WriteOnly )) return false; QByteArray block(65536, '\0'); while (fileSize > 0) {
    if (fileSize < block.size()) block.truncate(fileSize);
    qint64 written = file.write(block);
View full article