2011-04-02 127 views
1

任何人都可以幫助我將其轉換爲autoit,或者至少告訴我如何在autoit中做到這一點?將vb6轉換爲autoit

Private Const DC_PAPERNAMES = 16 

Private Declare Function DeviceCapabilities Lib "winspool.drv" _ 
    Alias "DeviceCapabilitiesW" (_ 
    ByVal lpDeviceName As Long, _ 
    ByVal lpPort As Long, _ 
    ByVal iIndex As Long, _ 
    ByVal lpOutput As Long, _ 
    ByVal lpDevMode As Long) As Long 

Private Sub Form_Load() 
    Dim P As Printer 

    For Each P In Printers 
     lstPrinters.AddItem P.DeviceName 
    Next 
End Sub 

Private Sub lstPrinters_Click() 
    Dim P As Printer 
    Dim lngPapers As Long 
    Dim strPaperNames As String 
    Dim lngPaper As Long 
    Dim strPaperName As String 
    Dim lngActualLength As Long 

    Set P = Printers(lstPrinters.ListIndex) 
    lngPapers = DeviceCapabilities(StrPtr(P.DeviceName), _ 
            StrPtr(P.Port), _ 
            DC_PAPERNAMES, _ 
            0, _ 
            0) 
    strPaperNames = String$(lngPapers * 64, 0) 
    lngPapers = DeviceCapabilities(StrPtr(P.DeviceName), _ 
            StrPtr(P.Port), _ 
            DC_PAPERNAMES, _ 
            StrPtr(strPaperNames), _ 
            0) 
    lstPapers.Clear 
    For lngPaper = 0 To lngPapers - 1 
     strPaperName = Mid$(strPaperNames, 64 * lngPaper + 1, 64) 
     lngActualLength = InStr(strPaperName, vbNullChar) - 1 
     If lngActualLength > 1 Then strPaperName = Left$(strPaperName, lngActualLength) 
     lstPapers.AddItem strPaperName 
    Next 
End Sub 

回答