Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.09.2022, 20:42
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,111
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну не знаю что у тебя там не работает.
Вот для D10.2 у меня все ок - регистрирует, при клике - открывает:
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btRegister: TButton;
    lbFileName: TLabel;
    edFileText: TMemo;
    procedure btRegisterClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  System.Win.Registry, ShlObj;

procedure TForm1.btRegisterClick(Sender: TObject);
const
  sKeyRoot = '\Software\Classes\';
  sExt = '.protxt';
  sAppName = 'ProText';
var
  R : TRegistry;
begin
  R := TRegistry.Create;
  Try
    R.RootKey := HKEY_CURRENT_USER;
    If R.OpenKey(sKeyRoot+sExt,True) Then
      Begin
        R.WriteString('',sAppName);
        R.CloseKey;
      End;
    If R.OpenKey(sKeyRoot + sAppName,True) Then
      Begin
        R.WriteString('',sAppName + ' file type');
        R.CloseKey
      End;
    If R.OpenKey(sKeyRoot + sAppName + '\DefaultIcon',True) Then
      Begin
        R.WriteString('','"' + ParamStr(0) + '",0');
        R.CloseKey;
      End;
    If R.OpenKey(sKeyRoot + sAppName + '\shell\open\command',True) Then
      Begin
        R.WriteString('','"' + ParamStr(0) + '" "%1"');
        R.CloseKey;
      End;
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
  Finally
    R.Free;
  End;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  If ParamCount > 0 Then
    Begin
      lbFileName.Caption := ParamStr(1);
      edFileText.Lines.LoadFromFile(ParamStr(1));
    End;
end;

end.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Gareth (10.01.2023)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2026