Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перейти к нужному ключу в Regedit? 
:(
    Опции темы
Poseidon
Дата 9.6.2005, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Код
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. 



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.