Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

О том как добавить свой пункт в меню 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.032 c
1-1082030465
Mol
2004-04-15 16:01
2004.05.02
ComboBox


3-1080915769
}|{yk
2004-04-02 18:22
2004.05.02
По деревьям. Получения количесва детей всех уровней


1-1081824510
Fighter
2004-04-13 06:48
2004.05.02
Как узнать есть ли у объекта заданное property?


3-1081411775
Ozone
2004-04-08 12:09
2004.05.02
Потоки + БД


14-1081173350
Vlad
2004-04-05 17:55
2004.05.02
Защита программы от несанкционированного копирования





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский