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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.09.2008, 20:07
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию Реестр

Помгите...сделал форму, надо что бы она загружалась автоматом(из реестра), можете показать пример кода, и можно ли сделать принудительное сделать,если учетная запись ограничена(не администратор)...зарание спасибо
Ответить с цитированием
  #2  
Старый 16.09.2008, 21:55
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если не админ - пользуйся HKEY_CURRENT_USER. Туда можно писать.
По поводу как загружать СОДЕРЖИМОЕ формы (а не саму форму - саму форму тоже можно, но это уже экзотика и не надо оно тебе) - посмотри пример использования класса TRegistry. Там все просто. Шаблон такой:

Код:
uses
  Registry;

...

var
  R : TRegistry;
begin
  R := TRegistry.Create;
  R.Root := HKEY_CURRENT_USER;
  Try
     If R.OpenKeyReadOnly('Software\My Program\UI') Then
       Begin
         If R.ValueExist('Edit1') Then Edit1.Text :=  R.ReadString('Edit1');
         If R.ValueExist('Combo1') thenCombo1.ItemIndex := R.ReadInteger('Combo1');
         ...
         R.CloseKey;
       End;
  Finaly
    R.Free;
  End;
end;
Ответить с цитированием
  #3  
Старый 17.09.2008, 03:29
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

спасибо помогло, а как можно удалить файл после перезагрузки компьютера?
Ответить с цитированием
  #4  
Старый 17.09.2008, 07:45
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Восклицание

Можно воспользоваться стандартной функцией Виндовс MoveFileEx, подробнее в Windows SDK.
Ответить с цитированием
  #5  
Старый 18.09.2008, 22:00
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

а можно пример кода, если не сложно
Ответить с цитированием
  #6  
Старый 19.09.2008, 00:23
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

Цитата:
Сообщение от жекаизжека
спасибо помогло, а как можно удалить файл после перезагрузки компьютера?
Если память не изменяет, функция называется DeleteKey и применяется к TRegistry.
__________________

Ответить с цитированием
  #7  
Старый 19.09.2008, 06:42
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

Цитата:
Сообщение от Winny
Если память не изменяет, функция называется DeleteKey и применяется к TRegistry.
дак это удаление ключа из реестра. а нужно, как я понял, файл удалить.
Код:
  DeleteFile('Путь');
Ответить с цитированием
  #8  
Старый 19.09.2008, 07:46
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Восклицание

Цитата:
Сообщение от жекаизжека
а можно пример кода, если не сложно

Лентяи, даже в справку посмотреть влом или погуглить

The MoveFileEx function renames an existing file or directory.

BOOL MoveFileEx(

LPCTSTR lpExistingFileName, // address of name of the existing file
LPCTSTR lpNewFileName, // address of new name for the file
DWORD dwFlags // flag to determine how to move file
);

Parameters

lpExistingFileName

Points to a null-terminated string that names an existing file or directory.

lpNewFileName

Points to a null-terminated string that specifies the new name of lpExistingFileName.
When moving a file, the destination can be on a different file system or drive. If the destination is on another drive, you must set the MOVEFILE_COPY_ALLOWED flag in dwFlags.
When moving a directory, the destination must be on the same drive.

Windows NT:

If dwFlags specifies MOVEFILE_DELAY_UNTIL_REBOOT, lpNewFileName can be NULL. In this case, MoveFileEx registers the lpExistingFileName file to be deleted when the system reboots.

dwFlags

A set of bit flags that specify how to move the file. You can specify any combination of the following values:

Value Meaning
MOVEFILE_COPY_ALLOWED
If the file is to be moved to a different volume, the function simulates the move by using the CopyFile and DeleteFile functions. Cannot be combined with the MOVEFILE_DELAY_UNTIL_REBOOT flag.
MOVEFILE_DELAY_UNTIL_REBOOT
Windows NT only: The function does not move the file until the operating system is restarted. The system moves the file immediately after AUTOCHK is executed, but before creating any paging files. Consequently, this parameter enables the function to delete paging files from previous startups.
MOVEFILE_REPLACE_EXISTING
If a file of the name specified by lpNewFileName already exists, the function replaces its contents with those specified by lpExistingFileName.
MOVEFILE_WRITE_THROUGH
Windows NT only: The function does not return until the file has actually been moved on the disk. Setting this flag guarantees that a move perfomed as a copy and delete operation is flushed to disk before the function returns. The flush occurs at the end of the copy operation. This flag has no effect if the MOVEFILE_DELAY_UNTIL_REBOOT flag is set.


Return Values

If the function succeeds, the return value is nonzero.
Ответить с цитированием
  #9  
Старый 19.09.2008, 07:49
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Восклицание

Делается кажись так:

MoveFileExt('c:\test.any', '', MOVEFILE_DELAY_UNTIL_REBOOT);
Ответить с цитированием
  #10  
Старый 19.09.2008, 12:53
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

Reg:=TRegIniFile.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.WriteString('Software\Microsoft\Windows\Curren tVersion\Run','1111','C:\111111.exe');
Reg.Free;
Это у меня идет загрузка из реестра, а как сделать что это строчка удалялась например по нажатию кнопки
Ответить с цитированием
  #11  
Старый 19.09.2008, 13:02
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

Код:
  DeleteFile('Путь');
[/quote]
на счет файла спасибо помогло )
Ответить с цитированием
  #12  
Старый 19.09.2008, 13:08
жекаизжека жекаизжека вне форума
Начинающий
 
Регистрация: 10.09.2008
Сообщения: 193
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vayrus
Делается кажись так:

MoveFileExt('c:\test.any', '', MOVEFILE_DELAY_UNTIL_REBOOT);
что то он у меня ругаеться, пишет такую
"Error 28 Undeclared identifier:'MoveFileExt' "
Ответить с цитированием
  #13  
Старый 19.09.2008, 13:10
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Плохо

Человеку в лоб суешь рабочий пример, а он его в упор не видит
Ответить с цитированием
  #14  
Старый 19.09.2008, 13:11
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Восклицание

Открой справку Help-Windows SDK.
А ругается потому что скорее всего в Uses чего то нехватает: ShellApi, ShlObj или что то другое, не помню...
Ответить с цитированием
  #15  
Старый 19.09.2008, 13:12
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Восклицание

Ошибся в названии функции, так правильно:
MoveFileEx
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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