Dann wandel dir die Batch in eine Exe um :
Link zum Batch 2 Exe Converter auf Grund eines Trojaner Alarms bei Virus Total entfernt.
edit : habe da mal eben eine edge.exe gemacht... einfach die zip in exe umbenennen
Dateianhang vorläufig entfernt
Dann wandel dir die Batch in eine Exe um :
Link zum Batch 2 Exe Converter auf Grund eines Trojaner Alarms bei Virus Total entfernt.
edit : habe da mal eben eine edge.exe gemacht... einfach die zip in exe umbenennen
Dateianhang vorläufig entfernt
Danke, das werde ich mal ausprobieren :klasse:
Kannst du ne Batch (*.bat) aus deinem betreffenden Script heraus starten ?
Das funktioniert einwandfrei...ganz herzlichen Dank für den Hinweis :klasse:
habe da mal eben eine edge.exe gemacht
Das teste ich auch gleich noch...du bist gut :klasse::wink: danke
Download funktioniert nicht wegen einer Warnung vom Defender :roll:
Jupp, bei mir tillt Defender auch gerade .. Aber ein grosser Suchlauf hat nix gefunden .. komisch
Virus Total liefert zwei Treffer... Habe den Download und den Link sicherheitshalber mal entfernt... Sorry
Sorry
Alles ist gut, danke für deine tolle Hilfe, ich belasse es bei der .bat Datei, das klappt perfekt :klasse:
Wieder eine Erweiterung eingespart.
versuche es mal mit
in deinem Script. Dieser Aufruf steht jedenfalls im Bild von milupo
Hallo,
eine Anfrage habe ich zu folgendem ScriptOpenLinkinTab
https://github.com/ardiman/userCh…r/openlinkintabkönnte man es so umbauen das es nur für eine Domain und ab Firefox 57 funktoniert ?
versuche es mal mit
Hallo AngelOfDarkness...
dann erscheint eine Fehlermeldung.
[attachment=0]Screenshot (258).png[/attachment]
Die Beiträge die etwas mit der Erweiterung zu tun haben habe ich mal verschoben nach:
dann erscheint eine Fehlermeldung.
Mir scheint, da fehlt bei dir ein Leerzeichen vor dem Parameter "%s". Allerdings ist im Python-Skript auch kein Leerzeichen. Vielleicht solltest du auch die Rückstriche durch einen weiteren Rückstrich maskieren, denn Open With hat zwei Dateien angelegt, eine open_with.bat, die lediglich den Aufruf des Installationsskriptes mit dem entsprechenden Pfad aus der Kommandozeile enthält und eine Datei open_with_firefox.json, die diese Bat-Datei aufruft. Und bei dem Pfad zu dieser Bat-Datei sind die Rückstriche verdoppelt.
Nunja wenn eh offensichtlich eine Batch benötigt wird, da Open With ja auch eine nutzt, kann Andreas in seinem Script auch die Batch laut meinen Beiträgen #876 und #879 nutzen https://www.camp-firefox.de/forum/viewtopi…048328#p1048328
Vielleicht hilf es ja was, wenn ihr das nicht schon selbst studiert habt, dass ich euch die Inhalte der drei Dateien angebe, vielleicht sagt euch der Python-Code etwas, wenn er auch anders als der von JavaScript ist:
open_with_windows.py:
from __future__ import print_function
import os
import sys
import json
import struct
import subprocess
try:
sys.stdin.buffer
# Python 3.x version
# Read a message from stdin and decode it.
def getMessage():
rawLength = sys.stdin.buffer.read(4)
if len(rawLength) == 0:
sys.exit(0)
messageLength = struct.unpack('@I', rawLength)[0]
message = sys.stdin.buffer.read(messageLength).decode('utf-8')
return json.loads(message)
# Send an encoded message to stdout
def sendMessage(messageContent):
encodedContent = json.dumps(messageContent).encode('utf-8')
encodedLength = struct.pack('@I', len(encodedContent))
sys.stdout.buffer.write(encodedLength)
sys.stdout.buffer.write(encodedContent)
sys.stdout.buffer.flush()
except AttributeError:
# Python 2.x version (if sys.stdin.buffer is not defined)
# Read a message from stdin and decode it.
def getMessage():
rawLength = sys.stdin.read(4)
if len(rawLength) == 0:
sys.exit(0)
messageLength = struct.unpack('@I', rawLength)[0]
message = sys.stdin.read(messageLength)
return json.loads(message)
# Send an encoded message to stdout
def sendMessage(messageContent):
encodedContent = json.dumps(messageContent)
encodedLength = struct.pack('@I', len(encodedContent))
sys.stdout.write(encodedLength)
sys.stdout.write(encodedContent)
sys.stdout.flush()
def install():
import sys
try:
import winreg as _winreg
except:
import _winreg
this_file = os.path.realpath(__file__)
install_path = os.path.dirname(this_file)
manifest = {
'name': 'open_with',
'description': 'Example host for native messaging',
'path': this_file,
'type': 'stdio',
}
manifest['path'] = filename = os.path.join(install_path, 'open_with.bat')
with open(filename, 'w') as file:
file.write('@echo off\ncall "%s" "%s"\n' % (sys.executable, this_file))
registry_locations = {
# 'chrome': os.path.join('Software', 'Google', 'Chrome', 'NativeMessagingHosts'),
'firefox': os.path.join('Software', 'Mozilla', 'NativeMessagingHosts'),
}
for browser, registry_location in registry_locations.items():
browser_manifest = manifest.copy()
if browser == 'firefox':
browser_manifest['allowed_extensions'] = ['openwith@darktrojan.net']
else:
browser_manifest['allowed_origins'] = ['chrome-extension://eboojgmpoadapdemnbhjnnlnnnoijefc/']
filename = os.path.join(install_path, 'open_with_%s.json' % browser)
with open(filename, 'w') as file:
file.write(
json.dumps(browser_manifest, indent=2, separators=(',', ': '), sort_keys=True).replace(' ', '\t') + '\n'
)
try:
_winreg.OpenKey(_winreg.HKEY_CURRENT_USER, os.path.dirname(registry_location))
key = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER, registry_location)
_winreg.SetValue(key, 'open_with', _winreg.REG_SZ, filename)
except WindowsError:
pass
def find_browsers():
try:
import winreg as _winreg
except:
import _winreg
windir = os.getenv('windir')
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, os.path.join('Software', 'Clients', 'StartMenuInternet'))
count = _winreg.QueryInfoKey(key)[0]
browsers = []
while count > 0:
subkey = _winreg.EnumKey(key, count - 1)
browsers.append({
'name': _winreg.QueryValue(key, subkey),
'command': _winreg.QueryValue(key, os.path.join(subkey, 'shell', 'open', 'command'))
})
count -= 1
if os.path.exists(os.path.join(windir, 'SystemApps', 'Microsoft.MicrosoftEdge_8wekyb3d8bbwe', 'MicrosoftEdge.exe')):
browsers.append({
'name': 'Microsoft Edge',
'command': os.path.join(windir, 'explorer.exe') + ' microsoft-edge:%s'
})
return browsers
def listen():
while True:
receivedMessage = getMessage()
if receivedMessage == 'ping':
sendMessage({
'version': '7.0b7',
'file': os.path.realpath(__file__)
})
elif receivedMessage == 'find':
sendMessage(find_browsers())
else:
for k, v in os.environ.items():
if k.startswith('MOZ_'):
try:
os.unsetenv(k)
except:
os.environ[k] = ''
CREATE_BREAKAWAY_FROM_JOB = 0x01000000
subprocess.Popen(receivedMessage, creationflags=CREATE_BREAKAWAY_FROM_JOB)
if __name__ == '__main__':
if len(sys.argv) == 2:
if sys.argv[1] == 'install':
install()
sys.exit(0)
elif sys.argv[1] == 'find_browsers':
print(find_browsers())
sys.exit(0)
listen()
Alles anzeigen
open_with_firefox.json:
{
"allowed_extensions": [
"openwith@darktrojan.net"
],
"description": "Example host for native messaging",
"name": "open_with",
"path": "C:\\Users\\Lenovo M58\\Downloads\\open_with.bat",
"type": "stdio"
}
open-with.bat:
@echo off
call "C:\Users\Lenovo M58\AppData\Local\Programs\Python\Python36\python.exe" "C:\Users\Lenovo M58\Downloads\open_with_windows.py"
In der open-with.bat steht der Pfad, den ich in der Kommandozeile eingegeben habe. Ich musste jeweils den vollständigen Pfad angeben.
Hallo milupo..
vielen Dank für deine Mühe :klasse:
Ich belasse es bei diesem Eintrag in einer .bat Datei, die einwandfrei funktioniert.
Nochmals danke dafür an AngelOfDarkness.
Das Script macht genau das was ich haben wollte und erspart mir eine weitere Erweiterung.
Das Script macht genau das was ich haben wollte und erspart mir eine weitere Erweiterung.
Na wunderbar.
da nicht für, dass war doch gern geschehen. Du hast mir ja auch schon des öfteren geholfen :klasse:
OpenLinkinTab
https://github.com/ardiman/userCh…r/openlinkintabkönnte man es so umbauen das es nur für eine Domain und ab Firefox 57 funktoniert ?
Ja. Teste folgendes Skript. Die Domain ist hier "https://www.camp-firefox.de".
(function() {
if (location != 'chrome://browser/content/browser.xul')
return;
var frameScript = function() {
addEventListener('DOMContentLoaded', function(event) {
var document = event.target;
if (document.domain == 'www.camp-firefox.de') {
var links = document.getElementsByTagName('a');
for (var link of links) {
link.target = '_blank';
}
};
});
};
var frameScriptURI = 'data:,(' + frameScript.toString() + ')()';
window.messageManager.loadFrameScript(frameScriptURI, true);
})();
Alles anzeigen
Danke aborix.
funktioniert wie es soll.
stellt sich die Frage ob jemand dieses Script für Fx57 wieder anpassen kann:
openurlwithEdit:
Funktioniert eingeschränkt nach einer kleinen Änderung auch im Nightyl.
Was heißt eingeschränkt? Und was hast Du geändert – dieses nsilocalfile zu nsifile oder so ähnlich?
Übrigens nutze ich das Skript zur vollsten Zufriedenheit, und zumindest unter Win7 kann man es auch prima mit Linkdateien (.lnk) benutzen – damit rufe ich gelegentlich den Firefox im Standardprofil auf, wenn etwas auf einer Seite nicht funktioniert. Ist auch irgendwo hier in den Untiefen dieses Threads zu finden (oder im anderen, der jetzt nur noch für Ankündigungen über Skriptaktualisierungen bzw. neue Skripte genutzt wird).
Das sollte, wenn es Linkdateien in Win10 noch gibt, so eigentlich auch mit diesem Edge-Aufruf möglich sein.
Was heißt eingeschränkt?
Es wird nur der jeweilige Link in einem anderen Browser geöffnet, nicht aber die Seite.
Also Rechtsklick auf einen Link...Öffnen mit...funktioniert.
Rechtsklick in einer Seite..Öffnen mit..funktioniert nicht.
nutze ich das Skript zur vollsten Zufriedenheit
In Fx 57?
dieses nsilocalfile zu nsifile
Ja.