| |
Visual-Basic EinsteigerSetAttr 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? | |
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? | |
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 | |
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! | |
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? | |
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 | |
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 | |
Re: SetAttr hat keine Wirkung | | | Autor: CarloStein | Datum: 24.04.20 14:24 |
| Okay und ein großes Danke!
Bleib gesund! | |
| 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 |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|