Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизДобавление программы в реестр Найти похожие ветки
← →
Antonmm (2004-07-30 21:44) [0]Как добавить свою программу в реестр?
← →
GuAV © (2004-07-30 21:46) [1]В реестр добавляют не программы, а ключи и параметры. Используй TRegistry.
← →
Кириешки © (2004-07-30 22:11) [2]Полностью согласен с Antonmm
А чтоба добавить ключи и параметры нада сделать типа так
Uses Registry
procedure TForm1.Dobavlenie_V_Reestr;
var
reg : tregistry;
begin
REG := TRegistry.Create;
REG.RootKey := //Раздел реестра например HKEY_LOCAL_MACHINE;
REG.OpenKey("Тута нада написать адрес куда дабавляется праграмма",true);
REG.WriteString("Название праграммы", Application.exename);
REG.CloseKey;
REG.Destroy;
end;
Прастите за бизграматность.
← →
olookin © (2004-07-30 22:28) [3]Вот как добавить расширения и Открыть с помощью
procedure PutDataToRegistry(FileList,AllFileList: array of Ansistring;
IconIndex: array of integer);
var Reg: TRegistry;
i,j: integer;
s: string;
begin
Wait.Operation(0,Length(AllFileList),
"Registry updating. Please, wait...",""); Reg:=TRegistry.Create;
with Reg do begin RootKey:=HKEY_LOCAL_MACHINE; LazyWrite:=False;
for i:=0 to Length(AllFileList)-1 do begin
Wait.GaugeStatus; s:="\Software\Classes\";
if KeyExists(s+"."+AllFileList[i]) then
DeleteKey(s+"."+AllFileList[i]); s:=s+"your prog "+AllFileList[i]+"file";
if KeyExists(s) then begin DeleteKey(s+"\DefaultIcon");
DeleteKey(s+"\Shell"); DeleteKey(s+"\Shell\open");
DeleteKey(s+"\Shell\open\command");
DeleteKey(s+"\Shell\Run with your prog\");
DeleteKey(s+"\Shell\Run with your prog\command"); DeleteKey(s); end;
for j:=0 to Length(FileList)-1 do
if FileList[j]=AllFileList[i] then begin
s:="\Software\Classes\"; OpenKey(s+"."+FileList[j],true);
WriteString("","your prog "+FileList[j]+"file"); CloseKey;
s:=s+"your prog "+FileList[j]+"file"; OpenKey(s+"\DefaultIcon",true);
WriteString("",Application.ExeName+","+IntToStr(IconIndex[j])); CloseKey;
OpenKey(s+"\Shell\open\command",true);
WriteString("",Application.ExeName+" %1"); CloseKey;
OpenKey(s+"\Shell\Run with your prog\command",true);
WriteString("","""+Application.ExeName+"" "%1""); CloseKey;
break; end; end; Free; end; Wait.Operation(1,0,"","");
end;
← →
Dok_3D © (2004-07-30 23:17) [4]Если бы меня не ломало, то и я проявил бы интеллект и написал, как все же засунуть программу в реестр, в бинарный параметр, целиком. И ответил бы на вопрос автора.
Но увы :)
← →
GuAV © (2004-07-30 23:55) [5]Кириешки © (30.07.04 22:11) [2]
Это добавит не программу, а путь к исполнимому файлу к программе.
olookin © (30.07.04 22:28) [3]
Гениально. А я не понял вопрос :) Всё же имхо выражатся надо было бы яснее.
Dok_3D © (30.07.04 23:17) [4]
А это делается. Но лишено всякого смысла.
← →
Кириешки © (2004-07-31 09:54) [6]>GuAV © (30.07.04 23:55) [5]
>Это добавит не программу, а путь к исполнимому файлу к программе.
Кириешки © (30.07.04 22:11) [2]
Полностью согласен с Antonmm
А чтоба добавить ключи и параметры нада сделать типа так
← →
Anatoly Podgoretsky © (2004-07-31 12:07) [7]GuAV © (30.07.04 23:55) [5]
Что тебе известно про извращения?
← →
GuAV © (2004-07-31 19:30) [8]
> Полностью согласен с Antonmm
С чем же именно?
> Что тебе известно про извращения?
procedure TMyFileTime.GetSetTime(SetTime: Boolean);
const
TimeProc: array[Boolean] of
function(hFile: THandle; lpCreationTime, lpLastAccessTime,
lpLastWriteTime: PFileTime): BOOL; stdcall
= (GetFileTime, SetFileTime);
var h: THandle;
begin
h:=CreateFile(PChar(Name), GENERIC_READ or $100,
FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if h=INVALID_HANDLE_VALUE then RaiseLastOSError;
try
if not TimeProc[SetTime]
(h, @FTime[1], @FTime[2], @FTime[3]) then
RaiseLastOSError;
finally
CloseHandle(h);
end;
end;
=====================================
function GetLibString(const Lib: PChar;
ID: LongWord; Size: Integer): string;
var hDll: THandle;
begin
hDll := LoadLibrary(Lib);
if hDll=0 then RaiseLastOSError;
try
SetLength(Result, Size);
SetLength(Result, LoadString(hDll, ID, @Result[1], Size));
finally
FreeLibrary(hDll);
end;
end;
procedure CheckFileName(const S: string);
const D="\/:*?"<>|";
var I: Integer;
begin
for I:=1 to Length(D) do
if StrScan(PChar(S), D[I])<>nil then
raise Exception.Create(GetLibString(shell32, 4109, 128));
end;
===================================
procedure Couple(C: array of TComponent);
var I: Integer;
begin
Assert(Odd(High(C)));
for I:=0 to High(C) do
C[I].Tag:=Longint(C[I xor 1]);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
var I: Integer;
begin
...
Couple([btnAddFile, FilenameEdit, btnAddFolder, DirectoryEdit]);
...
end;
procedure TfrmMain.btnAddFileFolderClick(Sender: TObject);
begin
AddSome(TFilenameEdit(TComponent(Sender).Tag).FileName);
end;
procedure TfrmMain.FilenameEditChange(Sender: TObject);
begin
with TEdit(Sender) do TButton(Tag).Enabled:=Text<>"";
end;
Хватит ? :)
← →
ЮрийК © (2004-07-31 20:21) [9]"Если бы меня не ломало, то и я проявил бы интеллект и написал, как все же засунуть программу в реестр, в бинарный параметр, целиком."
Далее, как запускать такую программу - из реестра?
← →
GuAV © (2004-07-31 20:33) [10]
> Далее, как запускать такую программу - из реестра?
А кому это нужно? В смысле, зачем запускать её? Добавили - и ладно.
← →
ЮрийК © (2004-07-31 20:45) [11]"А кому это нужно? В смысле, зачем запускать её? Добавили - и ладно."
А если это использовать как-то в целях защиты основной программы, которая на диске? Например.
Можно основной программой прочесть и запустить. Как только запустить? Нужны детали.
← →
GuAV © (2004-07-31 20:50) [12]>ЮрийК © (31.07.04 20:45) [11]
Имхо, Вас тоже касается вопрос
Anatoly Podgoretsky © (31.07.04 12:07) [7]
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c