vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Ordner bzw. Dateizugriff 
Autor: Dirk.B
Datum: 19.11.20 08:48

Guten Morgen,
ich möchte gern per vb.net eine *.lnk Verknüpfung im Ordner
"C:\Users\Public\Desktop" ändern und zwar die "Arguments".
Problem hierbei ist/sind die Zugriffsrechte.

Hat jemand einen Lösungsansatz, wie ich dennoch die *.lnk ändern kann.
Rechtevergabe kurz erweitern und wieder zurücksetzen, oder so ähnlich?

Dieses habe ich schon probiert aber ohne Erfolg:
https://www.vbarchiv.net/tipps/tipp_1996-rechte-im-dateisystem-besitzer.html

Hier mein bisheriger Test bzgl. "C:\Users\Public\Desktop".
	Private Sub Button5_Click(sender As Object, e As EventArgs) Handles _
  Button5.Click
		'//;;
		Dim pathx As String = Nothing
		Dim pathxx As String = Nothing
		'//;;
		For Each fi As String In My.Computer.FileSystem.GetFiles( _
  "C:\Users\Public\Desktop", FileIO.SearchOption.SearchTopLevelOnly, "*.lnk")
			pathx = fi.Substring(fi.LastIndexOf("\") + 1)
			If pathx.StartsWith("AutoCAD " & "2021") = True Then
				pathxx = pathx
			End If
		Next
		'//;;
		MsgBox(pathxx)
		'//;;
		Dim NewArg01 As String = " /product ACAD /language " & """de-DE""" & " /p " & _
  "profilname"
		Dim NewArg02 As String = " /product ACAD /language " & """de-DE""" & "/nologo"
		Dim NewArg03 As String = " /product ACAD /language " & """de-DE""" & _
  "/nologo" & " /p " & "borowski2cad"
		'//;;
		Dim shell As New IWshShell_Class()
		Dim path As String = IO.Path.Combine(Environment.GetFolderPath( _
  Environment.SpecialFolder.CommonDesktopDirectory), pathxx)
		'//;;
		MsgBox(path)
		'//;;
		Dim sC As IWshShortcut = DirectCast(shell.CreateShortcut(path), IWshShortcut)
		'//;;
		Try
			MsgBox(sC.Arguments)
			'//;;
			sC.Arguments = NewArg01
			sC.Save()
			'//;;
			MsgBox(sC.Arguments)
			'//;;
		Catch ex As System.Exception
			MsgBox("ACHTUNG!" & vbCrLf & ex.Message, vbCritical)
			Return
		End Try
		'//;;
	End Sub
Bei *.lnk Verknüpfungen unter "C:\Users\...\Desktop" ist das kein Problem, da dieser Ordner lese und schreib Rechte besitzt.

	Private Sub Button4_Click(sender As Object, e As EventArgs) Handles _
  Button4.Click
		'//;;
		Dim NewArg01 As String = " /product ACAD /language " & """de-DE""" & " /p " & _
  "profilname"
		Dim NewArg02 As String = " /product ACAD /language " & """de-DE""" & "/nologo"
		'//;;
		Dim shell As New IWshShell_Class()
		Dim path As String = IO.Path.Combine(Environment.GetFolderPath( _
  Environment.SpecialFolder.Desktop), "Test AutoCAD 2021 - Deutsch (" & _
  "German).lnk")
		'//;;
		MsgBox(path)
		'//;;
		Dim sC As IWshShortcut = DirectCast(shell.CreateShortcut(path), IWshShortcut)
		'//;;
		Try
			MsgBox(sC.Arguments)
			'//;;
			sC.Arguments = NewArg01
			sC.Save()
			'//;;
			MsgBox(sC.Arguments)
			'//;;
		Catch ex As System.Exception
			MsgBox("ACHTUNG!" & vbCrLf & ex.Message, vbCritical)
			Return
		End Try
		'//;;;
	End Sub
Vielen Dank im Voraus.

VG

Dirk

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ordner bzw. Dateizugriff 
Autor: effeff
Datum: 26.11.20 17:29

Entweder erstellst Du Dein Programm als EXE-Datei und führst es dann mit rechter Maustaste und "Ausführen als Administrator" aus oder du impersonierst...

https://docs.microsoft.com/de-de/dotnet/api/system.security.principal.windowsidentity.impersonate?view=netframework-4.8

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel