// ************************************************************************** // * This file is part of the FreeFileSync project. It is distributed under * // * GNU General Public License: http://www.gnu.org/licenses/gpl.html * // * Copyright (C) 2008-2011 ZenJu (zhnmju123 AT gmx.de) * // ************************************************************************** #include #include #define WIN32_LEAN_AND_MEAN #include "windows.h" int wmain(int argc, wchar_t* argv[]) { if (argc <= 1) { std::wcout << "Please enter the filename to be locked as %1 parameter!" << "\n\n"; system("pause"); return -1; } std::wstring filename = argv[1]; //obtain exclusive lock on test file HANDLE hFile = ::CreateFile(filename.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); if (hFile == INVALID_HANDLE_VALUE) { std::wcout << "Error obtaining exclusive lock on test file: " << filename << "\n\n"; system("pause"); return -1; } std::wcout << "File " << filename << " is locked! Press a key to unlock." << "\n\n"; system("pause"); ::CloseHandle(hFile); return 0; }