نمایش نتایج: از شماره 1 تا 1 از مجموع 1

موضوع: Using Floppy Disks with Windows Virtual PC

  
  1. #1
    نام حقيقي: 1234

    مدیر بازنشسته
    تاریخ عضویت
    Jul 2009
    محل سکونت
    5678
    نوشته
    5,634
    سپاسگزاری شده
    2513
    سپاسگزاری کرده
    272

    Using Floppy Disks with Windows Virtual PC

    کد:
    http://blogs.msdn.com/virtual_pc_guy/archive/2009/10/01/using-floppy-disks-with-windows-virtual-pc.aspx
    Using Floppy Disks with Windows Virtual PC

    Most users of Windows Virtual PC do not need to use floppy disks with their virtual machines, as general usage of floppy disks has become rarer and rarer. Those who do need to use floppy disks – may think that they can no longer do this – as there is no user interface for connecting floppy disks to virtual machines.
    Do not be fooled.
    Windows Virtual PC does support the use of floppy disks – but as this feature is only used by a small subset of users – we did not expose this in the user interface. To use floppy disks you need to have a script to help you. And here are the scripts:
    VBScript:

    Option Explicit ' Define constants for floppy drive attachment typesCONST vmFloppyDrive_None = 0CONST vmFloppyDrive_Image = 1CONST vmFloppyDrive_HostDrive = 2 Dim namedArguments, argumentError, vpc, vm, vmName, action, floppy, vmFloppyDrive ' Check that the script is running at the command line.If UCase(Right(Wscript.FullName, 11)) = "WSCRIPT.EXE" Then WScript.Echo "This script must be run under CScript." WScript.QuitEnd If ' Get the virtual machine name / floppy commands from the command-line argumentsSet namedArguments = WScript.Arguments.Named argumentError = false If namedArguments.Exists("vm") Then vmName = namedArguments.Item("vm")Else argumentError = trueEnd If If namedArguments.Exists("action") Then action = namedArguments.Item("action")Else argumentError = trueEnd If If namedArguments.Exists("floppy") Then floppy = namedArguments.Item("floppy")Else If (not ((action = "info") or (action = "disconnect"))) Then argumentError = true End IfEnd If ' Display usage information if wrong arguments are providedif argumentError then WScript.Echo "Missing command-line argument" WScript.Echo WScript.Echo "Usage: FloppyDrive.vbs /vm:" & chr(34) & "Name of virtual machine to be started" & chr(34) WScript.Echo WScript.Echo " /action:info - to display information about the current floppy configuration" WScript.Echo " disconnect - to disconnect any attached floppy disk or floppy disk image" WScript.Echo " vfd - to attach a virtual floppy disk image" WScript.Echo " physical - to attach a physical floppy disk" WScript.Echo WScript.Echo " /floppy:name - where name is either the full name and path for a virtual" WScript.Echo " floppy disk or the letter of a physical disk to attach" WScript.Echo WScript.Quitend if ' Attempt to connect to Virtual PCOn Error Resume NextSet vpc = CreateObject("VirtualPC.Application")If Err.Number <> 0 Then WScript.Echo "Unable to connect to Virtual PC." WScript.QuitEnd ifOn Error Goto 0 ' Get virtual machine objectSet vm = vpc.FindVirtualMachine(vmName) ' Get the floppy driveset vmFloppyDrive = vm.FloppyDrives.item(1) ' Perform the specified actionSelect Case action ' Display floppy disk information case "info" wscript.echo "Floppy disk information" wscript.echo "=======================" ' Different information is needed for each attachment type select case vmFloppyDrive.Attachment case vmFloppyDrive_None wscript.echo "Floppy Attachment : No floppy disk attached" wscript.echo "Drive Number : " & vmFloppyDrive.DriveNumber case vmFloppyDrive_Image wscript.echo "Floppy Attachment : Floppy disk image attached" wscript.echo "Drive Number : " & vmFloppyDrive.DriveNumber wscript.echo "Image File : " & vmFloppyDrive.ImageFile case vmFloppyDrive_HostDrive wscript.echo "Floppy Attachment : Physical floppy disk attached" wscript.echo "Drive Number : " & vmFloppyDrive.DriveNumber wscript.echo "Host Drive Letter : " & vmFloppyDrive.HostDriveLetter end select ' Disconnect the current floppy disk case "disconnect" wscript.echo "Disconnecting the floppy disk." ' A different method is used to disconnect a floppy disk image than for a physical disk select case vmFloppyDrive.Attachment case vmFloppyDrive_Image vmFloppyDrive.ReleaseImage case vmFloppyDrive_HostDrive vmFloppyDrive.ReleaseHostDrive end select ' Attach a floppy disk image case "vfd" wscript.echo "Attaching " & floppy & " to the floppy drive." vmFloppyDrive.AttachImage(floppy) ' Attach a physical floppy disk case "physical" wscript.echo "Attaching physical disk " & floppy & ": to the floppy drive." vmFloppyDrive.AttachHostDrive(floppy) ' Catch invalid actions case else wscript.echo "Invalid action provided. Info, disconnect, vfd and physical are valid options." end select wscript.echo

    PowerShell:

    param([string]$vmName, [string]$action, [string]$floppy) $argumentError = 0 # Check for correct command-line argumentsIf ($vmName -eq "") {$argumentError = 1} If ($action -eq "") {$argumentError = 1} If ($floppy -eq "") { if ((!([string]::Compare($action, "vfd", $True))) -or (!([string]::Compare($action, "physical", $True)))) {$argumentError = 1} } # Display usage information if wrong arguments are providedIf ($argumentError -eq 1) { write-host "Missing command-line argument." write-host "USage: FloppyDrive.ps1 -vmName `"Name of virtual machine`"" write-host " -action info - to display information about the current floppy configuration" write-host " disconnect - to disconnect any attached floppy disk or floppy disk image" write-host " vfd - to attach a virtual floppy disk image" write-host " physical - to attach a physical floppy disk" write-host write-host " -floppy name - where name is either the full name and path for a virtual" write-host " floppy disk or the letter of a physical disk to attach" exit } # Connect to Virtual PC$vpc=new-object –com VirtualPC.Application –Strict # Get virtual machine object$vm = $vpc.FindVirtualMachine($vmName) # Get the floppy drive$vmFloppyDrive = $vm.FloppyDrives.item(1) # Perform the specified actionswitch ($action) { # Display floppy disk information "info" { write-host "Floppy disk information" write-host "=======================" # Different information is needed for each attachment type switch ($vmFloppyDrive.Attachment) { 0 { write-host "Floppy Attachment : No floppy disk attached" write-host "Drive Number : " $vmFloppyDrive.DriveNumber} 1 { write-host "Floppy Attachment : Floppy disk image attached" write-host "Drive Number : " $vmFloppyDrive.DriveNumber write-host "Image File : " $vmFloppyDrive.ImageFile } 2 { write-host "Floppy Attachment : Physical floppy disk attached" write-host "Drive Number : " $vmFloppyDrive.DriveNumber write-host "Host Drive Letter : " $vmFloppyDrive.HostDriveLetter } } } # Disconnect the current floppy disk "disconnect" { write-host "Disconnecting the floppy disk." # A different method is used to disconnect a floppy disk image than for a physical disk switch ($vmFloppyDrive.Attachment) { 1 {$vmFloppyDrive.ReleaseImage()} 2 {$vmFloppyDrive.ReleaseHostDrive()} } } # Attach a floppy disk image "vfd" { write-host "Attaching " $floppy " to the floppy drive." $vmFloppyDrive.AttachImage($floppy) } # Attach a physical floppy disk "physical" { write-host "Attaching physical disk " $floppy ": to the floppy drive." $vmFloppyDrive.AttachHostDrive($floppy) } # Catch invalid actions default {write-host "Invalid action provided. Info, disconnect, vfd and physical are valid options."} }

    These scripts are fairly “self documenting” and will provide error messages if the wrong input is provided. They will allow you to connect both physical and virtual floppy disks to a virtual machine. As well as to check the information about the current floppy disk configuration.
    I have also attached these scripts for download.
    Cheers,
    Ben





    موضوعات مشابه:
    ویرایش توسط patris1 : 2010-02-25 در ساعت 02:38 AM

کلمات کلیدی در جستجوها:

هیچ کلمه ای ثبت نشده است.

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •