Главная страница
    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.037 c
1-1091008645
Labert
2004-07-28 13:57
2004.08.15
TCriticalSection - вопрос чайника


14-1089786735
Vlad Oshin
2004-07-14 10:32
2004.08.15
Вот кто реально снимался в Властелине колец :)


3-1090228726
AlexanderSK
2004-07-19 13:18
2004.08.15
IBQuery &amp; DataSetProvider


1-1091520377
Ricko
2004-08-03 12:06
2004.08.15
Предупреждения


3-1090487874
Dmitriy O.
2004-07-22 13:17
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский