vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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

Visual-Basic Einsteiger
SetAttr hat keine Wirkung 
Autor: CarloStein
Datum: 22.04.20 18:54

Liebes Forum!

Ich brauche wieder einmal mehr euere Hilfe!
Ich arbeite mit Windows 10 VB 6

Ich habe ein kleines Programm für den privaten Gebrauch geschrieben! Für das Installieren des Programms habe ich den Verpackungsassistenten von VB 6 verwendet. Ca. vor 6 Jahren habe ich das Programm auf dem "alten Laptop" installiert! Funktioniert ausgezeichnet!
Nun habe ich mir einen neuen Laptop gekauft und wollte darauf mit dem selben Installations-Programm
mein Programm installieren. Zu meiner Verwunderung stattet Windows von selbst meine Verzeichnisse mit einem Schreibschutz aus. Meine Verzeichnisse befinden sich in C:\Program x(86)\usw.
Wenn ich nun mein Programm mit Adminrechten starte und mit SettAttr diesen Schreibschutz aufheben will erhalte ich den Fehler Nr. 53 -> ich überprüfe den Befehl auf Schreibfehler -> Fehlermeldung kommt trozdem!
Ich verwende den Befehl: SetAttr ProgPfad, vbNormal (ProgPfad: C:\Program x(86)\Ahnen)
Kann mir jemand sagen was da falslch läuft / oder besser was ich falsch mache?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: ModeratorDieter (Moderator)
Datum: 22.04.20 18:57

Das liegt i.a.R. an den fehlenden Windows-Rechten.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: CarloStein
Datum: 22.04.20 19:08

Hallo Dieter!

Vorerst danke für deine Antwort!
Also fehlen meinem Programm obwohl ich es mit Admin-Rechten starte, noch weitere Rechte...
Wie löse ich das Problem? Oder geht das mit VB 6 Programmen nicht zu lösen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: Wobi
Datum: 23.04.20 02:37

Hallo,
die Zeiten von Windows haben sich in den letzten Jahren/Jahrzehnten ständig geändert in Sachen Sicherheit.
Dazu kamen Sachen wie Benutzerkontensteuerung (UAC) bis hin zu 64bit Versionen von Windows die es "damals" als VB6 aktuell war noch nicht(?) gab.

Aber keine Angst, VB6 Programme funktionieren auch heute noch meist einwandfrei wenn man sich an ein paar Regeln hält. Ich weiß nicht, was dein Programm macht, aber so grob gesagt versucht du wahrscheinlich ein Verzeichnis (Ahnen) aus deinem Programm heraus zu beschreiben. Im Programmverzeichnis und dessen Unterverzeichnissen hast du aber normalerweise kein Schreibrechte.

Für Anwendungsdaten gibt es spezielle Verzeichnisse in die auch normale Benutzer schreiben dürfen, dafür sind die vorgesehen. Dort kannst du dir auch Verzeichnisse für dein eigenes Programm anlegen. Da gehören Daten hin die durch dein Programm erzeugt werden (grob vereinfacht) Es ist dann auch nicht notwendig dein Programm als Admin zu starten. (Man hat dann trotzdem nicht immer Admin Rechte) Am einfachsten ist es du stellst dein Programm kurz um und gut ist es.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: ModeratorDieter (Moderator)
Datum: 23.04.20 06:49

Versuch's mal mit Inno Setup als Installationstool. Da kannst du auch die Zugriffsrechte auf Verzeichnisse direkt während der Installation angeben:

Auszug aus einem meiner Setups:

...
[Dirs]
Name: "{commonappdata}\roSoft\Vereinsprofi5\ELSTER"; Permissions: users-modify
...

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: CarloStein
Datum: 23.04.20 11:18

Hallo Wobi, hallo Dieter!

Zuerst recht herzlichen Dank an euch für euere Antworten und Hilfestellung.

Es ist tatsächlich so wie Wobi in seinem Beitrag geschrieben hat ....aber so grob gesagt versucht du wahrscheinlich ein Verzeichnis (Ahnen) aus deinem Programm heraus zu beschreiben.... ja, hatte in Unterverzeichnissen die Daten abgespeichert! Nun, dank eurer Hilfe mache ich es dem Vorschlag Wobis nach und ändere für die Speicherung meiner Daten das Verzeichnis (lege ein neues Verzeichnis in C: an)
Das ist die einfachste Art mein Progamm wieder lauffähig zu machen.

Dieter, Inno Setup mit seinen Möglichkeiten wäre natürlich ebenfalls eine Lösung. Aber ich benutze seit je her den Verpackungsassistenten von VB 6, welcher meinen Ansprüchen genügt, auch wenn es da mit Inno Setup eine bessere Lösung gäbe. Das mit Inno Setup richtig zu "gestalten" - ich denke dazu fehlt mir nicht nur die Erfahrung sondern noch einiges mehr!

Ich wusste im ersten Augenblick nicht was da schief läuft. Warum es mit SettAttr nicht funktionierte!
Aber nun habe ich ja eine Lösung, die noch dazu wenig Arbeit macht!

Nochmals recht herzlichen Dank an Wobi und Dieter!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: CarloStein
Datum: 23.04.20 12:43

Hallo Wobi, hallo Dieter!

Nochmals hätte ich eine Frage an euch:

Egal wo ich ein Verzeichnis am PC erstelle ob auf C: oder D:, Windows macht es sofort Schreibgeschütz! Wenn ich nun den Schreibschutz mit VB 6 aufheben will, nützt das gar nichts! Der Schreibschutz bleibt bestehen!

Muss man das als VB6 ler so hinnehmen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: Wobi
Datum: 24.04.20 04:13

Hallo,
wie schon gesagt, man sollte ein Verzeichnis nehmen was von Hause aus Schreibrechte hat und dann dort entsprechend seiner Anwendung weitere Unterverzeichnisse anlegen.

Das hat auch nichts mit VB6 zu tun. Starte mal den Windows Editor, schreib rein blabla und versuche über Datei/Speichern unter eine Datei mit dem Namen Test.txt zu erstellen. Da kommt direkt die Meldung, dass das nicht geht.

Es bringt gar nichts mit absoluten Verzeichnissen zu arbeiten und dann nachträglich zu versuchen die entsprechenden Rechte umzubiegen.

Schau dir mal folgende Links an:
https://www.vbarchiv.net/tipps/details.php?id=2277
https://www.vbarchiv.net/tipps/tipp_273-standard-system-ordner-ermitteln.html

Auch Dieter hat in seiner Antwort ja genau das beschrieben mit
{commonappdata}\roSoft\Vereinsprofi5\ELSTER

Das commonappdata gehört auch zu den SpecialFolders und dient stellvertretend für die Bezeichnung wie man sie im Windows Explorer lesen kann.

Als diese "Poblematik" damals neu war und ich mich noch nicht damit aus kannte, habe ich mir ein kleines Testprojekt gemacht welches diese Verzeichnisse die für mich wichtig waren auflistet und unter verschiedenen Windows Versionen getestet. Je nach Betriebssystem (W2K bis W10) kann der Klarname durchaus anders lauten, aber funktioniert hat es immer.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: CarloStein
Datum: 24.04.20 13:10

Nochmals danke für eure Antworten!

Ich habe mich dazu entschlossen, die Daten meiner Programme nicht im Programm-Verzeichnis anzulegen.

Ich habe nur noch eine Frage an Dieter: Welche Version soll ich mir von Inno Setup downloaden damit es mit deinem Workshop "Anwendung verpacken und weitergeben" übereinstimmt? Oder ist die Version egal?

Mit bestem Dank für eure Bemühungen!
CarloStein
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: ModeratorDieter (Moderator)
Datum: 24.04.20 13:23

Ich würde mind. Version 5 downloaden

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SetAttr hat keine Wirkung 
Autor: CarloStein
Datum: 24.04.20 14:24

Okay und ein großes Danke!
Bleib gesund!
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