1

Тема: AHK: Отправка сообщения через Skype

Подскажите, пожалуйста, возможно ли отправить сообщение через Skype определенному пользователю? И предоставьте, пожалуйста, решение этой головоломки.

2

Re: AHK: Отправка сообщения через Skype

http://forum.script-coding.com/viewtopic.php?id=10746

3 (изменено: serzh82saratov, 2015-08-20 22:06:01)

Re: AHK: Отправка сообщения через Skype

SkypeName := "XXXXXX"
While WinExist("ahk_class TConversationForm")
   WinClose, ahk_class TConversationForm
run, skype:%SkypeName%?chat
WinWait, ahk_class TConversationForm
ControlSend, TChatRichEdit1, Привет{enter}, ahk_class TConversationForm

Думаю, что есть недостатки:
run, skype: - у меня где то 3-7 секунд запускает.
TChatRichEdit1 - индекс контрола может менятся во время работы.
ControlSend - `n может запустить отправку, нет многострочности.
Привет{enter} - не у всех это отошлёт сообщение, у меня например enter назначен в скайпе на перенос строки.
- у меня ни разу не отправило.

Так вроде работает:


#SingleInstance Force
#Persistent 
#NoEnv   
#UseHook 
DllCall("LoadLibrary","Str","oleacc","Ptr") 
ContactName = Name  ;  оригинальное имя контакта, может отличатся от отображаемого в списке 

1:: 
    Message = My Message`n%A_TickCount%`n-----------
    WinExist("ahk_class tSkMainForm ahk_exe Skype.exe")
    ControlGet, hList, Hwnd,, TConversationsControl1
    Acc := Acc__NeedChildren(Acc__ObjectFromWindow(hList), 2)  
    Loop % Acc.accChildCount - 1
        If InStr(Acc.accName(A_Index + 1), "`, " ContactName "`,")
        { 
            Acc.accSelect(3, A_Index + 1)
            ControlSend, , {Enter}, ahk_id %hList%
            WinActivate
            WinWaitActive, , , 1 
            If ErrorLevel
                Break
            WinGet, Controls, ControlList 
            RegExMatch(Controls, ".*TChatEntryControl(\d+)", m)
            ControlSetText, % "TChatRichEdit" m1, %Message%
            ControlSend, % "TChatEntryControl" m1, {enter}
            Break
        }
    Return
    
Acc__NeedChildren(Acc, Index) {  
    if DllCall("oleacc\AccessibleChildren", "Ptr", ComObjValue(Acc), "Int",0, "Int", Index, "Ptr",VarSetCapacity(varChildren, Index*(8+2*A_PtrSize),0)*0+&varChildren, "Int*", Index)=0 {
        Loop %Index%
            i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren, i), Obj := (NumGet(varChildren,i-8)=9 ? ComObj(9,ComObjQuery(child, "{618736e0-3c3d-11cf-810c-00aa00389b71}"), 1) : child), NumGet(varChildren,i-8)=9 ? ObjRelease(child) : 0
        Return Obj
    }
}

Acc__ObjectFromWindow(hWnd, idObject = 0) { 
    If DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject&=0xFFFFFFFF, "Ptr", -VarSetCapacity(IID,16)+NumPut(idObject==0xFFFFFFF0?0x46000000000000C0:0x719B3800AA000C81,NumPut(idObject==0xFFFFFFF0?0x0000000000020400:0x11CF3C3D618736E0,IID,"Int64"),"Int64"), "Ptr*", pacc)=0
        Return ComObjEnwrap(9,pacc,1)
} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Отправка сообщения через Skype

run, skype: - у меня где то 3-7 секунд запускает.

У меня постоянно: 1.2 секунды

TChatRichEdit1 - индекс контрола может менятся во время работы.

Не знал, я у себя только один видел.

ControlSend - `n может запустить отправку, нет многострочности.

Твой вариант с ControlSetText  лучше, но Send {Enter} в конце кода может быть послано не в окно скайпа. Почему не использовать:

ControlSend, TChatRichEdit1, {enter}^{enter}

В твоем коде у меня показывает и цикл прекращается:

msgbox % clipboard := Acc.accName(A_Index + 1)
Все последние сообщения., 6 новых

Скайп: 6.21

5 (изменено: serzh82saratov, 2015-08-20 21:52:39)

Re: AHK: Отправка сообщения через Skype

Скайп: 6.21

Ого, а уменя 7.7.0.103.
Думаю остальные вопросы не актуальны. Со скайпом так всегда, для каждой версии свои костыли.

ап: обновил сейчас до 7.8.0.102, тоже работает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: Отправка сообщения через Skype

ControlSend, TChatRichEdit1, {enter}^{enter}

А это работает, упростил код.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: serzh82saratov, 2015-08-20 23:48:55)

Re: AHK: Отправка сообщения через Skype

А вот так отсылает даже при свёрнутом окне:

#SingleInstance Force
#Persistent 
#NoEnv   
#UseHook 
DllCall("LoadLibrary","Str","oleacc","Ptr") 
ContactName = Name  ;  оригинальное имя контакта, может отличатся от отображаемого в списке 

1:: 
    Message = My Message`n%A_TickCount%`n-----------
    WinExist("ahk_class tSkMainForm ahk_exe Skype.exe")
    ControlGet, hList, Hwnd,, TConversationsControl1
    Acc := Acc__NeedChildren(Acc__ObjectFromWindow(hList), 2)  
    Loop % Acc.accChildCount - 1
        If InStr(Acc.accName(A_Index + 1), "`, " ContactName "`,")
        { 
            Acc.accSelect(3, A_Index + 1)  
            ControlSend, , {Down}{Up}, ahk_id %hList%  
            Acc.accSelect(3, A_Index + 1) 
            WinGet, Controls, ControlList 
            RegExMatch(Controls, ".*TChatRichEdit(\d+)", m)
            ControlSetText, % "TChatRichEdit" m1, %Message%
            ControlSend, % "TChatRichEdit" m1, {LCtrl Down}{Enter}{LCtrl Up}
            Break
        }
    Return
    
Acc__NeedChildren(Acc, Index) {  
    if DllCall("oleacc\AccessibleChildren", "Ptr", ComObjValue(Acc), "Int",0, "Int", Index, "Ptr",VarSetCapacity(varChildren, Index*(8+2*A_PtrSize),0)*0+&varChildren, "Int*", Index)=0 {
        Loop %Index%
            i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren, i), Obj := (NumGet(varChildren,i-8)=9 ? ComObj(9,ComObjQuery(child, "{618736e0-3c3d-11cf-810c-00aa00389b71}"), 1) : child), NumGet(varChildren,i-8)=9 ? ObjRelease(child) : 0
        Return Obj
    }
}

Acc__ObjectFromWindow(hWnd, idObject = 0) { 
    If DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject&=0xFFFFFFFF, "Ptr", -VarSetCapacity(IID,16)+NumPut(idObject==0xFFFFFFF0?0x46000000000000C0:0x719B3800AA000C81,NumPut(idObject==0xFFFFFFF0?0x0000000000020400:0x11CF3C3D618736E0,IID,"Int64"),"Int64"), "Ptr*", pacc)=0
        Return ComObjEnwrap(9,pacc,1)
} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8 (изменено: MoZg, 2015-08-20 22:55:22)

Re: AHK: Отправка сообщения через Skype

Я лично сделал по-простецкому и без наворотов...


activeSkype := true
SkypeName := "example.example"

sendMsg() {
    IfWinExist, Skype
        run, skype:%SkypeName%?chat
    While (activeSkype) {
        IfWinActive, Skype™ - 
        {
            activeSkype := false
            SendInput, Тут текст.{Enter}
            SetTimer, activeSkypeOn, 5000
        }
        Sleep, 3000
    }
}

activeSkypeOn:
SetTimer, activeSkypeOn, Off
activeSkype := true
return

9

Re: AHK: Отправка сообщения через Skype

MoZg а у вас какая версия скайп?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10

Re: AHK: Отправка сообщения через Skype

7.7.64.103

11 (изменено: serzh82saratov, 2015-08-20 23:43:16)

Re: AHK: Отправка сообщения через Skype

У вас

run, skype:%SkypeName%?chat

сразу запускает, или с задержкой?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

12

Re: AHK: Отправка сообщения через Skype

С задержкой...

13

Re: AHK: Отправка сообщения через Skype

А код из 7 поста пробовали?
Вы конечно пользуйтесь чем удобнее, мне просто интересно у других оно работает или нет.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14 (изменено: MoZg, 2015-08-21 01:21:19)

Re: AHK: Отправка сообщения через Skype

Нет, не пробовал.

15 (изменено: Malcev, 2015-08-21 05:20:56)

Re: AHK: Отправка сообщения через Skype

Что бы я добавил в код 7.
1) Чтобы отправлять сообщения в закрытый скайп:

DetectHiddenWindows, On

2) Перед проверкой имен в скайпе вписать:

PostMessage, 0x111, 172, 0, , ahk_class tSkMainForm    ; Переключение с вкладки "последние" на "контакты"

(Кроме как через PostMessage послать переключение этих вкладок у меня никакне получилось).
3) В описании уточнить, что в скайпе должен быть активирован стандартный режим просмотра.
4) Если скайп не запущен, то запускать его.
В шестой версии все работает, только надо заменить

    Acc := Acc__NeedChildren(Acc__ObjectFromWindow(hList), 2)  

на:

    Acc := Acc__NeedChildren(Acc__ObjectFromWindow(hList), 3)  

16

Re: AHK: Отправка сообщения через Skype

Что то я первые 3 пункта не понял:
Как понять закрытый скайп?
Переключение с вкладки "последние" на "контакты" у меня это сообщение ничего не делает.
Что за стандартный режим просмотра?

У тебя теперь последняя версия?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17

Re: AHK: Отправка сообщения через Skype

Нет, у меня шестая версия (седьмую ставить не хочу - графика не нравится).
Для седьмой наверное надо посылать другое сообщение для переключения вкладок.
Закрытый скайп - я имею в виду когда его окно спрятано (нажат крестик).

Что за стандартный режим просмотра?

https://support.skype.com/ru/faq/FA1010 … okna-skype

18

Re: AHK: Отправка сообщения через Skype

Закрытый скайп - я имею в виду когда его окно спрятано (нажат крестик).

В 7 если нажать крест, то просто сворачивается.

Для седьмой наверное надо посылать другое сообщение для переключения вкладок.

А то где было взято.

https://support.skype.com/ru/faq/FA1010 … okna-skype

Только не "стандартный режим просмотра", а "Отображение в одном окне", но примечание конечно не помешает, если этот скрипт кому то вообще нужен. Можно конечно и "компактный режим просмотра" учесть, но в нём кажется не получится отправлять в фоне.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

19

Re: AHK: Отправка сообщения через Skype

А то где было взято.

А то я взял через WinSpector.

20

Re: AHK: Отправка сообщения через Skype

Есть такое сообщение, но оно иногда активирует окно.

SendMessage, 0x0000bd04, 0x00000031, 0x20020001
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

21 (изменено: Malcev, 2015-08-21 07:45:37)

Re: AHK: Отправка сообщения через Skype

У меня все время активирует.
А откуда ты эти параметры взял?
Наверное стоит перед посылом проверять какая вкладка активна, например так:

Acc := Acc__NeedChildren(Acc__ObjectFromWindow(hList), 2)  
if (Acc.accName(1) != "Весь список контактов")
   SendMessage, 0x0000bd04, 0x00000031, 0x20020001

22

Re: AHK: Отправка сообщения через Skype

Тоже WinSpector ом, а то для 6 версии тоже все время активирует?

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

Это понятно, просто смысл, если активация всё же возможна.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23

Re: AHK: Отправка сообщения через Skype

А объектная модель уже не поддерживается? Раньше такое на vbs работало:

With CreateObject("Skype4COM.Skype", "Skype_")
  If Not .Client.IsRunning Then .Client.Start
  .SendMessage "SkypeName", "Hello!"
End With

24

Re: AHK: Отправка сообщения через Skype

Перестала поддерживаться, по-моему после версии 6.16.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

25

Re: AHK: Отправка сообщения через Skype

Ясно. Хотя я всё равно старыми версиями предпочитаю пользоваться, когда требуется.

26

Re: AHK: Отправка сообщения через Skype

Поддерживается, только урезали (в частности посылание сообщений).
https://support.skype.com/en/faq/FA214/ … esktop-api

SendMessage, 0x0000bd04, 0x00000031, 0x20020001

А как ты эти значения получил через WinSpector, можешь ликбез дать?
Для шестой версии эти параметры sendmessage вкладку переключают, но в то же самое время постоянно активируют (restore) скайп, поэтому я и предложил проверять состояние вкладки.

27

Re: AHK: Отправка сообщения через Skype

Для шестой версии эти параметры sendmessage вкладку переключают, но в то же самое время постоянно активируют (restore) скайп

Так я и спросил твоё прежнее сообщение

PostMessage, 0x111, 172, 0

активирует?

поэтому я и предложил проверять состояние вкладки.

Но если вкладка не та, то придётся активировать. С активным окном всегда много вариантов, а надо без активации.

А как ты эти значения получил через WinSpector, можешь ликбез дать?

Я тебя сначала хотел спросить, ты же сам получил старое сообщение через WinSpector.
В скайпе нажал Alt+1, посмотрел какое сообщение после нажатия 1 произошло.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

28

Re: AHK: Отправка сообщения через Skype

PostMessage, 0x111, 172, 0 - да активирует.
А какие фильтры оставляешь для отлавливания сообщений посыла клавиш?

29

Re: AHK: Отправка сообщения через Skype

Да как то не заморачивался, просто скрыл особо назойливые.
Кстати у тебя версия какая? У меня 1.0b Build 37. Не могу найти где актуальную версию посмотреть, а то сильно глючит.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

30

Re: AHK: Отправка сообщения через Skype

Malcev пишет:

Поддерживается, только урезали (в частности посылание сообщений).
https://support.skype.com/en/faq/FA214/ … esktop-api

Не нашёл там ничего про поддержку объектной модели. Как она теперь работает?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

31 (изменено: serzh82saratov, 2015-08-21 17:33:32)

Re: AHK: Отправка сообщения через Skype

Так не активирует:


#SingleInstance Force
#Persistent 
#NoEnv   
#UseHook 
DllCall("LoadLibrary","Str","oleacc","Ptr") 
ContactName = Name  ;  оригинальное имя контакта, может отличатся от отображаемого в списке  

1:: 
    Message = My Message`n%A_TickCount%`n-----------
    WinExist("ahk_class tSkMainForm ahk_exe Skype.exe")
    ControlGet, hList, Hwnd,, TConversationsControl1  
    AccList := Acc__ObjectFromWindow(hList)
    Acc := Acc__NeedChildren(AccList, 1) 
    If Acc.accRole(1) = 30 
        Acc.accDoDefaultAction(1) 
    Acc := Acc__NeedChildren(AccList, 2)  
    Loop % Acc.accChildCount - 1
        If InStr(Acc.accName(A_Index + 1), "`, " ContactName "`,")
        {  
            Acc.accSelect(3, A_Index + 1)  
            ControlSend, , {Down}{Up}, ahk_id %hList%   
            Acc.accSelect(3, A_Index + 1)
            WinGet, Controls, ControlList 
            RegExMatch(Controls, ".*TChatRichEdit(\d+)", m)
            ControlSetText, % "TChatRichEdit" m1, %Message%
            ControlSend, % "TChatRichEdit" m1, {LCtrl Down}{Enter}{LCtrl Up}
            Break
        }
    Return 
    
Acc__NeedChildren(Acc, Index) {  
    if DllCall("oleacc\AccessibleChildren", "Ptr", ComObjValue(Acc), "Int",0, "Int", Index, "Ptr",VarSetCapacity(varChildren, Index*(8+2*A_PtrSize),0)*0+&varChildren, "Int*", Index)=0 {
        Loop %Index%
            i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren, i), Obj := (NumGet(varChildren,i-8)=9 ? ComObj(9,ComObjQuery(child, "{618736e0-3c3d-11cf-810c-00aa00389b71}"), 1) : child), NumGet(varChildren,i-8)=9 ? ObjRelease(child) : 0
        Return Obj
    }
}

Acc__ObjectFromWindow(hWnd, idObject = 0) { 
    If DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject&=0xFFFFFFFF, "Ptr", -VarSetCapacity(IID,16)+NumPut(idObject==0xFFFFFFF0?0x46000000000000C0:0x719B3800AA000C81,NumPut(idObject==0xFFFFFFF0?0x0000000000020400:0x11CF3C3D618736E0,IID,"Int64"),"Int64"), "Ptr*", pacc)=0
        Return ComObjEnwrap(9,pacc,1)
} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

32 (изменено: Malcev, 2015-08-21 16:35:28)

Re: AHK: Отправка сообщения через Skype

Не нашёл там ничего про поддержку объектной модели. Как она теперь работает?

Не знаю как, я ей никогда не пользовался.
Но админ пишет, что работает:
http://community.skype.com/t5/Windows-d … -p/3822770

Кстати у тебя версия какая? У меня 1.0b Build 37

Такая же и тоже подглючивает.

33

Re: AHK: Отправка сообщения через Skype

serzh82saratov, круто!
Может добавь запуск скайпа, если он не запущен и запости в коллекцию?
А то вещь некоторым очень нужная.

34 (изменено: serzh82saratov, 2015-08-21 18:10:32)

Re: AHK: Отправка сообщения через Skype

Ну такой костыль в коллекции точно не нужен, а оно и в 6 работает?
Интерфейс больно капризный, тут очень много всего ещё не учтено из всех вариантов того что может быть в окне, возможно лучше автоматизировать через web.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

35

Re: AHK: Отправка сообщения через Skype

Malcev пишет:

Но админ пишет, что работает

Работает для какой версии?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

36 (изменено: Malcev, 2015-08-21 19:01:30)

Re: AHK: Отправка сообщения через Skype

The API call events work now again with the very latest Skype 7.1 version, which was released just yesterday.
http://www.skype.com/en/download-skype/
At least in my case (http://community.skype.com/t5/Windows-desktop-client/SKYPE4COM-CallStatus-event-no-longer-working/m-...), everything works now as it should in this Skype 7.1.0.105 version.

http://community.skype.com/t5/Windows-d … 912/page/3

Ну такой костыль в коллекции точно не нужен, а оно и в 6 работает?
Интерфейс больно капризный, возможно лучше автоматизировать через web.

Через Web, предполагаю, могут забанить айпишник.
В шестом немного другие пути, а так все тоже самое (defaultaction на вкладках только нету)
Я еще добавил нажатие на крестик если активирован поиск пользователей:

#SingleInstance Force
#Persistent 
#NoEnv   
#UseHook 
DllCall("LoadLibrary","Str","oleacc","Ptr") 
ContactName = test  ;  оригинальное имя контакта, может отличатся от отображаемого в списке  

1:: 
    Message = My Message`n%A_TickCount%`n-----------
    WinExist("ahk_class tSkMainForm ahk_exe Skype.exe")
    ControlGet, hList, Hwnd,, TConversationsControl1  
    AccList := Acc__ObjectFromWindow(hList)
    Acc := Acc__NeedChildren(AccList, 2) 
    if (Acc.accRole(1) = "")
    {
        PressToolBarButton(hList, 2)
        Acc := Acc__NeedChildren(AccList, 2)
    }
    If  Acc.accRole(1) = 37 && !Acc.accSelect(3, 1) 
        ControlSend, , {Enter}, ahk_id %hList%     
    Acc := Acc__NeedChildren(AccList, 3)  
    Loop % Acc.accChildCount - 1
        If InStr(Acc.accName(A_Index + 1), "`, " ContactName "`,")
        {  
            Acc.accSelect(3, A_Index + 1)  
            ControlSend, , {Down}{Up}, ahk_id %hList%   
            Acc.accSelect(3, A_Index + 1)
            WinGet, Controls, ControlList 
            RegExMatch(Controls, ".*TChatRichEdit(\d+)", m)
            ControlSetText, % "TChatRichEdit" m1, %Message%
            ControlSend, % "TChatRichEdit" m1, {Enter}
            Break
        }
    Return 
    
Acc__NeedChildren(Acc, Index) {  
    if DllCall("oleacc\AccessibleChildren", "Ptr", ComObjValue(Acc), "Int",0, "Int", Index, "Ptr",VarSetCapacity(varChildren, Index*(8+2*A_PtrSize),0)*0+&varChildren, "Int*", Index)=0 {
        Loop %Index%
            i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren, i), Obj := (NumGet(varChildren,i-8)=9 ? ComObj(9,ComObjQuery(child, "{618736e0-3c3d-11cf-810c-00aa00389b71}"), 1) : child), NumGet(varChildren,i-8)=9 ? ObjRelease(child) : 0
        Return Obj
    }
}

Acc__ObjectFromWindow(hWnd, idObject = 0) { 
    If DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject&=0xFFFFFFFF, "Ptr", -VarSetCapacity(IID,16)+NumPut(idObject==0xFFFFFFF0?0x46000000000000C0:0x719B3800AA000C81,NumPut(idObject==0xFFFFFFF0?0x0000000000020400:0x11CF3C3D618736E0,IID,"Int64"),"Int64"), "Ptr*", pacc)=0
        Return ComObjEnwrap(9,pacc,1)
} 

PressToolBarButton(hwnd, ButtonID)
{
   AccObj := Acc__ObjectFromWindow(hwnd, OBJID_CLIENT := 0xFFFFFFFC)
   if !IsObject(AccObj)  {
      MsgBox, Не удалось получить AccObj
      Return
   }
   AccObj.accDoDefaultAction(ButtonID)
}  

37

Re: AHK: Отправка сообщения через Skype

Malcev пишет:

The API call events work now again with the very latest Skype 7.1 version

The very latest Skype version is 7.7.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

38

Re: AHK: Отправка сообщения через Skype

Ну тут уже надо пробовать.
А ты тестировал?

39

Re: AHK: Отправка сообщения через Skype

У меня при попытке создать объект

MsgBox, % IsObject(ComObjCreate("Skype4COM.Skype", "Skype_"))

выдаёт ошибку

Error:  0x800401F3 - Недопустимая строка с указанием класса

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

40

Re: AHK: Отправка сообщения через Skype

Если запустить такой код:

DllCall("LoadLibrary", Str, "C:\Program Files (x86)\Common Files\Skype\Skype4COM.dll")
MsgBox, % A_LastError

выдаёт ошибку 193

ERROR_BAD_EXE_FORMAT

    193 (0xC1)

    %1 is not a valid Win32 application.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

41

Re: AHK: Отправка сообщения через Skype

У меня A_LastError = 1411.

Такой код у меня, меня пытается активировать окно, кнопка в панели задач начинает моргать, звонка не происходит.

oSkype := ComObjCreate("Skype4COM.Skype")
oSkype.PlaceCall("echo123")
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

42

Re: AHK: Отправка сообщения через Skype

Может тут что полезное - http://devdelphi.ru/?p=2963.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

43 (изменено: teadrinker, 2015-08-21 19:54:40)

Re: AHK: Отправка сообщения через Skype

Не, это вообще про версию 1.0

А так что выдаёт?

MsgBox, % IsObject(ComObjCreate("Skype4COM.Skype", "Skype_"))
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

44

Re: AHK: Отправка сообщения через Skype

А так что выдаёт?

Как и у тебя.

Да это полезно - http://devdelphi.ru/?p=1045
Теперь звонит, причём моментально!!!

oSkype := ComObjCreate("Skype4COM.Skype")
oSkype.PlaceCall("echo123")
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

45

Re: AHK: Отправка сообщения через Skype

Хм, у меня после нажатия "Контроль доступа других программ к Skype" появляется пустое окно с неактивными кнопками:

https://cloclo2.cloud.mail.ru/weblink/thumb/w3/3yTv7ty6U5zw/2015.08.21-19.00.57.9.jpg

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

46

Re: AHK: Отправка сообщения через Skype

teadrinker пишет:

У меня при попытке создать объект

Похоже, сейчас без второго параметра нужно либо "Skype4COM.Skype.1".

Скачал библиотеку, зарегил. Проблем с отправкой нет.

47

Re: AHK: Отправка сообщения через Skype

Нет, у меня всё равно объект не создаётся.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

48

Re: AHK: Отправка сообщения через Skype

х32 запускай.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

49

Re: AHK: Отправка сообщения через Skype

Да, на x32 создался.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

50

Re: AHK: Отправка сообщения через Skype

До кучи вот описание - http://users.skynet.be/fa258239/bestand … pe4com.pdf.
Вот примеры скриптов - https://www.autoitscript.com/forum/topi … pe4comlib/, что успел проверить, всё работает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

51 (изменено: Flasher, 2015-08-21 21:24:51)

Re: AHK: Отправка сообщения через Skype

serzh82saratov
Вторую ссылку видел. А вот первая не качает. Переложил бы кто.

Add: Ладно, уже не надо. Забрал с Архива.

52

Re: AHK: Отправка сообщения через Skype

Примерно так должно работать:

ContactName =  

1::  
oSkype := ComObjCreate("Skype4COM.Skype")   
oSkypeConnect := ComObjConnect(oSkype, "Skype_")
If !oSkype.Client.IsRunning 
    oSkype.Client.Start()
oMembers := ComObjCreate("Skype4COM.UserCollection")
oMembers.Add(oSkype.User(ContactName)) 
oChat := oSkype.CreateChatMultiple(oMembers) 
    oChat.OpenWindow  ; показать окно, необязательно
oMsg := oChat.SendMessage("Greetings!")   
oChat.Leave  
MsgBox Leave
 
Skype_AttachmentStatus(aStatus) { 
    Global oSkype  
    MsgBox % oSkype.Convert.AttachmentStatusToText(aStatus)  
    If (aStatus = oSkype.Convert.TextToAttachmentStatus("AVAILABLE"))
        oSkype.Attach()   
}
Return

но не судьба теперь отправить так сообщения - https://support.skype.com/ru/faq/FA1238 … ut-na-nego. На 6 версии наверное должно.

У нас тут уже давно это было - http://forum.script-coding.com/viewtopic.php?id=6113. В принципе на 6 ещё проще должно быть:

oSkype := ComObjCreate("Skype4COM.Skype")   
oMembers := ComObjCreate("Skype4COM.UserCollection")
oMembers.Add(oSkype.User(ContactName)) 
oChat := oSkype.CreateChatMultiple(oMembers) 
    oChat.OpenWindow  ; показать окно, необязательно 
oMsg := oChat.SendMessage("Greetings!")  
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

53

Re: AHK: Отправка сообщения через Skype

Да, на шестой отправляет сообщение.
Только как на 64 бит автохотки создавать 32 бит объекты?

54 (изменено: serzh82saratov, 2015-08-22 01:52:49)

Re: AHK: Отправка сообщения через Skype

Думаю никак, со ScriptControl например нет решений.

В шапку таких скриптов, чтобы не создавть ярлыков, можно добавлять подобное:

If (!A_IsCompiled && A_PtrSize = 8) {
    Run, % SubStr(A_AhkPath, 1, InStr(A_AhkPath, "\", 0, 0)) "AutoHotkeyU32.exe " A_ScriptFullPath
    ExitApp
} 

Кстати данная ситуация в дополнение к ответу на твой вопрос.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

55 (изменено: serzh82saratov, 2015-08-22 14:47:26)

Re: AHK: Отправка сообщения через Skype

Если не смущает активация окна, в 7 версии можно так:

ContactName =  
oSkype := ComObjCreate("Skype4COM.Skype")    

1::   
    oSkype.Client.OpenMessageDialog(ContactName, "Message")   
    Send, {LCtrl Down}{Enter}{LCtrl Up}
    Return

Лучше так:

ContactName =  

1::
    If !oSkype
        oSkype := ComObjCreate("Skype4COM.Skype")    
    If !oSkype.Client.IsRunning 
        oSkype.Client.Start()
    While !oSkype.Client.IsRunning
        Sleep 10  
    oSkype.Client.OpenContactsTab()
    oSkype.Client.OpenMessageDialog(ContactName, "")
    WinExist("ahk_class tSkMainForm ahk_exe Skype.exe")
    WinGet, Controls, ControlList 
    RegExMatch(Controls, ".*TChatRichEdit(\d+)", m)
    ControlSetText, % "TChatRichEdit" m1, Message
    ControlSend, % "TChatRichEdit" m1, {LCtrl Down}{Enter}{LCtrl Up}
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

56

Re: AHK: Отправка сообщения через Skype

После

oSkype.Client.OpenMessageDialog(ContactName, "")

у меня диалог открывается в новом окне TConversationForm, так что дальнейший код не работает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

57 (изменено: serzh82saratov, 2015-08-22 15:15:25)

Re: AHK: Отправка сообщения через Skype

Наверное компактный режим просмотра, тогда 1 вариант.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

58

Re: AHK: Отправка сообщения через Skype

Видимо справка PDF не полная, CreateChatWith в ней нет, очень коротко получается.

oSkype := ComObjCreate("Skype4COM.Skype")     
oChat := oSkype.CreateChatWith(ContactName)  
oChat.SendMessage("Greetings!")
oChat.OpenWindow  
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui