1

Тема: AHK: Создание Com объектов в цикле

Как правильней сделать?
Так:

loop
{
   ContactName := A_Index
   oSkype := ComObjCreate("Skype4COM.Skype")   
   oMembers := ComObjCreate("Skype4COM.UserCollection")
   oMembers.Add(oSkype.User(ContactName)) 
   oChat := oSkype.CreateChatMultiple(oMembers) 
   oChat.OpenWindow  ; показать окно, необязательно 
   oMsg := oChat.SendMessage("Greetings!")
} 

Или так?


oSkype := ComObjCreate("Skype4COM.Skype")   
oMembers := ComObjCreate("Skype4COM.UserCollection")
loop
{
   ContactName := A_Index
   oMembers.Add(oSkype.User(ContactName)) 
   oChat := oSkype.CreateChatMultiple(oMembers) 
   oChat.OpenWindow  ; показать окно, необязательно 
   oMsg := oChat.SendMessage("Greetings!")
} 

2 (изменено: serzh82saratov, 2015-08-24 01:08:55)

Re: AHK: Создание Com объектов в цикле

Ну ComObjCreate можно вынести за цикл, а остальное зависит от задачи, которой нет.
Если в данном примере надо отправить нескольким контактам одинаковое сообщение, то наверное так:


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

3 (изменено: Malcev, 2015-08-24 01:25:43)

Re: AHK: Создание Com объектов в цикле

То есть правильней ComObjCreate выносить за цикл, да?
Например, как в моем примере - отправить одно и то же сообщение получателям от "1" до бесконечности?

4

Re: AHK: Создание Com объектов в цикле

Да, его незачем получать каждый раз.

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