Hi,
ja, ich weiß. CADwiesel hat etwas und DOSLib hat dos_getfilem. Außerdem gibt's die eine oder andere ARX oder DLL im Zwischennetz, aber was ist mit purem Visual Lisp?
In VBA kann man direkt auf die Windows API und Common Dialogs zugreifen. Das gleiche müsste aber doch auch mit Visual Lisp funktionieren?!
Windows API geht: (setq vla-ShellObj (vlax-create-object "Shell.Application"))
und dann (vlax-invoke-method vla-ShellObj 'undsoweiter
Leider gibt's hier kein Dialogfeld für Dateiauswahl. Das gäbe es in den Common Dialogs, wenn man denn dran käme:
(setq vla-ComDlg (vlax-create-object "MSComDlg.CommonDialog")) funktioniert leider nicht.
Womit wir schon bei der Zusatzfrage sind: Wie kommt man eigentlich an den passenden Objektnamen? "Shell.Apllication" ist klar, aber woher kommen "MSComDlg.CommonDialog" oder auch "Scripting.FileSystemObject"?
Zurück zum eigentlichen Problem. Wenn sich das Objekt nicht erstellen lässt, lässt sich die Typbibliothek vielleicht importieren:
(vlax-import-type-library
:tlb-filename "c:/windows/system32/comdlg32.dll"
:methods-prefix "dlg-"
roperties-prefix "dlg-"
:constants-prefix "dlg-"
)
geht nicht. Wieso nicht?
Aber, Lichtblick:
(vlax-import-type-library
:tlb-filename "c:/windows/system32/comdlg32.ocx"
:methods-prefix "dlg-"
roperties-prefix "dlg-"
:constants-prefix "dlg-"
)
ist T, hat also funktioniert.
Nur ist leider nirgends dokumentiert, wie man die importierten Constants, Methods, Properties anwenden kann.
Wie und wo müssen die Flags gesetzt werden, die so wichtig für die Funktionsweise des Dialogs sind, wie startet man den Dialog und wäre die Rückgabe überhaupt verwertbar?
Fragen über Fragen
Gruß
CADchup
------------------
www.cadditions.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP