Всем добрый день, подскажите, как можно привязать файлы (например текстовый) к определённому компьютеру?
Спасибо.
может логичнее было бы поискать прогу для защиты файлов от копирования?
Анализировать железо компьютера и сделать привязку к железу.
как можно привязать файлы (например текстовый) к определённому компьютеру
К копьютеру — никак, а к пользователю этого компа — EFS
В смысле чтобы скопировать нельзя было?
В досовские времена была такая программка — защищала ехе-шники. Дописывала в начало файла свой загрузчик, который проверял метку на жестком диске. Если не совпадает, то основная прога не грузилась.
А сейчас такой разброд и шатание.
Цитата:
может логичнее было бы поискать прогу для защиты файлов от копирования?
Анализировать железо компьютера и сделать привязку к железу.
Нужно несколько компов и что бы они друг с другом взаимодействовали.
К копьютеру — никак, а к пользователю этого компа — EFS
В смысле чтобы скопировать нельзя было?
Как убрать Family Link (Родительский контроль) с телефона? #Shorts
В досовские времена была такая программка — защищала ехе-шники. Дописывала в начало файла свой загрузчик, который проверял метку на жестком диске. Если не совпадает, то основная прога не грузилась.
А сейчас такой разброд и шатание.
Да, если быть точным, то есть некий документ, с ним должно работать пару человек на своих рабочих местах. Нужно, что бы ни один из них не мог слить этот файл к себе домой.
Цитата:
Нужно, что бы ни один из них не мог слить этот файл к себе домой
а почему бы просто не запаролить файл?
Есть варианты?
вот готовое решение — http://www.star-force.ru/solutions/products/sf_content/
Терминальный сервер.
а почему бы просто не запаролить файл?
Файлов много и все постоянно в работе.
Да и если пользователь знает пароль, то весь смысл теряется.
Терминальный сервер.
Добавлено:
Kubermen
вот готовое решение — http://www.star-force.ru/solutions/products/sf_content/
Готовое решение в моём случае от 1,5 миллиона в год
Хотелось бы подешевле
EXformat
Ваша задача практического решения не имеет. Если речь идет о текстовых данных, никто и никак не сможет помешать юзеру тупо скопировать их из окна приложения в новый документ и сохранить его на флэшке. Терминал, EFS, и т.д. это паллиатив. Поможет только против «блондинок», а геморроя добавит немеряно.
Наиболее рациональное решение, это отключение флэшек и CD-RW через групповые политики, запрет передачи файлов через ICQ, установка локального почтовика и жесткий контроль (копирование всей исх.почты в один ящик и регулярный его просмотр) отправляемых вложений. Еще решение: Citrix (публикация приложений) + Lotus Notes (or SharePoint). Но цена такого решения — заоблачная.
Операция не может быть завершена, так как файл или папка открыта в другой программе
P.S. Борьба с инсайдерами дело серьезное (если это не чья-то параноя и есть что защищать), тут только програмными средствами не справиться. Привлеките к решению задачи безопасника.
Говорят, что можно как-то в индексные дескрипторы файла, мас-адрес компьютера прописывать.
И файл, тогда, на другом компе просто существовать не сможет.
Источник: ru-board.club
Привязка файла к программе
Многоуважаемые программисты, в очередной раз взываю к Вашей милости.
Помогите в таком вопросе : написал я программу. она что то вроде хитрого текстового редактора, с разными наворотами. В ней создаются текстовые файлы, с расширением, к примеру, .bom, как так сотворить, что бы при клике на этот .bom открывалась моя программа + кликнутый .bom,
Подскажите куда копать, если что.
Заранее поклон в пол .
Прошу прощения, а тут есть кто нибудь?
Последний раз редактировалось RobinStone, 26.05.2014 в 16:18 .
26.05.2014, 18:19
Let Me Show You
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Вы сказали Спасибо: 4
Поблагодарили 725 раз(а) в 682 сообщениях
Версия Delphi: 7, XE5
Репутация: 59586
procedure TForm1.RegisterFileType(ext: string; FileName: string); var reg: TRegistry; begin reg:=TRegistry.Create; with reg do begin RootKey:=HKEY_CLASSES_ROOT; OpenKey(‘.’+ext,True); WriteString(»,ext+’file’); CloseKey; CreateKey(ext+’file’); OpenKey(ext+’fileDefaultIcon’,True); WriteString(»,FileName+’,0′); CloseKey; OpenKey(ext+’fileshellopencommand’,True); WriteString(»,FileName+’ «%1″‘); CloseKey; Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin RegisterFileType(‘mp3’, Application.ExeName); end;
пример из интернета, ибо в своих исходниках было лень гуглить)
__________________
Пишу программы за еду.
__________________
RobinStone begin r:= TRegistry.Create; with r do begin RootKey:= HKEY_CLASSES_ROOT; OpenKey(‘.bom’, true); WriteString(», ‘Мой текстовик’); CloseKey; CreateKey(‘Мой текстовик’); OpenKey(‘Мой текстовикDefaultIcon’, true); WriteString(», Application.ExeName + ‘, 0’); CloseKey; OpenKey(‘Мой текстовикshellopencommand’, true); WriteString(», Application.ExeName + ‘ %1’); CloseKey; Free; end; .
т.е. регистрируем своё расширение и меняем у него стандартную иконку на другую, в данном случае на значок вашего приложения. Затем следует такое в коде прописать
// RestoreLongName восстанавливает «короткое» имя файла // Это нужно для запуска при получении параметров от проводника // Прога конечно, запустится и так, но с мессагой типа «Файл не найден» Function RestoreLongName(fn: string): string; function LookupLongName(const filename: string): string; var sr: TSearchRec; begin if FindFirst(filename, faAnyFile, sr) = 0 then Result:= sr.Name else Result:= ExtractFileName(filename); SysUtils.FindClose(sr); end; function GetNextFN: string; var i: integer; begin Result:= »; if Pos(‘\’, fn) = 1 then begin Result:= ‘\’; fn:= Copy(fn, 3, length(fn)-2); i:= Pos(», fn); if i <> 0 then begin Result:= Result + Copy(fn, 1, i); fn:= Copy(fn, i + 1, length(fn)-i); end; end; i:= Pos(», fn); if i <> 0 then begin Result:= Result + Copy(fn, 1, i-1); fn:= Copy(fn, i + 1, length(fn)-i); end else begin Result:= Result + fn; fn:= »; end; end; Var name: string; Begin fn:= ExpandFileName(fn); Result:= GetNextFN; Repeat name:= GetNextFN; Result:= Result + » + LookupLongName(Result + » + name); Until length(fn)= 0; End;
в коментах есть описание, пропускаем этот шаг
procedure TFPlay.FormShow(Sender: TObject); var s: string; i: integer; begin // Получены параметры от проводника if ParamCount > 0 then begin s:= ParamStr(1); // Имя файла для открытия // Если в имени файла есть пробелы, то шелл передает // его не целиком, а «кусочками» (особенность системы 🙂 // Надо всё это соединить, не забывая про пробелы for i:= 2 to ParamCount do s:= s + ‘ ‘ + ParamStr(i); s:=RestoreLongName(s); end; end;
теперь в s лежит имя файла переданного для открытия
__________________
Источник: delphisources.ru
Настройка привязки файлов
Захожу в параметры системы -> приложения -> Настройка привязки файлов
начинаю искать, ненахожу
нажимаю добавить, категория text, название graphml, OK
(потом еще надо выбрать добавленное, а не начать редактировать то что было выбрано до добавления)
Шаблоны имен файлов — добавить — *.graphml — OK
приоритет приложений — добавить — выбираю yEd graph editor
нажимаю применить
перезапускаю dolphin, и ничего там не поменялось: по прежнему открывает мои graphml-файлы firefox-ом
закрываю — открываю снова параметры системы -> приложения -> Настройка привязки файлов
и там нет ничего про graphml.
ну не добавляется, черт с ним, редактирую уже существующий тип application/x-graphite
добавляю *.graphml и yEd graph editor
перезапускаю dolphin, и ничего там не поменялось: по прежнему открывает мои graphml-файлы firefox-ом
закрываю — открываю снова параметры системы -> приложения -> Настройка привязки файлов
и там в типе application/x-graphite — yEd graph editor присутствует, а вот *.graphml — отсутствует
kot040188 — 28 Июль, 2016 — 15:15
Вы не пробовали открыть свойства файла и нажать на кнопку «параметры типа файла»? Зачем всё так усложнять?
FeelUs — 28 Июль, 2016 — 16:12
там тип файла application/xml
которому соответствуют шаблоны *.rng, *.xbl, *.xml и *.xsd
Интересно, какое отношение это имеет к *.graphml?
Можно конечно сделать, чтобы все application/xml файлы открывались yEd-ом, но это не то.
Зачем всё так усложнять?
может просто есть какой-то конфигурационный файл?
kot040188 — 28 Июль, 2016 — 16:18
Ну тогда надо убрать шаблон graphml из application/xml и уже тогда привязывать graphml. Всё просто.
FeelUs — 28 Июль, 2016 — 18:03
Источник: kubuntu.ru