Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2010, 16:41   #1
IzIFRag
Пользователь
 
Аватар для IzIFRag
 
Регистрация: 05.05.2010
Сообщений: 15
По умолчанию Изменение имени корзины через реестр

Есть форма с кнопкой, код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Registry;


type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var
   MyKey	: HKey;	{ Handle для работы с разделом }
   RegIni: TregIniFile;
   s:string;
   Count: Integer;
   Err : longint;{ Код ошибки }
   Reg: TRegistry;

   begin
  Err:=RegOpenKey(HKEY_CLASSES_ROOT,'CLSID\{645FF040-5081-101B-9F08-00AA002F954E}',MyKey); { Открыли раздел }
  if Err<> ERROR_SUCCESS then
    begin
     MessageDlg('Нет такого раздела !!',mtError,[mbOk],0);      {проверка существования раздела}
     regclosekey(mykey);
     exit;
  end;
reg := TRegistry.Create;                                          {запись}
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('CLSID{645FF040-5081-101B-9F08-00AA002F954E}', true);
reg.WriteString('LocalizedString', 'gg1gg1gg1');


    with reg do
    begin
   RootKey := HKEY_CLASSES_ROOT;                                     {чтение}
    OpenKey('CLSID\{645FF040-5081-101B-9F08-00AA002F954E}',false);
    ShowMessage(reg.ReadString('LocalizedString'));
    CloseKey;
    free;
  end;
end;
Значение как бы записывается и меняется, по крайней мере при чтении, а в самом реестре и на рабочем столе никаких изменений нет...

Пробывал записывать так:
Код:
RegOpenKeyEx(HKEY_CLASSES_ROOT,'CLSID\{645FF040-5081-101B-9F08-00AA002F954E}',0,KEY_ALL_ACCESS,mykey);
   RegSetValueEx(mykey,'LocalizedString',0,REG_EXPAND_SZ,pchar('s1sssss'),255);
но все тоже самое...
подскажите пожалуйста, где неправильно.
IzIFRag вне форума Ответить с цитированием
Старый 19.05.2010, 17:27   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Перезапустите Explorer.exe, но наверное есть более гуманный выход...
W0LF вне форума Ответить с цитированием
Старый 19.05.2010, 18:46   #3
TzX
Пользователь
 
Аватар для TzX
 
Регистрация: 23.12.2009
Сообщений: 57
По умолчанию

А если обновить раб стол то обновляется? Может быть просто послать нажатие ф5 эксплореру
TzX вне форума Ответить с цитированием
Старый 20.05.2010, 09:00   #4
IzIFRag
Пользователь
 
Аватар для IzIFRag
 
Регистрация: 05.05.2010
Сообщений: 15
По умолчанию

Неа, не помогает...
IzIFRag вне форума Ответить с цитированием
Старый 20.05.2010, 09:34   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
есть более гуманный выход
Если не опшибаюсь еше нужно какое-то сообщение послать... Вот только не помню какое, чтоб все переобновились
Вот нашел кажись:
Код:
  SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0,
    LongInt(PChar('RegistrySection')));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2010, 09:44   #6
IzIFRag
Пользователь
 
Аватар для IzIFRag
 
Регистрация: 05.05.2010
Сообщений: 15
По умолчанию

Странно, но параметр не меняется вообще...
При его чтении он видет то, что он изменился, а ни на рабочем столе ни в редакторе реестра изменений нет.

Нет больше идей ?

Последний раз редактировалось Stilet; 21.05.2010 в 09:46.
IzIFRag вне форума Ответить с цитированием
Старый 21.05.2010, 09:37   #7
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Ты не туда пишешь!
Вот дай в реестре поиск по тому слову как корзину назвать хочешь, и увидишь, куда ты его записал.

У меня всё работает
Код:
procedure TForm3.Button1Click(Sender: TObject);
var
  reg: tRegIniFile;
begin
  reg := tRegIniFile.Create('');
  reg.RootKey := HKEY_CLASSES_ROOT;
  reg.OpenKey('CLSID', false);
  reg.WriteString('{645FF040-5081-101B-9F08-00AA002F954E}', 'LocalizedString',
    Edit1.Text);
  reg.Free;
end;

procedure TForm3.Button2Click(Sender: TObject);
var
  reg: tRegIniFile;
begin
  reg := tRegIniFile.Create('');
  reg.RootKey := HKEY_CLASSES_ROOT;
  reg.OpenKey('CLSID', false);
  showMessage(reg.ReadString('{645FF040-5081-101B-9F08-00AA002F954E}',
      'LocalizedString', '(error)'));
  reg.Free;
end;
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Настройка Windows через реестр GAGARIN-NEW Windows 9 13.07.2009 14:30
Добавление в автозагрузку НЕ через реестр. Vi_russ Общие вопросы Delphi 2 07.12.2008 19:00
Получить доступ к скринсейверу через реестр Vask Общие вопросы Delphi 1 24.09.2008 21:12
Определить модель монитора (не через реестр!) oleg kutkov Общие вопросы Delphi 1 06.12.2007 01:31