Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:

Error. Page cannot be displayed. Please contact your service provider for more details. (11)


Как перейти к нужному ключу в Regedit?

Поиск:
Код
unit Unit1;

interface

uses
 Windows, Messages, Classes, Controls, Forms, StdCtrls;

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

var
 Form1: TForm1;

implementation

{$R *.dfm}

uses
 ShellAPI;

procedure TForm1.JumpToKey(Key: string);
var
 i, n: Integer;
 hWin: HWND;
 ExecInfo: ShellExecuteInfoA;
begin
 hWin := FindWindowA(PChar('RegEdit_RegEdit'), nil);
 if hWin = 0 then
 {if Regedit doesn't run then we launch it}
 begin
   FillChar(ExecInfo, 60, #0);
   with ExecInfo do
   begin
     cbSize := 60;
     fMask  := SEE_MASK_NOCLOSEPROCESS;
     lpVerb := PChar('open');
     lpFile := PChar('regedit.exe');
     nShow  := 1;
   end;
   ShellExecuteExA(@ExecInfo);
   WaitForInputIdle(ExecInfo.hProcess, 200);
   hWin := FindWindowA(PChar('RegEdit_RegEdit'), nil);
 end;
 ShowWindow(hWin, SW_SHOWNORMAL);
 hWin := FindWindowExA(hWin, 0, PChar('SysTreeView32'), nil);
 SetForegroundWindow(hWin);
 i := 30;
 repeat
   SendMessageA(hWin, WM_KEYDOWN, VK_LEFT, 0);
   Dec(i);
 until i = 0;
 Sleep(500);
 SendMessageA(hWin, WM_KEYDOWN, VK_RIGHT, 0);
 Sleep(500);
 i := 1;
 n := Length(Key);
 repeat
   if Key[i] = '\' then
   begin
     SendMessageA(hWin, WM_KEYDOWN, VK_RIGHT, 0);
     Sleep(500);
   end
   else
     SendMessageA(hWin, WM_CHAR, Integer(Key[i]), 0);
   i := i + 1;
 until i = n;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 JumpToKey('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer');
end;

end.






Просмотров: 2117

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную