Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Zuletzt besuchten Ordner in Temp-Pfad speichern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  Zuletzt besuchten Ordner in Temp-Pfad speichern (929 mal gelesen)
WolfgangSCH
Mitglied



Sehen Sie sich das Profil von WolfgangSCH an!   Senden Sie eine Private Message an WolfgangSCH  Schreiben Sie einen Gästebucheintrag für WolfgangSCH

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 07. Jul. 2004 14:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich bin gerade dabei ein kleines VB6 Programm zu schreiben und bin dabei auf folgendes Problem gestoßen:
Wenn ich das Programm starte und AutoCAD-DWG's mit dem Windows Datei öffnen-Dialog (Common Dialog) auswähle, wird üblicherweise der Ordner angezeigt, welcher unter CommonDialog.InitDir definiert ist.
Ich möchte aber den zuletzt besuchten Ordner in einer Datei in einem Temp-Ordner speichern, damit er mir nach erneutem Starten des Programms wieder aus dieser Datei ausgelesen und beim Datei-öffnen Dialog angezeigt wird.
Nun mein Problem:  Welchen Temp-Ordner nehme ich, damit von jeder Windows-Version (95/98/ME/2000/XP) immer auf diese Datei zugegriffen werden kann?
Wie verhält es sich wenn mehrere Benutzerkonten angelegt sind?
Ist vielleicht eine Speicherung des Ordners in der Registry vorzuziehen? Wo speichere ich dort den Ordner, damit er unter allen Windows-Versionen wieder ausgelesen werden kann?
Vielen Dank vorab.

Gruß
Wolfgang

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BloodyMess
Mitglied
Applicationingenieur


Sehen Sie sich das Profil von BloodyMess an!   Senden Sie eine Private Message an BloodyMess  Schreiben Sie einen Gästebucheintrag für BloodyMess

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 07. Jul. 2004 21:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangSCH 10 Unities + Antwort hilfreich

Hallo Wolfgang,

Zitat:

Ich möchte aber den zuletzt besuchten Ordner in einer Datei in einem Temp-Ordner speichern

Du kannst Dir im Stammverzeichnis einen eigenen Temp-Ordner anlegen und somit immer auf diesen Ort zugreifen oder Du liest Dir über nachfolgende Funktion das Systemverzeichnis aus und legst Dir dort einen Ordner an. Ich finde das ist eigentlich egal wo. Beide Sachen sind recht zuverlässig. Erste Variante kenne ich im Einsatz.

Code:

Declare Function GetSystemDirectoryA _
Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Public Function SystemDir()
    Dim Buffer As String
    Buffer = String(255, 0)

    SystemDir = Left(Buffer, GetSystemDirectoryA(Buffer, 255))
    Debug.Print SystemDir
End Function


Die sich daraus ergebenden Ordner für die Systeme sind:
C:\Windows\System (Windows 95/98/Me)
C:\WINNT\System32 (Windows NT/2000)
C:\Windows\System32 (Windows XP)

Du bekommst aber mit den beiden Varianten ein Problem, da Sie nicht Benutzerabhängig sind, ausser Du speicherst den Benutzer mit ab und suchst dann in dem File nach dem Benutzer und ermittelst so den Ordner.

Code:
Debug.Print Environ("UserName")

...

Zitat:
Ist vielleicht eine Speicherung des Ordners in der Registry vorzuziehen?

Das ist eine sehr interessante Sache - verbunden mit "böse" Code, aber trotzdem kein Hexenwerk. Es würde deine Sache natürlich erheblich vereinfachen, wenn Du hier -> HKEY_CURRENT_USER (soweit ich weiß, hat jedes Windows diesen RegSchlüssel) deine Einträge speichern würdest und dort einfach einen UnterSchlüssel anlegen würdest und auch mußt, da es Dir in erster Ebene nicht gestattet ist Schlüssel anzulegen. Somit hast Du immer zum passenden User den passenden Wert(deinen abgespeicherten Ordner).


Hab gerade gesehen, dass der BeispielCode ja schon sowas ähnliches macht. Also sollte es ja kein Problem mehr darstellen.
http://www.vbarchiv.net/archiv/tipp_details.php?pid=155

Was noch zu beachten wäre, was passiert, wenn der Admin die Registrierung gesperrt hat? Ich weiss das man mit vbs-Dateien ohne weiteres in eine gesperrte Registrierung schreiben kann, aber ob das mit diesem Code geht mußt Du mal ausprobieren.

Viel Spaß ... Gruß TP

[Diese Nachricht wurde von BloodyMess am 07. Jul. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

WolfgangSCH
Mitglied



Sehen Sie sich das Profil von WolfgangSCH an!   Senden Sie eine Private Message an WolfgangSCH  Schreiben Sie einen Gästebucheintrag für WolfgangSCH

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 07. Jul. 2004 23:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
vielen Dank für Deine schnelle Hilfe.
Ich werde die von Dir gegebenen Tipps einmal ausprobieren und abwägen, was für mich die beste Lösung ist.

Gruß
Wolfgang

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 07. Jul. 2004 23:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangSCH 10 Unities + Antwort hilfreich

Hi & Nachti Wolfgang,

ggf auch mal die recentFiles angucken, wobei das jetz nich auf verschiedenenen Rechnern funktionieren muss, nurmal so als Idee halt 

lg Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz