Drag Drop Access Denied

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Humax.

    Drag Drop Access Denied

    Hallo, ich habe eine Form auf der Drag & Drop aktiviert ist um Dateien / Verknüpfungen darauf zu ziehen.
    Wenn eine Verknüpfung darauf gezogen wird, soll der Pfad / das Ziel der Verknüpfung ermittelt werden.
    Bei manchen Verknüpfungen gibt es bei der folgenden Zeile eine Fehlermeldung (AccessDenied).

    VB.NET-Quellcode

    1. ​oLink = DirectCast(oFolder.Items.Item(sFile).GetLink, Shell32.ShellLinkObject)

    Der Fehler tritt zum Beispiel auf, wenn sich die Verknüpfung im Ordner "C:\Program Files (x86)..." befindet. Eine Verknüpfung beispielsweise in "C:\Users..." macht keine Probleme.

    Habe dann versucht die Anwendung mit Adminrechten zu starten, aber dann nimmt die Anwendung gar keine Dateien per Drag and Drop an.
    Jemand eine Idee?
    Jou.
    Von Admin zu Admin geht D&D, sobald nur einer Admin ist, geht es nicht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    Der win-Standard-Explorer kann das glaub nicht.
    Jou, das hatten wir neulich untersucht.
    Ich arbeite mit dem Salamander, der kann das.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    Aber vlt. erklärst du, wozu du das brauchst - vlt gibts eine andere Lösung.

    Ja ich bin natürlich auch für andere Lösungen offen...
    Ich will einen unaufgeräumten Desktop übersichtlicher machen. Dass heißt da sind zig von Programmen / Verknüpfungen / Dateien abgelegt. Ich will nun dass man die einfach auf die Form ziehen kann und dann von dort aus starten kann. Das Programm funktioniert soweit auch. Auch kann man alles manuell eingeben. Aber einfacher für den Endanwender wäre es einfach die Verknüpfung in die Form zu ziehen und das Programm macht dann alles andere ( den Zielpfad auslesen, Namen vergeben) selbst.

    Hoffe es ist klar, was ich bezwecke.

    Humax schrieb:

    Hoffe es ist klar, was ich bezwecke.
    Da brauchst Du ein Programm, das einmal so und einmal als Admin startet. Kannst Du im Desktop-Icon festlegen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hmm, anders geht das nicht? Es soll ja einfach sein - und der Anwender der es nicht mal schafft Ordnung zu halten, der hat womöglich auch Probleme ein Programm mal normal und mal als Admin zu starten.
    Und was dann auch nicht geht ist es Verknüpfungen aus dem Startmenu (links unten im Windowsfenster) drauf zu ziehen. Die nicht versierten Anwender wissen ja oft nicht wo z.B. Excel installiert ist und rechts KLick auf Eigenschaften bekommen sie auch nicht ohne Anleitung hin.

    Humax schrieb:

    der hat womöglich auch Probleme ein Programm mal normal und mal als Admin zu starten.

    RodFromGermany schrieb:

    Kannst Du im Desktop-Icon festlegen.

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja klar, ich weiß wie das geht. Ich rede ja von den Anwendern... Da wissen beileibe viele nicht viel...

    Aber nochmal zurück. Ich habe jetzt meinem Programm nochmal Adminrechte gegeben und die Verknüpfung von einem Dateiexplorer mit Adminrechten auf die Form gezogen. Ich kann so also den Zielpfad ermitteln, aber jetzt taucht ein neues Problem auf. Wenn ich das Programm (Zielpfad) dann mit

    VB.NET-Quellcode

    1. Process.Start

    ausführe, wird die Datei nicht gefunden. Habe den Pfad überprüft, der stimmt und die Datei ist auch da...?

    Humax schrieb:

    Ich rede ja von den Anwendern...
    Du willst Dein Programm unerfahrenen Usern überlassen, damit die statt eines Doppelklick ein D&D auf Dein Programm machen, um das Programm zu starten?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!