URL-адрес изменения зимлета, если это ссылка на файл, а не правильная ссылка или запуск внешней программы
У меня проблема в браузере с отправленными ссылками на файлы:
file:/// вместо file:// и я хотел бы создать зимлет, который будет проверять ссылки в почте, и если это ссылка на файл, то измените file:/// на file:// и начните с щелчка.
Или запустите внешнюю программу, если это ссылка на файл. Я создал программу чтения ссылок, но я не знаю, как ее запустить или внедрить в Zimlet. Есть ли у вас какие-либо идеи? Заранее благодарю за любую помощь. Мой пример для исправления ссылки в.net, но как это выглядит в java ajax:
foreach (string b in args)
{
// Console.WriteLine(b);
if (b.Contains("file:F"))
{
string d = b.Replace(@"file:F", @"F");
System.Diagnostics.Process.Start(d);
}
else if (b.Contains("file:///F:"))
{
string d = b.Replace(@"file:///F:", @"F:");
System.Diagnostics.Process.Start(d);
}
}
Здесь строка читается, проверяется и заменяется хорошими начальными символами. Я думаю, что это должно работать и в Java, но я не очень хорош в Java.
Пожалуйста помоги!
Я пробовал с конвертером, но он не работает:
try
{
for (String b : args)
{
// Console.WriteLine(b);
if (b.contains("file:F"))
{
String d = b.replace("file:F", "F");
System.Diagnostics.Process.Start(d);
}
else if (b.contains("file:///F:"))
{
String d = b.replace("file:///F:", "F:");
System.Diagnostics.Process.Start(d);
}
else
{
System.out.println("File Not Contain Valid File Link!");
System.out.println("Or File Missing!");
Console.ReadKey();
}
// Console.WriteLine(d);
// Console.ReadKey();
// System.Diagnostics.Process.Start(d);
}
}
catch (RuntimeException e)
{
System.out.println("File Not Contain Valid File Link!");
System.out.println("Or File Missing!");
Console.ReadKey();
}
У меня есть новая идея! Как я могу автоматически запускать ссылки в новой вкладке? Например, если я нажму на ссылку, то автоматически открою новую вкладку и скопирую туда URL-адрес и запускаю. Я думаю, это должно быть меню правой кнопкой мыши. Он должен работать.
ОБНОВЛЕНИЕ: Теперь я использую пример: для контекстного меню теперь работает всплывающее сообщение:
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// The onClicked callback function.
function onClickHandler(info, tab) {
if (info.menuItemId == "radio1" || info.menuItemId == "radio2") {
console.log("radio item " + info.menuItemId +
" was clicked (previous checked state was " +
info.wasChecked + ")");
} else if (info.menuItemId == "checkbox1" || info.menuItemId == "checkbox2") {
console.log(JSON.stringify(info));
console.log("checkbox item " + info.menuItemId +
" was clicked, state is now: " + info.checked +
" (previous state was " + info.wasChecked + ")");
} else {
console.log("item " + info.menuItemId + " was clicked");
console.log("info: " + JSON.stringify(info));
console.log("tab: " + JSON.stringify(tab));
}
Всплывающее сообщение здесь
alert("I am an alert box!");
};
chrome.contextMenus.onClicked.addListener(onClickHandler);
// Set up context menu tree at install time.
chrome.runtime.onInstalled.addListener(function() {
// Create one test item for each context type.
var contexts = ["page","selection","link","editable","image","video",
"audio"];
for (var i = 0; i < contexts.length; i++) {
var context = contexts[i];
var title = "Test '" + context + "' menu item";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],
"id": "context" + context});
console.log("'" + context + "' item:" + id);
}
// Create a parent item and two children.
chrome.contextMenus.create({"title": "Test parent item", "id": "parent"});
chrome.contextMenus.create(
{"title": "Child 1", "parentId": "parent", "id": "child1"});
chrome.contextMenus.create(
{"title": "Child 2", "parentId": "parent", "id": "child2"});
console.log("parent child1 child2");
// Create some radio items.
chrome.contextMenus.create({"title": "Radio 1", "type": "radio",
"id": "radio1"});
chrome.contextMenus.create({"title": "Radio 2", "type": "radio",
"id": "radio2"});
console.log("radio1 radio2");
// Create some checkbox items.
chrome.contextMenus.create(
{"title": "Checkbox1", "type": "checkbox", "id": "checkbox1"});
chrome.contextMenus.create(
{"title": "Checkbox2", "type": "checkbox", "id": "checkbox2"});
console.log("checkbox1 checkbox2");
// Intentionally create an invalid item, to show off error checking in the
// create callback.
console.log("About to try creating an invalid item - an error about " +
"duplicate item child1 should show up");
chrome.contextMenus.create({"title": "Oops", "id": "child1"}, function() {
if (chrome.extension.lastError) {
console.log("Got expected error: " + chrome.extension.lastError.message);
}
});
});
И я создал hta-файл, на котором запущен мой exe-файл:
<script type="text/javascript" language="javascript">
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun = "F:\\ABLAGE\\link_reader_ip.exe";
oShell.ShellExecute(commandtoRun,"","","open","1");
</script>
Новые проблемы: 1. Как запустить по клику hta файл:
function callShellApplication(){
var objShell = new ActiveXObject("WScript.shell");
objShell.Run('"d:\\test.hta"');
}
ошибки нет, но файл test.hta не запустится.
- Если HTA запустить мой файл, он открывает дополнительное окно, но я не буду.
Пожалуйста, кто-нибудь, помогите мне.