<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: VirtualPC подключение USB устройств]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5841&amp;type=atom" />
	<updated>2011-08-04T07:39:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5841</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50362#p50362" />
			<content type="html"><![CDATA[<p>Добавил перед телом скрипта таймер в 5 минут, и все VM подгружается за 3-4 минуты и включается основной скрипт с подключением USB устройства. Хоть и криво сделано, но работает как часы <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Alexs37]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=9180</uri>
			</author>
			<updated>2011-08-04T07:39:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50362#p50362</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48847#p48847" />
			<content type="html"><![CDATA[<p>Так чего делать, как избежать ошибки?<br />На сегодня пока решил так:<br /></p><div class="codebox"><pre><code>vmname = &quot;Windows XP Mode&quot; &#039;ваша VM
Device_String = &quot;Photosmart Pro B8300 series&quot;  &#039;&quot;WorkCentre 4118 Series&quot; &#039;  Ваше USB устройство

&#039;Получить Virtual PC объектов
Set objVPC = CreateObject(&quot;VirtualPC.Application&quot;)

&#039;Найти виртуальной машины
Set objVM = objVPC.FindVirtualMachine(vmname)
If objVM Is Nothing Then
  WScript.Echo &quot;Не удалось найти виртуальную машину: &quot; &amp; vmname
  WScript.Quit 2
End If

On Error Resume Next

&#039; Запускаем бесконечный цикл ожидания
While 1
    WScript.Sleep 2000

    &#039;Получить коллекцию USB устройств
    Set usbDevicesColl = objVPC.USBDeviceCollection
    For Each usbDevice In usbDevicesColl
      If LCase(usbDevice.DeviceString) = LCase(Device_String) Then
      &#039;Присоединить устройство USB к VM
            Set objAssign = objVM.AttachUSBDevice(usbDevice)
             Exit For
      End If
    Next
Wend</code></pre></div><p>В результате принтер всегда подключен к виртуалке, не зависимо от отключения, сбоев и того подобного. Единственно при автозагрузке не работает, т.к. VM еще не запустилась, а скрипт уже пытается подцепить принтер, в результате после запуска VM принтер не подключается вообще, при попытки подключить в ручную. Сообщает, что принтер уже подключен. Хотя реально нет! Надо добавить проверку статуса VM.</p>]]></content>
			<author>
				<name><![CDATA[Alexs37]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=9180</uri>
			</author>
			<updated>2011-05-31T07:04:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48847#p48847</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48832#p48832" />
			<content type="html"><![CDATA[<p><strong>Ottivel_Wood</strong>: ну вообще-то кроме Microsoft её никто и не выпускает.</p><p><strong>Alexs37</strong><br />Нет, вам не надо ничего регистрировать, всё уже зарегистрировано при инсталляции.</p><p>COM-интерфейс предоставляет само приложение (&quot;VirtualPC.application&quot;).<br />Я так понимаю это новшество появилось в новой версии под Win 7, названной &quot;Windows virtualPC&quot;.<br />Жаль конечно, но XP обошли стороной.</p>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2011-05-30T14:00:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48832#p48832</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48826#p48826" />
			<content type="html"><![CDATA[<p>Microsoft VirtualPC версию не нашел, ну наверно последняя, это под win 7 обновление скачивается и она как бы становиться встроенной в ОС.</p><p>Вот тут описания COM объекта вроде:<a href="http://msdn.microsoft.com/en-us/library/dd796758(v=VS.85).aspx">http://msdn.microsoft.com/en-us/library … S.85).aspx</a></p><p>есть еще скрипт на Windows PowerShell он работает без ошибок, все выполнятся и все подключает.<br /></p><div class="codebox"><pre><code># Подключение к Virtual PC
$vpc = new-object -com VirtualPC.Application

# Получить имя VM &quot;Windows XP Mode&quot;
$vmName =&quot;Windows XP Mode&quot; #Read-host &quot;Укажите имя виртуальной машины, что вы хотите использовать&quot;

# Список доступных устройств USB
write-host &quot;Cследующих устройств USB доступны:&quot;
$vpc.USBDeviceCollection | select -ExpandProperty DeviceString

# Получить имя USB устройства &quot;WorkCentre 4118 Series&quot;
$usb =&quot;WorkCentre 4118 Series&quot; # Read-host &quot;Введите имя устройства USB, что вы хотите подключить к виртуальной машине&quot;

# Получить объект VM 
$vm = $vpc.findVirtualMachine($vmName)

# Получить объект USB
$usbDevice = $vpc.USBDeviceCollection | ? {$_.DeviceString -eq $usb} | select -first 1

write-host $usbDevice

# Прикрепите устройство - это будет ошибкой, если виртуальная машина не работает
$vm.AttachUSBDevice($usbDevice)</code></pre></div><p>Но для меня это совсем далеко.&nbsp; VBS ближе, к телу, потом хочу на VB написать монитор, что бы постоянно следить за подключением USB устройства к VM, если не смогу скрипом сделать.</p><div class="quotebox"><cite>Dmitrii пишет:</cite><blockquote><div class="quotebox"><cite>Ottiwell_Wood пишет:</cite><blockquote><p>Похоже на Microsoft VirtualPC</p></blockquote></div><p>Под XP, например, ни VPC2004, ни VPC2007 стандартно такого интерфейса не предоставляют. Видимо, нужно регистрировать дополнительную библиотеку (компонент).</p></blockquote></div><p>А как зарегистрировать COM и какой?</p>]]></content>
			<author>
				<name><![CDATA[Alexs37]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=9180</uri>
			</author>
			<updated>2011-05-30T06:31:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48826#p48826</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48816#p48816" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Ottiwell_Wood пишет:</cite><blockquote><p>Похоже на Microsoft VirtualPC</p></blockquote></div><p>Под XP, например, ни VPC2004, ни VPC2007 стандартно такого интерфейса не предоставляют. Видимо, нужно регистрировать дополнительную библиотеку (компонент).</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2011-05-30T04:22:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48816#p48816</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48779#p48779" />
			<content type="html"><![CDATA[<p>Похоже на Microsoft VirtualPC</p>]]></content>
			<author>
				<name><![CDATA[Ottiwell_Wood]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26902</uri>
			</author>
			<updated>2011-05-29T14:27:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48779#p48779</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48729#p48729" />
			<content type="html"><![CDATA[<p>Здравствуйте.</p><p>А что это за версия VirtualPC, которая предоставляет COM-интерфейс?<br /> Заинтересовало..</p>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2011-05-27T17:45:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48729#p48729</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: VirtualPC подключение USB устройств]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48728#p48728" />
			<content type="html"><![CDATA[<p>Здравствуйте. <br />Необходимо к вертуальной машине при старте подключить USB устройство. <br />Нашел скриптик на забугорных сайтах, адаптировал немного:</p><div class="codebox"><pre><code>vmname=&quot;Windows XP Mode&quot; &#039;ваша VM
Device_String=&quot;WorkCentre 4118 Series&quot; &#039; Ваше USB устройство

&#039;Получить Virtual PC объектов
Set objVPC = CreateObject(&quot;VirtualPC.Application&quot;)

&#039;Найти виртуальной машины
Set objVM = objVPC.FindVirtualMachine(vmname)
If objVM is Nothing Then
  Wscript.Echo &quot;Не удалось найти виртуальную машину: &quot; &amp; vmname
  WScript.Quit 2
End If

&#039;Получить коллекцию USB устройств
set usbDevicesColl = objVPC.USBDeviceCollection
If usbDevicesColl.Count = 0 Then
  Wscript.Echo &quot;Нет USB устройств, подключенных к машине.&quot;
  WScript.Quit 2
End If

&#039;Переменная если устройство найдено
isFound = 0

For Each usbDevice in usbDevicesColl
  if LCase(usbDevice.DeviceString) = LCase(Device_String) Then
 &#039;Attach the USB device to VM
   set objAssign = objVM.AttachUSBDevice(usbDevice)
 isFound = 1
   break
  End If
Next

If isFound = 0 Then
  Wscript.Echo &quot;Не удается найти устройство USB. Пожалуйста, проверьте строку устройство &quot;
Else
  Wscript.Echo &quot;Устройство присвоино виртуальной машине&quot;
End If</code></pre></div><p>Но выдает ошибку:<br /></p><div class="codebox"><pre><code>Сценарий:    C:\Users\Master\Desktop\NEWVirtualPC -
копия, vbs
Строка: 29
Символ: 4
Ошибка: Требуется объект: &#039;objVM.AttachUSBDevice(...)&#039;
Код: 800А01А8
Источник:    Ошибка выполнения Microsoft VBScript</code></pre></div><p>Локальная машина Windows 7 SP1,&nbsp; VirtualPC официальная Windows XP Mode.<br />Но самое интересное, что USB устройство подключается. Но скрипт прекращает работать. Вопрос, как решить, чтобы было без ошибок. Можно конечно добавить обработчик и сверять по коду, но все равно хотелось бы уйти от ошибки.</p>]]></content>
			<author>
				<name><![CDATA[Alexs37]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=9180</uri>
			</author>
			<updated>2011-05-27T15:04:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48728#p48728</id>
		</entry>
</feed>
