Здравствуйте эксперты!!! 1. Не знаете ли как создать через Delphi заблокированный файл. Чтобы его нельзя было с винчестера удалить??? (конечно же не посредствами форматирования). 2. Какие вы знаете методы регистрации(поподробнее plz)
Приветствую Вас, pcgamer! 1. Можно просто открыть и не закрывать файл. Удалить его будет невозможно. Ответ отправлен: 17.08.2002, 18:03 Отправитель: Igoryk Отвечает Pablo
Здравствуйте, pcgamer! Заблокировать файл можно открыв его на запись или чтение в соответствующим доступом разрешения на совместное открытие (помойму называтся DENY_ALL). Ну а просто от автоматического стирания разными програми, то выставить фалу атрибут только для чтения, и чтобы удалить такой файл этот атрут снять можно, всякие NT также позволяются производить доступ к файлам с помощью на строек пользоваетля, т.е. если для фалйа указать что его стирать может только админ, то пользователь и доступом ниже не смогет его стереть.
Ответ отправлен: 17.08.2002, 14:06 Отправитель: Pablo Отвечает baldr
Доброе время суток, pcgamer! 1. Самый простой способ - открыть файл на запись... В это время доступ к файлу любой программой, кроме этой, даже для чтения будет запрещен... Но это надо делать в течение всего времени, пока требуется блокировка. Из-под DOS этот файл удалится легко... Второй способ, который раньше использовали некоторые хакерские группы для всяких приколов: создать файл с именем, которое не обрабатывается системой корректно... Например, с недопустимыми символами в имени или вообще с нулевым именем. Такое сделать, конечно, сложновато, но возможно... А удаляются они только специальными программами типа diskedit... Scandisk их, если все нормально сделано, не видит... 2. Разные. :) Если ты хочешь подробный ответ, уточни, что ты имеешь в виду...
Ответ отправлен: 20.08.2002, 00:34 Отправитель: baldr
Вопрос № 132
Что надо написать в коде кнопки, чтобы при нажатии на нее печатался( из принтера, ес-сно) текст из MEMO1 ? Спасибо
Пришлось полчаса потратить на поиск решения - но результат оправдал затраченные усилия.
Приложение: Ответ отправлен: 19.08.2002, 17:01 Отправитель: Артём Шегеда
Вопрос № 133
Вот тут вопросик возник: Я сделал прорамму, которая Создает новую кнопку в меню, вызываемом правой кнопкой мыши на файле .txt и переименовывает в .html Procedure TForm1.OpenFFile(FileName:String); var n:integer;f:string; Begin f:=filename; while pos('.',f)<>0 do begin delete(f,pos('.',f),80); end; Renamefile(filename,f+'.html'); form1.close; End; procedure TForm1.FormShow(Sender: TObject); var DOSParam: string; I:Integer; begin DOSParam:=''; IF ParamCount >= 1 then Begin For I:=1 to ParamCount-1 Do DOSParam:=DOSParam+ParamStr(I)+' '; DOSParam:=DOSParam+ParamStr(ParamCount); OpenFFile(DOSParam) End; end; initialization randomize; end. Но здесь возникла проблема, если например я щелкаю по файлу c:Текстовый
документ.txt программа переименовывает его в ТЕКСТО~1.txt. Подскажите, почему и как удалить енто сокращение файла.
Добрый день, PC Gamer! Это не программа переименовывает его в такой вид это этот файл имеет такой вид в короткой форме пердствления 8.3, т.е. имя состоит из 8-и символов, а расширение из 3-х, тогда как в Виндах имена файлом имеют ограничение около 254 символов. ДОС сам по себе не может читать имена в виде как их представляет Виндовс, а только в виде 8.3. Ответ отправлен: 17.08.2002, 22:53 Отправитель: Pablo Отвечает Necro
Здравствуйте, PC Gamer! Это глупость какая-то, а не программа... Сначала все параметры выписываются в одну строку, затем всё, что идет после первой точки убирается, а потом файл с именем <список файлов, разделённый пробелами> переименовывается в <то, что было до первой точки>.html... Она и не должна работать. Если здесь приведена не вся программа, то скорее всего, судя по имени переменной, ты используешь досовую процедуру, а она длинных имен и имен с пробелами не понимает и заменяет их на <первые 6 букв>~<номер такого файла>.<расширение>, заменяя все русские буквы заглавными... А это и есть твой результат. Не проще ли так(создай консольное приложение и замени весь текст на приложение)? Программа не выводит своего окна, не занимает много места в памяти и на диске... Да, и ещё совет - замени поиск первой точки на поиск последней. Нередко встречаются файлы типа
"15.If only tears could bring you.txt" - тексты песен и т.п.
Приложение: Ответ отправлен: 17.08.2002, 21:58 Отправитель: Necro Отвечает Painbringer
Приветствую Вас, PC Gamer! походу проблема в paramstr (хотя у меня она работает с динными именами нормально)... !!! БЛИН! ЧУВАК! ТЕБЯ СО СРЕДСТВАМИ ОТЛАДКИ РАБОТАТЬ ВООБЩЕ НЕ УЧИЛИ?! ДЫК ПОСТАВЬ ТЫ БРЯКПОИНТ ВНУТРИ ЦИКЛА И СМОТРИ КТО ТЕБЕ ТАМ ЧЕГО ВОЗВРАЩАЕТ! А ТО Ж НИЧЕМУ И НЕ НАУЧИШСЯ! !!! Ответ отправлен: 19.08.2002, 00:09 Отправитель: Painbringer
Вопрос № 134
Я делаю текстовой редактор на Delphi. Мне нужно, чобы при щелчке на текстовом файле открывался именно мой редактор c загруженным текстом из ентого файла, в реестре я уже все прописал (HKEY_CURRENT_ROOT xtfile). Но проблема в том, что программа открывается, а Memo1 остается пустым??? :0 Замучался составлять ентот вопрос :0
Доброе время суток, PC Gamer! А кто будет файл- то открывать? Пушкин? Имя текстового файла передается твоей программе как параметр. Вот и обрабатывай его. Ответ отправлен: 18.08.2002, 19:02 Отправитель: ROM Отвечает Pablo
Приветствую тебя, PC Gamer! А в твою прогу через параметры коммандной строки что передается? Ты ее вообще то обрабатываешь как надо?! Ответ отправлен: 18.08.2002, 17:15 Отправитель: Pablo Отвечает Painbringer
Добрый день, PC Gamer! А прогу приложить никак? конечно - это большая комерческая тайна :) но хотя бы маленький глючный кусок где ты этот свой loadfromfile вызываешь! Ответ отправлен: 19.08.2002, 00:09 Отправитель: Painbringer Отвечает Артём Шегеда
Добрый день, PC Gamer!
Уже бы опубликовал свой "шедевр" в чистом виде - мы бы его по косточкам разобрали, косточки перемыли и вправили бы на место. Если твой код похож на тот, что в приложении - но всё равно не работает, то смотри в реестре: ты что-то не так прописал. Не забыл ли ты указать программе параметр "%1"?
Приложение: Ответ отправлен: 19.08.2002, 12:53 Отправитель: Артём Шегеда
Вопрос № 135
При щелчке правой на файле .TXT Появляется меню в котором, добавлена новая кнопка RENAME (в реестре сделал). Нажимаешь на нее и расширение файла, на котором ты кликнул меняется на новое, которое ты укажешь в InputBox. Все получилось но проблема в том, что сам файл переменовывается с сокращениями в имени. Почему??? Как от ентого избавится??? Объясните кто можешь (только не надо критиковать функцию OpenFFile, там по-моему все верно. Это видимо с параметрами какой-то косяк):) unit Unit1; interface uses SysUtils,Classes, Forms,REGISTRY,Windows,dialogs; type TForm1 = class(TForm) procedure FormShow(Sender: TObject); Procedure OpenFFile(FileName:String); procedure FormCreate(Sender: TObject); private { Private declarations } public ffilename:string; { Public declarations } end; var
Form1: TForm1; implementation {$R *.DFM}
Procedure TForm1.OpenFFile(FileName:String); var n:integer;f:string;s:string; Begin f:=filename; while pos('.',f)<>0 do begin delete(f,pos('.',f),80); end; s:=InputBox('Новое расширение','Ввдите новое расширение для файла',''); Renamefile(filename,f+'.'+s); form1.close; End;
procedure TForm1.FormShow(Sender: TObject); begin OpenFFile(paramstr(1)); end; end.
Здравствуйте, PC Gamer! Я скопировал твою программу один-в-один, запустил - всё работает. Может, у тебя с виндой проблемы? Ответ отправлен: 18.08.2002, 21:22 Отправитель: Necro Отвечает Артём Шегеда
Здравствуйте, PC Gamer!
Программа в приложении устрашит любого своими размерами. Сохрани её в файл RenameFile.DPR и открой Делфями.
Приложение: Ответ отправлен: 19.08.2002, 13:11 Отправитель: Артём Шегеда
Вопрос № 136
Приветствую всех! Вопрос такой: есть прога, в которой 5-6 форм можно ли закинуть формы в ДЛЛьку, что бы уменьшить размер ехе-шника, и вызывать их из библиотеки и как это сделать? Как ставить балы за ответы? В письмах ничего такого не наблюдается( Заранее спасибо.
Добрый день, Victor! Создавай формы во время выполнения что-то типа: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormaShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Forma: TForm; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Forma:= TForm.Create(Self) ; with Forma do begin Left := Random(self.ClientWidth); Top := Random(self.Height); width:=150; Height:=250; OnShow:= FormaShow; Name:='MyForm'; Caption:='Это новая форма'; Tag:=155;
Show; end; end; procedure TForm1.FormaShow(Sender: TObject); begin MessageDlg('Ща будет новая форма.', mtInformation, [mbOk], 0); end; end. Ответ отправлен: 19.08.2002, 08:47 Отправитель: Sanya Отвечает Pablo
Доброе время суток, Victor! Ну форму лучше не в DLLку, а в BPLку засунунть. А делается это довольно просто тебе просто надо создать новую BPL и сунуть в нее форму, т.е. создать в BPL-проекте файл CPP связанный с файлом DFM, то есть так же как и в обычном проекте. Ответ отправлен: 21.08.2002, 22:53 Отправитель: Pablo
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.