Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.034 c
14-1091022117
Mell
2004-07-28 17:41
2004.08.15
обмен строками


14-1090804670
Monster
2004-07-26 05:17
2004.08.15
Где взять ?


14-1091028135
Anatoly Podgoretsky
2004-07-28 19:22
2004.08.15
Фотографии лунных экспедиций, очень много


1-1091013961
TriX
2004-07-28 15:26
2004.08.15
Icon image is not valid


14-1090950265
Art_Z
2004-07-27 21:44
2004.08.15
Издательсво "Питер",серия "Для професионалов"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский