Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Добавление программы в реестр   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 1.107 c
4-1088782032
diablo_m
2004-07-02 19:27
2004.08.15
Расширение MSC


4-1089216135
NLO
2004-07-07 20:02
2004.08.15
Свая консоль


3-1090407050
Алексей
2004-07-21 14:50
2004.08.15
Вопрос по сортировке данных


6-1084746834
w666w
2004-05-17 02:33
2004.08.15
ПОМОГИТЕ!!! как прикрутить к IEParser у события WebBrowser а


3-1089896943
ZedeS
2004-07-15 17:09
2004.08.15
Paradox+ADO+Delphi - получилось медленно!!!