| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > ACAD.VBA.Пути к стандартным папкам ACAD

ACAD.VBA.Пути к стандартным папкам ACAD

Ответ
Поиск в этой теме
Непрочитано 28.06.2016, 07:20 #1
ACAD.VBA.Пути к стандартным папкам ACAD
Владимир_М
 
Регистрация: 05.11.2015
Сообщений: 585

Всегда держал свои приложения и текстовые файлы, которые использовались приложениями, в папке созданной относительно стандартной папки:
типа PassFile = Application.Path & "\хххх"
(знаю не лучший вариант, ну да так уж повелось еще с прошлого века)
Нынче компьютерная безопасность достигла уже таких необычайных высот, что запрещает даже просто копировать файлы в основную папку Акада.
Подскажите, пожалуйста, куды бедному крестьянину податься со своими приложениями? да так, чтобы IT вместе с СБ больше уже не вставляла палки в колеса.
Просмотров: 3324
 
Непрочитано 28.06.2016, 08:53
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Копируешь все в %AppData%\СвойКаталог и прописываешь этот путь в путях поддержки.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.06.2016, 09:15
#3
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Я имел ввиду не только куда складывать, но и получить какой-то стандартный путь уже по ходу выполнения приложения...
В акадовских переменных существует куча вариантов разных путей (и внутри AppData, в том числе).
Так вот, есть ли у кого какие предпочтения среди этих вариантов. Например, если взять переменную
LOGFILEPATH "C:\Users\ХХХХ\appdata\local\autodesk\autocad 2014\r19.1\rus" никаких противопоказаний не может быть?
Или может вообще это все как-то не так делается программно...
Владимир_М вне форума  
 
Непрочитано 28.06.2016, 10:20
1 | #4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


LOGFILEPATH вообще-то для каждого документа своя, ЕМНИП.
А так - определи свой каталог (в %AppData% просто писать проще всего - туда-то права на запись быть должны; иначе 99% софта просто не станет работать). Создать его, прописать, может быть, дополнительно ввести в реестр и читать оттуда. Вариантов масса - все зависит от конечных целей, от того, что там будет храниться и т.д.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.06.2016, 10:46
#5
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
LOGFILEPATH вообще-то для каждого документа своя, ЕМНИП.
LOGFILENAME "C:\Users\ХХХХ\appdata\local\autodesk\autocad 2014\r19.1\rus\Чертеж1_1_1_2451.log"
Видимо, я упустил важную часть вопроса. Речь идет об установке приложений на чужой комп, и про препоны этому со стороны IT-тишников.
Создать его, прописать - это все правильно. но... Перед appdata пишется имя пользователя ХХХХ заранее не известное, а мне надо, по ходу выполнения приложения, его уже знать и из кода записывать и читать вспомогательный текстовый файл.
Спасибо, Алексей, благодаря твоим подсказкам, кажется, определился.
Владимир_М вне форума  
 
Непрочитано 28.06.2016, 10:50
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Тогда записывай этот путь в реестр, например, в ключ HKCU\Software\Vladimir\MyCoolSoftware, ключ Paths. И читай его оттуда.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.06.2016, 11:25
#7
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Может сгодится:
http://forum.dwg.ru/showpost.php?p=1496060&postcount=9
trushev вне форума  
 
Непрочитано 28.06.2016, 11:25
1 | #8
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
Перед appdata пишется имя пользователя ХХХХ заранее не известное, а мне надо, по ходу выполнения приложения, его уже знать и из кода записывать и читать вспомогательный текстовый файл.
так оно известно, все придумано до нас
как-то так (путь с именем юзера)
Код:
[Выделить все]
 Set Wsh = CreateObject("WScript.Shell")
    PathMyDocuments = Wsh.SpecialFolders("MyDocuments")
    Set Wsh = Nothing
'<Путь до папки Roaming>
    PathRoaming = Environ$("APPDATA")
'<Путь до папки \ProgramData>
    PathProgramData = Environ$("ALLUSERSPROFILE")
про Environ гугл в помощь.
пути АК
Код:
[Выделить все]
Set objApp = GetObject(, "AutoCAD.Application")
Set ThisDraw = objApp.ActiveDocument
Set ACADPref = ThisDrawing.Application.Preferences 'все пути  АК Preferences.Files
Set ACADFiles = ACADPref.Files 'потом просто обращаешься к интересующему
----- добавлено через ~55 мин. -----
по быстрому создать папочку\в папочке
Код:
[Выделить все]
Declare Function SHCreateDirectoryEx _
        Lib "shell32" _
        Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, _
                                      ByVal pszPath As String, _
                                      ByVal psa As Any) As Long
Sub main()
    PathMyAplINI = Environ$("APPDATA") & "\MyApl\ini" 'C:\Users\ИмяЮзера\AppData\Roaming\MyApl\ini"
    'проверяем наличие ini и если надо создаем ее
    If Len(Dir(PathMyAplINI, vbDirectory)) = 0 Then    ' если папка отсутствует
        SHCreateDirectoryEx ByVal 0&, PathMyAplINI, ByVal 0&     ' создаём ее
    End If
End Sub
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 28.06.2016 в 12:27. Причина: добавил код
doctorraz вне форума  
 
Автор темы   Непрочитано 28.06.2016, 12:28
#9
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Спасибо всем, столько вариантов... будем посмотреть
Владимир_М вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > ACAD.VBA.Пути к стандартным папкам ACAD

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со шрифтами Acad 2006 - Acad 2008 Cartman AutoCAD 40 15.03.2013 09:05
Как научить acad 2008(2010) понимать text override из acad 2002? atum AutoCAD 12 18.02.2011 20:59
при открытии чертежа (ACAD 64x 2008) на ACAD 32x 2008rus сбивается текст Р.Д. AutoCAD 5 21.04.2010 23:49
Проблема вставки диаграмм в ACAD 2009 из Excel 2007 ST2 AutoCAD 1 26.05.2009 01:30
Как перегнать чертеж из ACad 2004 в ACad 2002? bagatur AutoCAD 9 15.12.2003 10:52