Имя: Пароль:
1C
 
Как получить список дисков из 1С
0 Ц_У
 
20.10.10
15:49
Собственно сабж...
Через FileSystemObject не предлагать :)
1 Nexux
 
20.10.10
15:51
Win32_DiskPartition?
2 smaharbA
 
20.10.10
15:52
(0) почему не предлагать ?
3 shuhard
 
20.10.10
15:54
(2) Linux
4 1C-Nick
 
20.10.10
15:55
только методами 1С никак ЕМНИП
5 Ц_У
 
20.10.10
15:55
(2) на некоторых клиентах ФСО не "установлено" что ли так сказать, причину знаю, библиотека отказывается регистрироваться, scripten - отказывается устанавливаться.
6 shuhard
 
20.10.10
15:56
(5) перебрать в попытке все диски
7 Ц_У
 
20.10.10
15:57
(6) мне нужно серийник диска посмотреть, тип диска и метку прочитать...
8 Aprobator
 
20.10.10
15:58
(7) из 1С? нафига?
9 Ц_У
 
20.10.10
16:00
(8) нужно прочитать данные с флешки с определенным серийником и меткой
10 AndreyFAN
 
20.10.10
16:00
опять защищаемся?
11 Ц_У
 
20.10.10
16:01
(10) ну можно и так сказать..
12 aleks-id
 
20.10.10
16:01
через реестр прочитай
13 shuhard
 
20.10.10
16:02
(9) тебе ещё в (2) ответили
WMI
http://www.script-coding.info/WMI_FileSystem.html
14 Fynjy
 
20.10.10
16:06
Если без wmi можно через net share извратиться
15 Ц_У
 
20.10.10
16:07
(9) да читаю уже, в (1)
спасибо за ссылку,
16 shuhard
 
20.10.10
16:07
(14) или поймать вывод diskpart  в текстовый файлик
17 Fynjy
 
20.10.10
16:10
(16) Забыл о нем совсем, да через файлик с сценарием
18 smaharbA
 
20.10.10
16:15
cmd /v:on /c "echo off & for /l %i in (0,1,25) do (set letter=qwertyuiopasdfghjklzxcvbnm & dir !letter:~%i,1!:\ 2> nul > nul && echo !letter:~%i,1!:)"

сразу и доступные на чтение
19 aleks-id
 
20.10.10
16:15
вот тут все разжевали http://www.sql.ru/forum/actualthread.aspx?tid=343844
20 shuhard
 
20.10.10
16:21
(19) FileSystemObject у ТС не работает
21 smaharbA
 
20.10.10
16:45
в восьмерке еще упростится код


//*******************************************
Процедура Сформировать()
   Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
   Скрипт.language="javascript";
   Скрипт.Eval("Перечисление=function(x){return new Enumerator(x)}");
   Это=Скрипт.Eval("this");
   Шел=СоздатьОбъект("shell.application");
   Компьютер=Шел.namespace("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}");
   Темы=Компьютер.items();
   Темы.Filter(2048,"*");
   Что=Это.Перечисление(Темы);
   Пока Что.atEnd(0)=0 Цикл
       Сообщить(Что.item(0).Path + " -> " + Что.item(0).Name);
       Что.moveNext(0);
   КонецЦикла;
КонецПроцедуры
22 smaharbA
 
20.10.10
16:47
+ если нет уверенности в постоянстве этой фигни - "20D04FE0-3AEA-1069-A2D8-08002B30309D" - могу рассказать, как до нее добраться - код не намного увеличится
(а если восьмерка может передать интеджер, то еще просче)
23 Ц_У
 
20.10.10
17:17
//всем спасибо за участие
//вот что получилось
МеткаДиска = "000000";
   ServicesSet = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2");
   СписокФлешДисков = ServicesSet.ExecQuery("Select Name,VolumeName,VolumeSerialNumber from Win32_LogicalDisk WHERE VolumeSerialNumber like '"+МеткаДиска+"'");
   Если СписокФлешДисков.Count>0 Тогда
   Для Каждого ФлешДиск Из СписокФлешДисков Цикл
       Попытка
           Сообщить(ФлешДиск.Name);
           Сообщить(ФлешДиск.VolumeName);
           Сообщить(ФлешДиск.VolumeSerialNumber);
       Исключение
           Продолжить;
       КонецПопытки;
   КонецЦикла;
   КонецЕсли;
24 rusrus
 
20.10.10
17:24
Это же так можно и "не обнаружен ключ защиты" для посторонних эмульнуть :)
25 smaharbA
 
20.10.10
17:25
+(21) к (23)

   Шел=СоздатьОбъект("shell.application");
   Компьютер=Шел.namespace("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}");
   Темы=Компьютер.items();
   Темы.Filter(2048,"*");
   Для Каждого Диск Из Темы
       Сообщить(Диск.Path + " -> " + Диск.Name);
   КонецЦикла;
26 Ц_У
 
20.10.10
17:35
(25)Пригодится, спасибо!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.