• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Приложить Attachment через диалоговое окно

  • Автор темы Guest
  • Дата начала
G

Guest

Как открыть диалог для выбора файл-attachment через - Call workspace.DialogBox?
 
A

Akupaka

ай-я-яй! кто не изучает хелп?
stringArray = notesUIWorkspace.OpenFileDialog( multipleSelection , [title$] , [filters$] , [initialDirectory$] , [initialFile$] )

правда, я не понял, что именно нужно :blink:))
 
O

Omh

Или речь идёт о DialogBox + RichText Lite? :blink:
 
G

Guest

Или речь идёт о DialogBox + RichText Lite? :blink:

Omh, прямо в точку.
Sub Initialize
Dim ws As New NotesUIWorkspace
filenames = ws.OpenFileDialog(True, "Select files to add as attachment",, "c:\work")
If Not(Isempty(filenames)) Then
Forall filename In filenames
ScanCopy. - а как дальше?
End Forall
End If
End Sub
 
O

Omh

Да не, как раз вроде Akupaka в точку :blink:

А что дальше-то надо?
У тебя в переменной filenames находится array имён выбранных файлов.
Вроде бы извращайся как хочешь.

Или надо в DialogBox приложить аттачменты?
Тогда на форме ставишь RichTextLite и кнопку с OpenFileDialog выкидываешь.
Если надо что-то другое - конкретизируй: к сожалению, миелофон сегодня забыл дома.
 
A

Akupaka

Или надо в DialogBox приложить аттачменты?
Тогда на форме ставишь RichTextLite и кнопку с OpenFileDialog выкидываешь.
имелось в виду, что, если нужно вложения прикладывать на форме, которая через диалог открывается, то вместо RichText нужно использовать RichTextLite... ну, это, если не явно написано, а то "миелофоны" дома пооставляли :blink:)
 
G

Guest

В чем траблы, не добавляется файл. Помогите.

Sub Click(Source As Button)

Dim ws As New NotesUIWorkspace
Dim rt As NotesRichTextItem
Dim uidoc As NotesUIDocument
Dim pathName As String

pathName$ = "d:\Consigme"
Set uidoc=ws.CurrentDocument
Set rt = New NotesRichTextItem(uidoc.Document, "Body")
fileName = ws.OpenFileDialog(False, "Import Quotesheet",, "d:\Consigme")

If Isarray(fileName) Then
Call rt.EmbedObject(EMBED_ATTACHMENT, "", fileName(0))
Call rt.Update
Call uidoc.Refresh
Else
Msgbox "Hi:"
End If

End Sub
 
A

Akupaka

тут как обычно без переоткрытия не обойдешься...
я уже устал этот код дублировать из темы в тему ))) щас поищу...

Код:
'тут что-то пишется в RichTextItem

' "прописываем" изменения в RichTextItem
Call RichTextItem.Update

' тут указывается форма документа, если он был новый и форма не установлена еще, либо на всякий случай :)
Call uidoc.Document.ReplaceItemValue("Form", "СЮДА НАДО ВПИСАТЬ ИМЯ ФОРМЫ, А ЛУЧШЕ АЛИАС")

' теперь открываем документ в новом окне
Call ws.EditDocument(True, uidoc.Document)

' это позволяет избавиться от вопроса о сохранении закрываемого документа!
' причем это прописывается в "старый" экземпляр документа в памяти-instance,
' т.е. в открытом предыдущей командой документе это не появится и убирать не нужно оттуда ничего
Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")

' закрываем "старый" документ
Call uidoc.Close(True)

Морфеюс, это есть в CB?..
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
А не проще метод notesUIDocument.Import использовать? Или собаку @Command([FileImport]; fileType; fileName).

Или вообще, как сказал Omh, поставить Rich Text Lite и забыть про кнопку?
 
O

Omh

Во-во!
Если в ui прикладывать аттач, то на собаках гемора в -надцать раз меньше.
Это я про
Код:
@Command( [EditInsertFileAttachment] )
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
С импортом я погорячился, конечно. :blink:
 
A

Akupaka

Если в ui прикладывать аттач, то на собаках гемора в -надцать раз меньше.
да и еще и пиктограмма файла номально будет отображаться, а не как если прикладывать скриптом - тогда отображается какое-то серенькое подобие ))

но, если очень надо при этом что-то еще сделать, например, прологировать, что пользователь че-то вложил, то можно показать ws.OpenFileDialog, сохранить путь к файлу, например, в переменную окружения (@Environment), потом запустить агент, который прочитает эту переменную, выполнит @Command( [EditInsertFileAttachment] ; file ; compress ), и потрет значение переменной
и картинка нормально, и задачу решили, и документ не надо перегружать!
 
G

Guest

тут как обычно без переоткрытия не обойдешься...
я уже устал этот код дублировать из темы в тему ))) щас поищу...

Код:
'тут что-то пишется в RichTextItem

' "прописываем" изменения в RichTextItem
Call RichTextItem.Update

' тут указывается форма документа, если он был новый и форма не установлена еще, либо на всякий случай :)
Call uidoc.Document.ReplaceItemValue("Form", "СЮДА НАДО ВПИСАТЬ ИМЯ ФОРМЫ, А ЛУЧШЕ АЛИАС")

' теперь открываем документ в новом окне
Call ws.EditDocument(True, uidoc.Document)

' это позволяет избавиться от вопроса о сохранении закрываемого документа!
' причем это прописывается в "старый" экземпляр документа в памяти-instance,
' т.е. в открытом предыдущей командой документе это не появится и убирать не нужно оттуда ничего
Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")

' закрываем "старый" документ
Call uidoc.Close(True)

Морфеюс, это есть в CB?..

Спасибо, большое.
 
O

Omh

Денис Кириченко
А про собаки совет проигнорировал?
 
G

Guest

Денис Кириченко
А про собаки совет проигнорировал?

Нет, просто искал примеры, вот что надыбал:

@Command([RunAgent]; "(Insert Template2)");
@Command([EditGotoField];"Attach_Body");
@Command([EditInsertFileAttachment];@GetField("Path_1"); 0)

Агент открывает OpenFileDialog, сохраняет в текстовом поле, после чего файл аттачится. Вопрос а вот можно несколько файлов выделить и проатачить?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Денис Кириченко
Может Rich Text Lite использовать?
 
O

Omh

Medevic дал намёк толщиной с канат, как лучше всего реализовать.
 
G

Guest

Не получается проатачить, следующим образом:ph34r: Не знаете в чем лажа.
@Command([EditInsertFileAttachment];"C:\Documents and Settings\All Users\Документы\Мои рисунки\Образцы рисунков\Dark_Globule_1024-768.jpg"; 0); 0)
 
D

DNT

:ph34r:

Кнопка:

@Command([EditGotoField] ; "ScanDocument" );
@Command( [EditInsertFileAttachment] )


где ScanDocument - имя RT поля в документе
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!