Главная страница
    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.028 c
1-1091453856
Andrey
2004-08-02 17:37
2004.08.15
Outlook Express


6-1087196537
Separator
2004-06-14 11:02
2004.08.15
закачка на FTP


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


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


3-1089998011
zep
2004-07-16 21:13
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский