Открытие окна Windows Explorer в C ++

0

Недавно я написал следующий код для школьного проекта; с моей целью сделать базовую программу шифрования. В настоящее время для шифрования файла с помощью этой программы имя файла должно быть известно и вводиться в консоль вручную, включая расширение файла. Чтобы улучшить удобство использования программы, я хотел реализовать функцию для открытия окна проводника Windows, чтобы пользователь мог выбрать файл, который они хотят зашифровать. После долгих поисков в Интернете я не смог найти способ реализовать это в своем коде. Поэтому мой вопрос заключается в том, существует ли эта функция в библиотеке C++, и если да, то как я могу реализовать ее в своем коде.

#include    <iostream>  
#include    <fstream>       
#include    <stdio.h>      
#include    <math.h>
using namespace std;

#define     ENCRYPTION_FORMULA      (int) Byte * 25  
#define     DECRYPTION_FORMULA      (int) Byte / 25 

int Encrypt (char * FILENAME, char * NEW_FILENAME)
{
std::ifstream inFile;   
std::ofstream outFile;                 
char Byte;          
inFile.open(FILENAME, ios::in | ios::binary);       
outFile.open(NEW_FILENAME, ios::out | ios::binary); 

    while(!inFile.eof())
{
    char NewByte;
    Byte = inFile.get();
    if (inFile.fail())
        return 0;
    NewByte = ENCRYPTION_FORMULA;
    outFile.put(NewByte);
}

inFile.close();     
outFile.close();    

return 1; 
}


int Decrypt (char * FILENAME, char * NEW_FILENAME)
{
std::ifstream inFile;
std::ofstream outFile;
char Byte;
inFile.open(FILENAME, ios::in | ios::binary);
outFile.open(NEW_FILENAME, ios::out | ios::binary);

while(!inFile.eof())
{
    char NewByte;
    Byte = inFile.get();
    if (inFile.fail())
        return 0;
    NewByte = DECRYPTION_FORMULA;
    outFile.put(NewByte);
}

inFile.close();
outFile.close();

return 1;
}


    int main()
    {

char EncFile[200];      
char NewEncFile[200];   
char DecFile[200];      
char NewDecFile[200];   
int Choice;         
cout << "NOTE: You must encrypt the file with the same file extension!"<<endl;
cout << "Enter 1 to Encrypt / 2 to Decrypt"<<endl;
cin >> Choice;  

switch(Choice)
{
case 1:
    cout << "Enter the current Filename:    ";
    cin >> EncFile; 
    cout << "Enter the new Filename:    ";
    cin >> NewEncFile;  
    Encrypt(EncFile, NewEncFile);   
    break;

case 2: 
    cout << "Enter the current Filename:    ";
    cin >> DecFile;
    cout << "Enter the new Filename:    ";
    cin >> NewDecFile;
    Decrypt(DecFile, NewDecFile);   
    break;
}


return 0;   //Exit!

}

Теги:
encryption

1 ответ

0
Лучший ответ

Диалог "открытый файл", на который вы ссылаетесь, является частью Windows API. Чтобы добавить его, вам нужно написать кучу кода, и это, вероятно, не стоит для этой задачи. Если вы все равно хотите это сделать, прочитайте об этом в MSDN.

  • 0
    На самом деле это не так сложно. GetConsoleWindow всего знать, что вам нужен HWND из GetConsoleWindow .
  • 0
    Спасибо за это, очень полезный ответ. Знаете ли вы какие-либо учебные пособия, которые показывают, как реализовать это, в некоторой степени? или примеры кода, которые показывают, как другие реализовали это в прошлом?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню