Опишу, что мне надо: надо, что бы при нажатию на комбинацию клавиш моя прога, которая раньше сидела в трее (можна даже без трея, просто чтобы она могла среагировать на нажатия клавиш. Вроде хук для этого надо ставить...), могла проанализировать код поточной Html страницы в браузере( Internet Explorer), вытянуть нужные ссылки, и скинуть в буфер обмена, реализованный в предыдущей теме . Трей и хуки можно оставить на потом, а сейчас же хотелося бы разобраться с браузером. Основная сложность это узнать Html. Я знаю, что все просматриваемое в браузерах сохраняется на винд, но определить, где он сохраняет все эти данные невозможно, так как Internet Explorer постоянно генерирует новые папки в Temporary Internet Files - система безопасности. Честно говоря, я просто не знаю куда тыкаться и что для этого надо знать. Может меня спасет WinApi? Покажите, пожалуйста, мне путь.
Сообщение отредактировано: Bokul -
--------------------
Лао-Цзы : Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
Вот нашел в Drkb тему "Как добавить кнопку в панель инструментов IE?", подумал может это будет лучше чем HotKey, а может можна сделать то и то. Сейчас питаюсь перевести пример на Fpc. Вот сам пример:
Цитата
1. ButtonText = Всплывающая подсказка к кнопке 2. MenuText = Текст, который будет использован для пункта в меню "Сервис" 3. MenuStatusbar = *Ignore* 4. CLSID = Ваш уникальный classID. Для создания нового CLSID (для каждой кнопки) можно использовать GUIDTOSTRING. 5. Default Visible := Показать ей. 6. Exec := Путь к Вашей программе. 7. Hoticon := иконка из shell32.dll когда мышка находится над кнопкой 8. Icon := иконка из shell32.dll
Код
1 -------------------------------------------------------------------- procedure CreateExplorerButton; const TagID = '\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\'; var Reg: TRegistry; ProgramPath: string; RegKeyPath: string; begin ProgramPath := 'c:\folder\exename.exe'; Reg := TRegistry.Create; try with Reg do begin RootKey := HKEY_LOCAL_MACHINE; RegKeyPath := 'Software\Microsoft\Internet Explorer\Extensions'; OpenKey(RegKeyPath + TagID, True); 2 -------------------------------------------------------------------- WriteString('ButtonText', 'Your program Button text'); WriteString('MenuText', 'Your program Menu text'); WriteString('MenuStatusBar', 'Run Script'); WriteString('ClSid', '{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}'); WriteString('Default Visible', 'Yes'); WriteString('Exec', ProgramPath); WriteString('HotIcon', ',4'); WriteString('Icon', ',4'); end 3------------------------------------------------------------ finally Reg.CloseKey; Reg.Free; end; end;
Как я понимаю в первой части кода проходит открытие ключа. Вот замена для Fpc:
Код
Var x:hWnd; begin RegOpenKey(HKEY_LOCAL_MACHINE,'Software\Microsoft\Internet Explorer\Extensions\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\', x);
Не уверен в третьем параметре...
Во второй части мы модифицируем этот ключ с помощю TRegistry.WriteString, в WinApi этой функции, наверное, отвечает REGSETVALUE...? Аналог
Код
WriteString('ButtonText', 'Your program Button text');
для Fpc:
Код
RegSetValue(HKEY_LOCAL_MACHINE,'Software\Microsoft\Internet Explorer\Extensions\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\','ButtonText',REG_SZ, 'Your program Button text');
Ну и закрываем ключ
Код
RegCloseKey(x);
Правильно?
Сообщение отредактировано: Bokul -
--------------------
Лао-Цзы : Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.