Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

О том как добавить свой пункт в меню IE?   Найти похожие ветки 

 
DDS   (2004-02-06 00:13) [0]

Мне надо, чтобы мой пункт в контекстном меню IE работал
так же как у Reget. Пункт я добавил вот так:

procedure CreateExplorerMenu;
var
 Reg: TRegistry;
 ProgramPath: string;
 RegKeyPath: string;
begin
ProgramPath := ExtractFilePath(Application.ExeName);
Reg := TRegistry.Create;
try
 with Reg do begin
  RootKey := HKEY_CURRENT_USER;
  RegKeyPath := "Software\Microsoft\Internet Explorer\MenuExt\&Project";
  OpenKey(RegKeyPath, True);
  WriteString("", ProgramPath);
  WriteInteger("contexts",34);
 end
finally
 Reg.CloseKey;
 Reg.Free;
end;
end;


А вот как мне получить ссылку на которой открыли меню и как послать ее моему приложению.

(Контекстное меню не проводника, а именно Internet Explorer)


 
DDS   (2004-02-07 13:50) [1]

Аууууу, кто-нибудь ответьте.


 
alex shad ©   (2004-03-09 13:04) [2]

Ну лично по твоему коду я сделал так (правда еще не доконца):

****
procedure CreateExplorerMenu;
var
Reg: TRegistry;
ProgramPath: string;
RegKeyPath: string;
begin
ProgramPath := ExtractFilePath(Application.ExeName);
Reg := TRegistry.Create;
try
with Reg do begin
 RootKey := HKEY_CURRENT_USER;
 RegKeyPath := "Software\Microsoft\Internet Explorer\MenuExt\Добавить в Linker";
 OpenKey(RegKeyPath, True);
 WriteString("","file://"+ProgramPath+"add.html");
 WriteInteger("contexts",34);
end
finally
Reg.CloseKey;
Reg.Free;
end;
end;
*****

Код html я взял у авторов Leechget
*******
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript1.2">

var Linker = new ActiveXObject("LinkIE.link");
if(Linker)
{
var srcEvent = external.menuArguments.event;
var srcDoc = external.menuArguments.document;
var srcElement = srcDoc.elementFromPoint(srcEvent.clientX, srcEvent.clientY);
var srcAnchor = srcElement;
var sURL = "";
var sComment = "";

while(srcAnchor.tagName!="A" && srcAnchor.tagName!="AREA" && srcAnchor.tagName!="HTML") {srcAnchor=srcAnchor.parentElement;}

if(srcEvent.type=="MenuExtUnknown" || srcEvent.type=="MenuExtImage" || srcEvent.type=="MenuExtAnchor")
{
if(srcAnchor.tagName=="A" || srcAnchor.tagName=="AREA") {sURL = srcAnchor.href;}
if(srcAnchor.tagName=="HTML" && srcElement.tagName=="IMG") {sURL = srcElement.src;}
if(srcAnchor.tagName=="input" && sURL=="") {sURL = srcElement.value;}
}

if(sURL!="")
{
LeechGet.AddUrl(sURL);
}
}
else
{
alert("LeechIE.dll is not registered. Please run `regsvr32.exe LeechIE.dll`");
}
</SCRIPT>
****

Как я понял сдесь
while(srcAnchor.tagName!="A" && srcAnchor.tagName!="AREA" && srcAnchor.tagName!="HTML") {srcAnchor=srcAnchor.parentElement;}

if(srcEvent.type=="MenuExtUnknown" || srcEvent.type=="MenuExtImage" || srcEvent.type=="MenuExtAnchor")
{
if(srcAnchor.tagName=="A" || srcAnchor.tagName=="AREA") {sURL = srcAnchor.href;}
if(srcAnchor.tagName=="HTML" && srcElement.tagName=="IMG") {sURL = srcElement.src;}
if(srcAnchor.tagName=="input" && sURL=="") {sURL = srcElement.value;}
}
кидается линка в буфер (если конечно я правильно понял), затем ты при запуске своего приложения на onShow вытаскиваешь из буфера линк. Но я еще до этого не добрался.
Я не знаю как из javascript запустить *.exe файл, мне надо его тут (если я конечно правильно понял)
if(sURL!="")
{
LeechGet.AddUrl(sURL);
}
запустить. Случаем не знаешь как с javascript пускануть?
Просто если использовать код LeechGet, надо регестрировать свое приложение в системе и пиребевать сам код, хотя впринципи это не сложно сделать, но гиморно :(



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
7-1079423908
rezya
2004-03-16 10:58
2004.05.02
Убить Exploer


3-1081002942
YurikGl
2004-04-03 18:35
2004.05.02
Connection lost to database


1-1081878711
wall7
2004-04-13 21:51
2004.05.02
ActionList и MessageBox


14-1081324648
asm???
2004-04-07 11:57
2004.05.02
Программка на ассемблере


1-1082023145
Cosinus
2004-04-15 13:59
2004.05.02
Принцип работы c TBitMap ...