Есть Ли Возможность Запустить Агент По Ярлыку?

Тема в разделе "Lotus - Программирование", создана пользователем Serduko, 14 дек 2011.

  1. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Есть ли возможность запустить агент по ярлыку? Т.е. запуская клиент, открывается нужная база и запускается нужный агент.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Думаю можно где-то в Database Script... в событии PostOpen например
     
  4. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Спасибо :)

    Добавлено: А есть какая нибудь команда в LS что бы свернуть клиент Lotus Notes?
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    КМК, только WinAPI.
     
  6. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Если не сложно, подкинте пожалуйста API команды.
     
  7. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
  8. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Благодарю :)
     
  9. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Неасилил, не совсем понимаю принцип вызова, т.е. как объявлять, дайте пример пожалуйста.

    Добавлено: Нашел:

    Type ShellExecuteInfo
    cbSize As Long
    fMask As Long
    hwnd As Long
    lpVerb As String
    lpFile As String
    lpParameters As String
    lpDirectory As String
    nShow As Long
    hInstApp As Long
    lpIDList As Long
    lpClass As String
    hkeyClass As Long
    dwHotKey As Long
    hIcon As Long
    hProcess As Long
    End Type

    Const SEE_MASK_NOCLOSEPROCESS = &H40
    Const SEE_MASK_FLAG_DDEWAIT = &H100
    Const SW_HIDE = 0
    Const SW_SHOWNORMAL = 1
    Const SW_NORMAL = 1
    Const SW_SHOWMINIMIZED = 2
    Const SW_SHOWMAXIMIZED = 3
    Const SW_MAXIMIZE = 3
    Const SW_SHOWNOACTIVATE = 4
    Const SW_SHOW = 5
    Const SW_MINIMIZE = 6
    Const SW_SHOWMINNOACTIVE = 7
    Const SW_SHOWNA = 8
    Const SW_RESTORE = 9
    Const SW_SHOWDEFAULT = 10
    Const SW_FORCEMINIMIZE = 11
    Const SW_MAX = 11

    Declare Function ShellExecuteExA Lib "SHELL32.DLL"(sei As ShellExecuteInfo) As Integer
    Declare Function GetLastError Lib "KERNEL32" () As Long

    SUB INITIALIZE
    Dim sei As ShellExecuteInfo
    Dim res As Integer

    sei.fMask = SEE_MASK_FLAG_DDEWAIT
    sei.hwnd = 0
    sei.lpParameters =""
    sei.lpDirectory=""
    sei.hInstApp=0
    sei.lpVerb = "Open" 'Указываем тип действия,
    ' можно еще,например, "Print"
    sei.lpFile = "C:\sample.tif" 'Путь к открываемому файлу
    sei.nShow = SW_NORMAL 'Способ показа окна приложения
    sei.cbSize = Len(sei)

    res = ShellExecuteExA(sei)
    If res = 0 Then Messagebox GetLastError 'Можно узнать код ошибки
    END SUB
     
  10. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    А вот как это применить к открытому клиенту, вопрос...
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Код (LotusScript):
    '(Declarations)
    Const SW_FORCEMINIMIZE = 11 'Minimizes a window, even if the thread that owns the window is not responding. This flag should only be used when minimizing windows from a different thread.
    Const SW_HIDE = 0 'Hides the window and activates another window.
    Const SW_MAXIMIZE = 3 'Maximizes the specified window.
    Const SW_MINIMIZE = 6 'Minimizes the specified window and activates the next top-level window in the Z order.
    Const SW_RESTORE = 9 'Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.
    Const SW_SHOW = 5 'Activates the window and displays it in its current size and position.
    Const SW_SHOWDEFAULT = 10 'Sets the show state based on the SW_ value specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application.
    Const SW_SHOWMAXIMIZED = 3 'Activates the window and displays it as a maximized window.
    Const SW_SHOWMINIMIZED = 2 'Activates the window and displays it as a minimized window.
    Const SW_SHOWMINNOACTIVE = 7 'Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except the window is not activated.
    Const SW_SHOWNA = 8 'Displays the window in its current size and position. This value is similar to SW_SHOW, except that the window is not activated.
    Const SW_SHOWNOACTIVATE = 4 'Displays a window in its most recent size and position. This value is similar to SW_SHOWNORMAL, except that the window is not activated.
    Const SW_SHOWNORMAL = 1 'Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

    Declare Private Function GetActiveWindow Lib "user32" () As Long
    Declare Private Function ShowWindow Lib "user32" Alias "ShowWindow"(Byval lhwnd As Long, Byval nCmdShow As Long) As Long

    Sub Initialize
    Call ShowWindow(GetActiveWindow, SW_MINIMIZE)
    End Sub
     
  12. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Спасибо большое :rolleyes:
     
  13. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Если я например хочу получить другой hwnd, например IE?

    Нашел такую функцию: HWND WINAPI FindWindow(
    __in_opt LPCTSTR lpClassName,
    __in_opt LPCTSTR lpWindowName
    );

    Что за тип LPCTSTR, как он будет выглядеть или как его получить, н.р. для lpWindowName?
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Код (LotusScript):
    Declare Private Function FindWindow Lib "user32" (Byval lpClassName As Lmbcs String, Byval lpWindowName As Lmbcs String) As Long
     
  15. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Об этом я уже догадался, вставляя:
    Код (LotusScript):
    Print FindWindowA("","about:blank - Microsoft Internet Explorer")
    , получаю ноль...
     
  16. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Вместо "" попробуйте Chr$(0)

    Добавлено
    Или так
    Код (LotusScript):
    Declare Private Function FindWindow Lib "user32" (Byval lpClassName As Long, Byval lpWindowName As Lmbcs String) As Long
    Print FindWindowA(0,"about:blank - Microsoft Internet Explorer")
    Почитайте в справке дизайнера раздел "Declare statement (external C calls)"
     
  17. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Chr$(0) не помогает :rolleyes:

    Попробую...
     
  18. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Почитал, в принципе функция находиться, может быть параметры как то неверно передаются, попробовал еще Unicode функцию:

    MsgBox FindWindowW(0,"Google - Microsoft Internet Explorer")

    Все равно 0.
     
  19. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Код (LotusScript):
    Declare Private Function FindWindow Lib "user32" Alias "FindWindowA" (Byval lpClassName As Long, Byval lpWindowName As String) As Long
    Msgbox Cstr(FindWindow(0, "Безымянный - Блокнот")
    или
    Код (LotusScript):
    Declare Private Function FindWindow Lib "user32" Alias "FindWindowW" (Byval lpClassName As Long, Byval lpWindowName As Unicode String) As Long
    Msgbox Cstr(FindWindow(0, "Безымянный - Блокнот")
    или
    Код (LotusScript):
    Declare Private Function FindWindow Lib "user32" Alias "FindWindowA" (lpClassName As Any, lpWindowName As Any) As Long
    Msgbox Cstr(FindWindow(Byval 0&, Byval "Безымянный - Блокнот"))
     
  20. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    С блокнотом работают :newconfus: все (и моя в том числе), кроме последней...
     
Загрузка...

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