Programın her açıldığında değişen ismi

RAHATSIZ

Ben Melorices xD
Ultra Member
Katılım
26 May 2021
Konular
9
Mesajlar
342
Tepkime puanı
390
Konum
Adana
RC Point
0
Herkese merhaba dostlarım. Bir proje üzerinde çalışıyorum fakat çok fazla deneme yapmam sonucunda başaramadım. Aranızda illaki bilen vardır ben şöyle açıklayayım. (C++) Program rastgele bir text hazırlayacak içerisinde ve bu hazırladığı rastgele texti hem SetConsoleTitle ile konsol texti yapacak hemde programın ismini yapacak. Bunun için şöyle bir kod hazırladım. Texti konsol texti yapabiliyor fakat program ismi değişmiyor. Bilen arkadaşlar bi yardımcı olabilir mi her haltı yerim bi bu program isimlerine kafam ermez.



cpp:
#include <iostream>
#include <string>
#include <random>
#include <Windows.h>

std::string generateRandomString(int length) {
    const std::string characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    std::random_device rd;
    std::mt19937 generator(rd());
    std::uniform_int_distribution<int> distribution(0, characters.size() - 1);

    std::string randomString;
    for (int i = 0; i < length; ++i) {
        randomString += characters[distribution(generator)];
    }

    return randomString;
}

int main() {
    std::string programName = generateRandomString(10); 
    SetConsoleTitle(programName.c_str());

    std::cout << "Konsol Ismi: " << programName << std::endl;
    std::cout << "Program Ismi: " << programName << std::endl;

    return 0;
}
 

RAHATSIZ

Ben Melorices xD
Ultra Member
Katılım
26 May 2021
Konular
9
Mesajlar
342
Tepkime puanı
390
Konum
Adana
RC Point
0
en son şöyle bir kod tümlecine vardım fakat burda da dosyayı kopyalıyor fakat silme yaparken acces denied yerine geçen 5 numaralı hata kodunu alıyorum. kod :
c++:
#include <windows.h>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>

std::string generateRandomText() {
    std::string randomText;
    const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    const int charsetSize = sizeof(charset) - 1;

    srand(static_cast<unsigned int>(time(nullptr)));

    for (int i = 0; i < 8; ++i) {
        randomText += charset[rand() % charsetSize];
    }

    return randomText;
}

bool copyFile(const std::string& oldFileName, const std::string& newFileName) {
    return CopyFile(oldFileName.c_str(), newFileName.c_str(), FALSE) != 0;
}

bool deleteFile(const std::string& fileName) {
    return DeleteFile(fileName.c_str()) != 0;
}

int main() {
    char buffer[MAX_PATH];
    GetModuleFileName(NULL, buffer, MAX_PATH);
    std::string programPath = buffer;

    if (programPath.empty()) {
        std::cerr << "Dosya adi alinamadi!" << std::endl;
        return 1;
    }

    size_t uzantiNoktasi = programPath.find_last_of("\\/");
    std::string oldAppName = programPath.substr(uzantiNoktasi + 1);

    std::string randomText = generateRandomText();
    std::string newAppName = randomText + ".exe";

    std::string newPath = programPath.substr(0, programPath.length() - oldAppName.length()) + newAppName;

    std::cout << "Calisma dizini: " << programPath << std::endl;

    // Dosyayı kopyala
    if (copyFile(programPath, newPath)) {
        std::cout << "Dosya kopyalandi." << std::endl;

        // Eski dosyayı sil
        if (deleteFile(programPath)) {
            std::cout << "Eski dosya silindi." << std::endl;
            Sleep(55555);
            return 0;
        }
        else {
            DWORD error = GetLastError();
            std::cerr << "Eski dosyayi silme hatasi! Hata kodu: " << error << std::endl;
            Sleep(55555);
            return 1;
        }
    }
    else {
        DWORD error = GetLastError();
        std::cerr << "Dosya kopyalama hatasi! Hata kodu: " << error << std::endl;
        Sleep(55555);
        return 1;
    }
}
 
Üst