Разархивировать и сохранить вложение

Тема в разделе "Lotus - Программирование", создана пользователем -, 20 янв 2006.

  1. Гость

    Нужно для входящей почты написать агента, который бы сохранял где-нить на диске вложение и разархивировал его.

    Впринципе с первой частью справляется такой код:

    Код (Text):
    Sub Initialize
    Dim s As NotesSession
    Dim db As NotesDataBAse
    Dim coll As NotesDocumentCollection
    Dim doc As NOtesDocument
    Dim rtitem As Variant
    Dim result As Integer

    Set s=New NotesSession
    If Not s Is Nothing Then
     Set db=s.CurrentDataBAse
     If Not db Is Nothing Then
       Set coll=db.UnprocessedDocuments
       If Not coll Is Nothing Then
       For i=1 To coll.Count
          Set doc=coll.GetNthDocument(i)
          Set rtitem = doc.GetFirstItem( "Body" )
          If ( rtitem.Type = 1 ) Then
         If doc.HasEmbedded Then
             Forall o In rtitem.EmbeddedObjects
           If (o.Type = EMBED_ATTACHMENT) Then
            Call o.ExtractFile( "c:\111\" & o.Source )
           End If
             End Forall
         End If
          End If       
          Call s.UpdateProcessedDoc(doc)
       Next
       End If
     End If
    End If
    End Sub
    Теперь осталось разорхивировать. :(
    Пыталась сделать что-то типа такого:
    Код (Text):
    Declare Function ExtractArchive Lib "unrar" Alias "ExtractArchive" (sArchive As String, Byval sDestPath As String, Byval sPassword As String) As Boolean

    ....
    Call ExtractArchive("image.rar", "c:\\111\\", "")
    или вот так:
    Код (Text):
                stringShell$ = "rar.exe e " & "c:\\111\\" & o.Source
            Msgbox stringShell$
            result = Shell(stringShell$, 1)
    но что-то не идет... явно где-то глюк. 8(
    я еще с dll в Лотусе не работала. Может че не так пишу...
    и с командной строкой явно какой-то глюк в конструкции

    Лотус 6.0.3.
     
  2. Domino6

    Domino6 Гость

    Shel работает от текущей(current) директории укажи напрямую размещение rar.exe
    Код (Text):
    stringShell$ = "c:\tmp\rar.exe e " & "c:\tmp\" & o.Source
    и посмотри переменную stringShell$ после склейки
    по моему "c:\\111\\" много слешей попробуй "c:\111\"

    а это Call ExtractArchive("image.rar", "c:\\111\\", "")
    попробуй вызвать так
    Код (Text):
    rez= ExtractArchive("image.rar", "c:\\111\\", "")
     
  3. Гость

    Да, спасибо! Второе помогло, а на первое оно пишет, что не находит такой функции в длл-ке.
    "External function not found"
    Все может быть, конечно... фиг знает как ее проверить есть она там или нет. А может вообще длл-ку не находит? :D
     
Загрузка...

Поделиться этой страницей