Блокирование файлов
Теперь обсудим, как можно защитить свои файлы без кодировки. Фокус заключается в том, что наш файл будет использоваться нашей программой, и получить к нему доступ из любого приложения будет невозможно. Хотя этот метод не так уж и сложен, его используют крутые программы, за которые люди выкладывают немалые деньги. Итак, создадим новое приложение и разместим на форме одно поле редактирования Edit1, три кнопки Button1, Button2, Button3 и компонент OpenDialog1 так, как показано на рис. 3. Кнопка Button1 будет служить для выбора файла, Button2 — для включения защиты (как гордо звучит :-)), Button3 — для ее выключения. Для блокирования файла будем использовать функцию FileOpen, которая прописана в файле SysUtils.hpp. Синтаксис функции такой: int FileOpen(const System::AnsiString FileName, int Mode). Функция открывает файл FileName в режиме Mode. При успешном выполнении функция возвращает дескриптор, а при неуспешном — значение -1. В качестве режима Mode можно использовать следующие константы:
fmOpenRead — открыть только для чтения;
fmOpenWrite — открыть для записи;
fmOpenReadWrite — открыть для чтения и записи;
fmShareExclusive — запрет другим приложениям читать и записывать в файл;
fmShareDenyWrite — запрет другим приложениям записывать в файл;
fmShareDenyRead — запрет другим приложениям читать из файла;
fmShareDenyNone — полный доступ к файлу для других приложений.
Иконки файлов
Не подскажете как на файлы определенного расширения поставить иконку? Тоесть у меня есть приложения, допустим WindowsFormsApplication1, оно работает со своими файлами допустим с файлами .myfiles Так вот как на все файлы такого типа програмно поставить какуюто иконку? Надеюсь так можно в C#
Еще второй вопросик :)
Код:
Вот нашел такую статейку, но там идет речь о Borlan C++ Builder. Возможно ли так сделать и на C#?
Большое спасибо.
Как создать свой тип файлов программно + MSDN: Registering a New File Type
2) MSDN: File.Open Method (String, FileMode, FileAccess, FileShare). Параметр FileShare указывает уровень доступа к файлу для других потоков.
1) STFF:
2) MSDN: File.Open Method (String, FileMode, FileAccess, FileShare). Параметр FileShare указывает уровень доступа к файлу для других потоков.
Если в курсе, подскажи пожалуйста как такое можно сделать?
Спасибо.
пост.
Последняя строка кода заносит значение в реестр, которое содержит путь к твоей программе и параметры запуска
%1 - земеняется на путь к файлу который открывают с помощью программы.
Остается во время исполнения проверять свойство Enviroment.CommandLine
Про Drag & Drop файлов тут
В приведенной ссылке есть
Последняя строка кода заносит значение в реестр, которое содержит путь к твоей программе и параметры запуска
Код:
RegKey.SetValue("", "\""+Application.ExecutablePath+"\" \"%1\"");
%1 - земеняется на путь к файлу который открывают с помощью программы.
Остается во время исполнения проверять свойство Enviroment.CommandLine
Про Drag & Drop файлов тут
Как создать свой тип файлов программно под более читаемый и наглядный для моег программы.
И теперь ятак понял когда я дабл клик на файле то в Environment.CommandLine будет полный путь к файлу?
Ухх, спасибо огромное, я какраз немного переделал тот текст из статьи
И теперь ятак понял когда я дабл клик на файле то в Environment.CommandLine будет полный путь к файлу?
Как создать свой тип файлов программно под более читаемый и наглядный для моег программы.
И теперь ятак понял когда я дабл клик на файле то в Environment.CommandLine будет полный путь к файлу?[/QUOTE]
мм чот я непойму, вот когда я просто запускаю прогу то в команд лайн находится D:\Myprogram.vhost.exe
а когда файл клацаю то "D:\Myprogram.exe" "D:\Myfile.xyz"
ет так и должно быть?
[QUOTE='[Veter];232714']Ухх, спасибо огромное, я какраз немного переделал тот текст из статьи
И теперь ятак понял когда я дабл клик на файле то в Environment.CommandLine будет полный путь к файлу?[/QUOTE]
мм чот я непойму, вот когда я просто запускаю прогу то в команд лайн находится D:\Myprogram.vhost.exe
а когда файл клацаю то "D:\Myprogram.exe" "D:\Myfile.xyz"
ет так и должно быть?
а когда файл клацаю то "D:\Myprogram.exe" "D:\Myfile.xyz"
ет так и должно быть?[/quote]
Да, первым агрументом командной строки всегда идет полный путь к исполняемому файлу
Все спасибо огромнейшее Ap0k. Разобрался я как ето делается и уже вчера вечером написал :)