#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
#include <winioctl.h>
#include <winbase.h>
#include <iomanip>
#include <typeinfo>
using namespace std;
#define MAX_SZ 0x69
HANDLE hDevice;DWORD lpBytesReturned;
void LockDiska(char disk)
{
string d="\\\\.\\"; d+=disk; d+=":";
const char *p; p=d.c_str();
hDevice = CreateFile (p,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
if (DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Диск" <<disk <<"защищен\n";
else cout << "Не удалось защитить\n";
}
void UnLockDisk()
{
if (DeviceIoControl(hDevice,FSCTL_UNLOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Защита снята\n";
}
int main()
{
char d; cin>> d; //ВВодим имя диска
LockDiska(d); // Защищаем
UnLockDisk(); // Снимаем защиту
return 0;
}
Выполнять корректно несколько раз
Здравствуйте, как можно сделать что бы следующий код можно было корректно выполнять не сколько раз( а то он работает корректно только один раз)
Цитата: xaka
Здравствуйте, как можно сделать что бы следующий код можно было корректно выполнять не сколько раз( а то он работает корректно только один раз)
Спасибо.
Код:
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
#include <winioctl.h>
#include <winbase.h>
#include <iomanip>
#include <typeinfo>
using namespace std;
#define MAX_SZ 0x69
HANDLE hDevice;DWORD lpBytesReturned;
void LockDiska(char disk)
{
string d="\\\\.\\"; d+=disk; d+=":";
const char *p; p=d.c_str();
hDevice = CreateFile (p,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
if (DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Диск" <<disk <<"защищен\n";
else cout << "Не удалось защитить\n";
}
void UnLockDisk()
{
if (DeviceIoControl(hDevice,FSCTL_UNLOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Защита снята\n";
}
int main()
{
char d; cin>> d; //ВВодим имя диска
LockDiska(d); // Защищаем
UnLockDisk(); // Снимаем защиту
return 0;
}
#include <string>
#include <fstream>
#include <windows.h>
#include <winioctl.h>
#include <winbase.h>
#include <iomanip>
#include <typeinfo>
using namespace std;
#define MAX_SZ 0x69
HANDLE hDevice;DWORD lpBytesReturned;
void LockDiska(char disk)
{
string d="\\\\.\\"; d+=disk; d+=":";
const char *p; p=d.c_str();
hDevice = CreateFile (p,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
if (DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Диск" <<disk <<"защищен\n";
else cout << "Не удалось защитить\n";
}
void UnLockDisk()
{
if (DeviceIoControl(hDevice,FSCTL_UNLOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Защита снята\n";
}
int main()
{
char d; cin>> d; //ВВодим имя диска
LockDiska(d); // Защищаем
UnLockDisk(); // Снимаем защиту
return 0;
}
Спасибо.
в смысле несколько раз? для разных дисков?
да, не обязательно для разных можно и для одного.
Код:
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
#include <winioctl.h>
#include <winbase.h>
#include <iomanip>
#include <typeinfo>
using namespace std;
#define MAX_SZ 0x69
HANDLE hDevice;
void LockDiska(char disk)
{
DWORD lpBytesReturned;
string d="\\\\.\\"; d+=disk; d+=":";
const char* p; p=d.c_str();
hDevice = CreateFile (p,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
if (DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Диск" <<disk <<"защищен\n";
else cout << "Не удалось защитить\n";
}
void UnLockDisk()
{
DWORD lpBytesReturned;
if (DeviceIoControl(hDevice,FSCTL_UNLOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Разблокирован диск\n";
CloseHandle(hDevice);
}
int main()
{
char disk; cin>>disk;
LockDiska(disk);
UnLockDisk();
cin>>disk;
LockDiska(disk);
UnLockDisk();
return 0;
}
#include <string>
#include <fstream>
#include <windows.h>
#include <winioctl.h>
#include <winbase.h>
#include <iomanip>
#include <typeinfo>
using namespace std;
#define MAX_SZ 0x69
HANDLE hDevice;
void LockDiska(char disk)
{
DWORD lpBytesReturned;
string d="\\\\.\\"; d+=disk; d+=":";
const char* p; p=d.c_str();
hDevice = CreateFile (p,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
if (DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Диск" <<disk <<"защищен\n";
else cout << "Не удалось защитить\n";
}
void UnLockDisk()
{
DWORD lpBytesReturned;
if (DeviceIoControl(hDevice,FSCTL_UNLOCK_VOLUME,NULL,0, NULL,0,&lpBytesReturned,0)) cout <<"Разблокирован диск\n";
CloseHandle(hDevice);
}
int main()
{
char disk; cin>>disk;
LockDiska(disk);
UnLockDisk();
cin>>disk;
LockDiska(disk);
UnLockDisk();
return 0;
}