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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp, Как узнать буквы логических дисков

Lisp, Как узнать буквы логических дисков

Ответ
Поиск в этой теме
Непрочитано 10.04.2014, 16:02 #1
Lisp, Как узнать буквы логических дисков
sdv79
 
Инженер ЭОМ
 
Москва
Регистрация: 05.03.2009
Сообщений: 215

Подскажите как узнать буквы всех логических дисков и по возможности сетевых дисков.
Просмотров: 3784
 
Непрочитано 10.04.2014, 16:25
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Страшный вирус пишешь?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 10.04.2014, 16:30
#3
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


лучше, антивирус!
sdv79 вне форума  
 
Непрочитано 10.04.2014, 16:44
#4
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


doslib
Sleekka вне форума  
 
Автор темы   Непрочитано 10.04.2014, 17:49
#5
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


doslib стороннее приложение, хотелось бы средствами lisp
sdv79 вне форума  
 
Непрочитано 10.04.2014, 18:12
#6
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


пытаться создать файл на каждом диске по алфавиту, и обрабатывать ошибку, но библиотеки не для этого писались...
Sleekka вне форума  
 
Непрочитано 10.04.2014, 21:08
1 | #7
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Код:
[Выделить все]
 (vlax-for Drive
	  (vlax-get
	    (vlax-get-or-create-object "Scripting.FileSystemObject")
	    'Drives
	  )
  (setq lst (cons (vlax-get Drive 'DriveLetter) lst))
)
Vov.Ka вне форума  
 
Непрочитано 11.04.2014, 07:14
#8
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
(vlax-get-or-create-object "Scripting.FileSystemObject")
Если этот объект, являющийся дырой для вирусов, не "забанен" разумным администратором.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 11.04.2014, 13:28
#9
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


Vov.Ka СПАСИБО! ShaggyDoc как проверить через lisp "забанен" ли, разумным администратором.
sdv79 вне форума  
 
Непрочитано 11.04.2014, 13:48
#10
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от sdv79 Посмотреть сообщение
Vov.Ka СПАСИБО! ShaggyDoc как проверить через lisp "забанен" ли, разумным администратором.
Тогда (vlax-get-or-create-object "Scripting.FileSystemObject") вернет NIL.
Результат создания объектов надо проверять всегда, потому что объект может быть не создан по разным причинам.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 11.04.2014, 15:04
#11
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


Понятно
sdv79 вне форума  
 
Непрочитано 11.04.2014, 15:21
#12
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


как вариант
Код:
[Выделить все]
 (setq i	  64
      lst nil
)
(repeat	26
  (if (vl-file-directory-p (strcat (chr (setq i (1+ i))) ":"))
    (setq lst (cons (chr i) lst))
  )
)
но он не очень универсален (опирается на файловую систему)
Vov.Ka вне форума  
 
Автор темы   Непрочитано 11.04.2014, 15:47
#13
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


работает подольше чем предыдущий вариант
sdv79 вне форума  
 
Непрочитано 12.04.2014, 12:32
#14
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Здесь есть пример как определить тип диска (cd-rom, Removeable, Fixed и т.д.)

Цитата:
Which Drives are Available?
From time to time you might want your AutoLISP application to be able to write to a specific drive or drives in a specific order if you are working with a group of users that might do some travelling. If you want to test to see which drives are available through AutoLISP, you could use the function vl-directory-files. This would force you to test each letter combination which can take time and it doesn't tell you if the drive is ready or not. Below is an example using the FSO object to get all the available drives on the machine, and test to see what type of drive it is and if it is ready or not.

;; Begin Code
(defun GetDrives ( / wshFSO driveObjs)
(vl-load-com)

(if (= wshLibImport nil)
(progn
(vlax-import-type-library :tlb-filename "c:\\windows\\system32\\wshom.ocx"
:methods-prefix "wshm-"
:properties-prefix "wshp-"
:constants-prefix "wshk-"
)
(setq wshLibImport T)
)
)

(setq wshFSO (vlax-create-object "Scripting.FileSystemObject"))
(setq driveObjs (wshp-get-Drives wshFSO))

(vlax-for driveObj driveObjs
(progn
(prompt (strcat "\nDrive Letter: " (vlax-get-property driveObj 'DriveLetter)))
(prompt "\nDrive Type: ")
(cond
((= (vlax-get-property driveObj 'DriveLetter) wshk-CDRom)(prompt "CDROM"))
((= (vlax-get-property driveObj 'DriveLetter) wshk-RamDisk)(prompt "Ram Disk"))
((= (vlax-get-property driveObj 'DriveLetter) wshk-Fixed)(prompt "Fixed"))
((= (vlax-get-property driveObj 'DriveLetter) wshk-Removable)(prompt "Removeable"))
((= (vlax-get-property driveObj 'DriveLetter) wshk-UnknownType)(prompt "Unknown"))
)
(prompt (strcat "\nIs Ready: "))
(if (= (vlax-get-property driveObj 'IsReady) :vlax-true)
(prompt "True")
(prompt "False")
)
)
)
(princ)
)
;; End Code

Sincerely,
Lee
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 12.04.2014, 15:15
#15
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


VVA что вы думаете по поводу слов ShaggyDoc?
Есть ли принципиальная разница между запросами
(vlax-get-or-create-object "Scripting.FileSystemObject")
(vlax-create-object "Scripting.FileSystemObject")?
sdv79 вне форума  
 
Непрочитано 12.04.2014, 15:35
#16
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Пароноидальные сисадмины - могут отключить все включая виндоус как таковой - это их проблемы - на практике такие "правильно настроенные" системы ничуть не менее уязвимей и работают как правило гораздо менее стабильней, приносят вреда сами по себе больше чем от возможных виртуальных угроз, но одно верно - уволить этого админа - кошмар для работадателя - сразу все перестанет работать без "великого" - вопрос только как же другие без таких гениев справляются. ИХМО - задача решается выводом соответствующего уведомления об ошибке с руководством для сисадмина как ее исправить (то есть как вернуть систему к первоначальному состоянию). Подстраиваться под чью-то пароною считаю бессмысленным.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 12.04.2014, 16:52
#17
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Рискну предположить, что данная тема была запилена ТС по причине затруднений, связанных с установкой его эпохального детища с не менее культовым названием "МояСхема". На мой взгляд автор имеет глубоко ошибочный подход к сабжу, применяя методы, отличные от общепринятых и руководствуясь своей логикой, лично мне не понятной ни в каком разрезе. Больше года назад ТС получил рекомендации относительно развития своей программы, однако так и не удосужился хоть сколько-то внять советам. Учитывая вышесказанное, я бы воздержался рекомендовать наработки ТС при наличии альтернативных решений, как платных, так и бесплатных.
gomer вне форума  
 
Непрочитано 12.04.2014, 16:59
#18
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


то gomer - лучшую рекламу было сложно придумать ...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 12.04.2014, 17:25
#19
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


The gomer.
Profan вне форума  
 
Непрочитано 12.04.2014, 19:18
#20
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Пароноидальные сисадмины
Это правильные сисадмины, такие они и должны быть. В том числе они должны быть и "убийцами гениев" - безответственных программистов, делающих программы не так, как надо, а так как могут или считают нужным.

Конкретно WSH - это самая настоящая дыра, которую MS "хотели как лучше", чтобы заменить bat-файлы на что-то "более гибкое", но предоставили инструменты для вредо-писателей на скриптовых языках. В том числе со встраиванием в ВЕБ-страницы. Для юных "кул-хацкеров" публикуется много примеров, как использовать Visual Basic Scripting Edition, на котором написано подавляющие большинство Internet – червей.

Если уж на AutoLISP действительно требуется написать что-то для действия с файловой системой, то нужно просто разработать свой безопасный COM-сервер и работать с ним. Можно и ARX (что сделано в DOSlib), но это сложнее.
ShaggyDoc вне форума  
 
Непрочитано 13.04.2014, 00:20
#21
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Такой подход к обеспечению безопасности - бред и гнать такого правильного админа надо как можно скорей - он не обеспечивает безопасность, а не дает пользователям работать. Дыры есть везде, в том числе и на уровне процессора (опкоды позволяющие выйти в "режим ядра") - с ними что делать - из розетки выключать - чтоб точно не пробрался. Лечатся они всегда установкой соответсвующих средств безопасности (антивирусы, фильтры, фаерволы и пр.) + плюс регулярным бэкапом и иснтруктажом персоонала - нет страшней вируса чем неграмотный юзер, а не обрезанием штатного функционала системы. Тогда можно и автокад отключать т.к. mnu файлы запускаются (только в самых последних версиях над этим поработали) и могут придти с чертежами - а там startapp который может хоть все поудалять - что на это Ваш умный админ отключит? WSH есть в последнем win8.1 - наверное в ms такие дураки и не знают о такой мощной дыре для всех червей - во всех браузерах сей баг уже сто лет назад пофиксен. По моей практике проблем больше как раз с таким рукописными своими com серверами и пр. ересью.
У нас пять лет был именно такой админ как Вы описываете - но у него была 1 очень правильная черта - права в сети были строго разделены, а свой комп ты мог либо "обеспечивать" сам как хочешь - либо "выдают" настроенно с его дистрибутива (с обрезанием всего и вся). Так вот "его" юзерам эта слабо помогало - ловили и зверей и винлокеров и пр. прелести - хотя вроде все "дыры" и порты были закрыты. Причем ловили их не только "тетки", но и с завидной периодичностью он и сам (на свой комп, либо "супер сервер" со своими "безопасными" разработками - после чего естественно падала вся сеть). Я же (три стука по столу) пока ничего не поймал - хотя у меня ничего не отключенно. После очередного косяка (ему, в том числе, бухгалтерия не смогла перечислить зарплату т.к. обновление безопасности банк-клиента работало через закрытый им порт - пока разбирался - пришел вечер пятницы и банк закрылся до понедельника) админ "пересмотрел" жизненную позицию и стал "работать", а не отключать - через некоторое время пришел к выводу что все-же система может работать и не так, как он до этого думал и в конечном итоге и ему и остальным головной боли уменьшилось. Это не сказки как должно быть - это самая, что ни на есть реальная практика.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp, Как узнать буквы логических дисков



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Подскажите пожалуйста, как узнать ширину текста? LastGraff LISP 4 01.02.2012 06:38
LISP. Как узнать площадь LastGraff LISP 2 17.12.2011 18:14
LISP получить список установленных в системе (векторных) шрифтов или хотя бы узнать, установлен ли указанный Ax3 LISP 9 08.02.2011 14:11
LISP: как узнать, AutoCAD 64-bit или 32? VetalBY LISP 12 02.11.2010 05:40
Как средствами LISP узнать, сколько чертежей открыто в AutoCAD? Nike LISP 5 22.06.2010 12:28