Eintrag ins Datei-Kontextmenü hinzufügen

  • #1
E

Erich2556

Guest
Hallo,

ist es möglich, einen neuen Eintrag im Datei-Kontextmenü so zu erstellen, dass er auf eine Webseite verlinkt und den Dateinamen mitgibt?

Wenn ich also auf irgendeine Datei einen Rechtsklick mache (z.B. testdatei.txt), dann soll im sich öffnenden Kontextmenü (entweder direkt oder im Senden an Menü) ein Eintrag erscheinen, der zum einen einen festen Link hat, und zum anderen an diesen festen Link den Dateinamen anhängt.

Bsp.: http://www.webseite.de/index.php?dateiname=testdatei.txt

Vielen Dank
Erich
 
  • #2
Dafür müsstest Du die Registry bearbeiten. Wie Du das machst könnte ich später erklären wenn Du möchtest, da ich gerade auf der Arbeit bin. Das könnte dann auch mit URLs funktionieren. Das Senden an ist im Prinzip einfacher, aber mit einer URL habe ich auch das noch nie gemacht, bin mir nicht sicher, ob es möglich ist.. Schau mal unter C:\Dokumente und Einstellungen\BENUTZER\SendTo. Vielleicht geht das irgendwie.
 
  • #3
danke für die antwort.

bin im moment soweit:
hab in der registry unter hkey_classes_root\txtfile\shell
folgenden eintrag hinzugefügt: \test\command
somit erscheint bei txtfiles im kontextmenü direkt nach öffnen an zweiter stelle test.
in den standard habe ich als wert nun C:\test.bat %1 geschrieben.
damit wird meine batch datei aufgerufen, und der aktuelle pfad mit %1 an diese übergeben.
in der batch datei steht folgendes.

@echo off
set var=%1
start

damit funktioniert es schon mal recht gut.
einziges problem ist nun noch, dass wenn im pfad oder dateinamen leerzeichen sind, bricht er im browser ab.
nun muss ich alle leerzeichen in %20 konvertieren.
ich glaube aber nicht dass das via batch möglich ist.
werde das ganze mal in delphi versuchen.

für bessere lösungen bin ich jederzeit dankbar.
weiss jemand, welchen registry schlüssel ich nehmen muss, um das bei allen dateien anzuzeigen?
ich hoffe ich muss das nicht für jeden dateityp extra machen.
 
  • #4
Hallo :)

Also, ich muss leider sagen, dass ich mit Batch Dateien immer sehr wenig gemacht habe. Das war zu DOS Zeiten, und da stand dann höchstens ein Befehl drin... :p
Ich glaube ja, dass es mit Batch irgendwie geht, weil man (nach dem was ich gehört/gelesen habe) schon recht viel mit Batch-Dateien machen kann. Wissen tue ich es allerdings nicht.

Naja, da ich schon seit einigen Jahren mit Delphi/Borland-Geschichten arbeite und damit auch mein Brot verdiene, kann ich wohl sagen, dass das fast ein drei Zeiler wäre... Wenn Du das nicht hinbekommst, würde ich dir das auch bauen und dir Source/EXE zumailen oder so.. Das ist wirklich eine Kleinigkeit und an dem schönen Osterwochenende tue sogar ich auch mal einen gefallen ;D
Achja, wenn Du auch mit Delphi vertraut bist, so ließt es sich fast, könntest Du dir auch eine Shell-Extension bauen. Nicht besonders schwierig, und wesentlich flexibler, Beispiel hab ich glaube ich hier, bzw. gibt es im Internet.


Bis denne dann,

Alexander
 
  • #5
Hallo Alexander,

habe mich heute den ganzen morgen nochmals dran versucht, aber es macht mir doch wesentlich mehr probleme als ich zu beginn gedacht habe.
Das mit der Batch funktoniert irgendwie nicht.
Also falls du Zeit und Lust hättest, würde ich mich sehr über die Delphi Source freuen.

Danke und geniess das schöne Wetter
 
  • #6
juhu, habs doch noch alles hinbekommen wie ich wollte. hier mal der code:

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < args.Length; i++)
{
string str = args;
string str2 = str.Replace( , %20);
string url =
Process.Start(url + str);
}
}
}
}


leider war der ganze aufwand nun umsonst, wollte das ganze nutzen, um direkt eine datei in ein system hochzuladen.
die sicherheitseinstellungen des browsers verhindern es aber, ein form field vom typ file direkt mit einem value zu füllen.

oder gibt es da auch eine andere möglichkeit?
 
  • #7
Genau, so kann das nicht funktionieren, da eine Datei nicht in der URL (GET-Daten) sondern immer in den POST-Daten gesendet werden muss. Von daher könntest Du mit der oben gezeigten Methode nur den Namen der Datei übermitteln, nicht aber die Datei selber. Vielleicht gibt es Programme dazu, ich kenne so aber keins... Geht aber mit .NET sicherlich auch ganz einfach mit irgendeiner HTTP-Klasse, keine Ahnung, wie gut du da bist :)

Edit:
Jetzt habe ich es erst richtig verstanden, Du willst die URL aufrufen und den Namen übergeben, damit das Datei-Feld auf der Seite, die dann geöffnet wird, direkt ausgefüllt wird... Tja, wüsste auch nicht, wie man das machen soll, denke, dass man das im Browser nicht einstellen kann...
 
Thema:

Eintrag ins Datei-Kontextmenü hinzufügen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.966
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben