Что нового

Skype. Отправка сообщений по времени

fertan

Новичок
Сообщения
7
Репутация
0
Нужно отправлять сообщения в скайп в определенное время.

Код:
; В первую очередь необходимо создать пару объектов, чтобы взаимодействовать со скайпом
$oSkype = ObjCreate("Skype4COM.Skype")
$oSkypeEvent = ObjEvent($oSkype,"Skype_")
$oError = ObjEvent("AutoIt.Error","MyErrFunc")
; Для начала объявим переменные.
$topic = "Имя группы"
$sMessage = "Отправляемое сообщение"
;Далее бесконечный цикл и отпавка сообщения
While 1
Skype_ChatSendMessage($topic, $sMessage)
Sleep(5000)
WEnd
;И собственно сама функция отправки сообщения
Func Skype_ChatSendMessage($topic, $sMessage)
For $oChat In $oSkype.Chats
if $oChat.Topic = $topic then
$oChat.SendMessage($sMessage)
EndIf
Next
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Автоматизация] Отправка сообщений группе(чату,конференции) в скайпе, по времени

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
fertan
А случ. не знаешь как получить список контактов? )
 
Автор
F

fertan

Новичок
Сообщения
7
Репутация
0
Ganibal95 не знаю, мне просто нужно добавить в код скрипта что-то, чтобы сообщения отправлялись например в 8 утра, но я не знаю что нужно добавить, не подскажешь?

блин, нажал случайно на кнопку "полезное сообщение" а потом нажимаю удалить кнопку и пишет "Нет прав на удаление благодарности с этого сообщения!" ............
 
Автор
F

fertan

Новичок
Сообщения
7
Репутация
0
еще бы рассказали как этим пользоваться, а то я ничего не понимаю...
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
fertan
Если программа постоянно будет "висеть" в процессах запущенной то с 8 до 8:59 будут отсылаться сообщения
Код:
$oSkype = ObjCreate("Skype4COM.Skype")
$oSkypeEvent = ObjEvent($oSkype,"Skype_")
$oError = ObjEvent("AutoIt.Error","MyErrFunc")
$topic = "Имя группы"
$sMessage = "Отправляемое сообщение"
While 1
	If @HOUR=8 Then ;Программа будет отсылать сообщения в течении всего часа с 8:00 до 8:59
		Skype_ChatSendMessage($topic, $sMessage)
		Sleep(5000)
	EndIf
WEnd
Func Skype_ChatSendMessage($topic, $sMessage)
	For $oChat In $oSkype.Chats
		if $oChat.Topic = $topic then
			$oChat.SendMessage($sMessage)
		EndIf
	Next
EndFunc
 
Автор
F

fertan

Новичок
Сообщения
7
Репутация
0
MnM что-то твой код не работает, выдает ошибку:

9dfe35e4debd458ad419caf16c017fb7.png
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Код:
;Стартовое время
$shour=13;час
$smin=12;минута
;Конечное
$eHour=16
$eMin=40
If (@HOUR>=$shour) And (@MIN>=$smin) _
			And (@HOUR<=$eHour) And (@MIN<=$eMin) Then
	MsgBox(64,"Информация","Сейчас время в пределах 13:12 и 16:40")
EndIf

Не совсем правильно, но почти так


Добавлено:
Сообщение автоматически объединено:

fertan сказал(а):
код не работает, выдает ошибку:
В ошибке написано что у вас пропущен оператор Wend посмотрите внимательней код который выдает ошибку может быть пропущены другие операторы которые должны замыкать свои начальные
 
Автор
F

fertan

Новичок
Сообщения
7
Репутация
0
MnM круто, спасибо, работает :smile: только еще проблемка, он разом отправил очень много раз это сообщение в чат, а нужно только одно, как это сделать, паузой или быть может Вы как-то покруче сделаете? :smile: было бы замечательно
вот что у меня сейчас:
Код:
; В первую очередь необходимо создать пару объектов, чтобы взаимодействовать со скайпом это как бы обязалово
$oSkype = ObjCreate("Skype4COM.Skype")
$oSkypeEvent = ObjEvent($oSkype,"Skype_")
$oError = ObjEvent("AutoIt.Error","MyErrFunc")
; Для начала объявим переменные.
$topic = "Тяжела и Некозиста жизнь простого программиста"
$sMessage = "ghjdthrf"
;Стартовое время
$shour=15;час
$smin=40;минута
;Конечное
$eHour=15
$eMin=40
While 1
    If (@HOUR>=$shour) And (@MIN>=$smin) _
            And (@HOUR<=$eHour) And (@MIN<=$eMin) Then
    Skype_ChatSendMessage($topic, $sMessage)
	EndIf
WEnd
;И собственно сама функция отправки сообщения
Func Skype_ChatSendMessage($topic, $sMessage)
   For $oChat In $oSkype.Chats
	  if $oChat.Topic = $topic then
		 $oChat.SendMessage($sMessage)
	  EndIf
   Next
EndFunc
 
Автор
F

fertan

Новичок
Сообщения
7
Репутация
0
MnM нужно чтобы в 8 часов утра отправлялось одно сообщение например "Доброе утро" и все, и дальше уже на след. день так же в 8 утра снова Доброе утро и так каждый день.
И еще желательно объяснить мне как сделать чтобы отправлять можно было одновременно еще и в другие группы, т.е. в 8 утра в группу №1 "Доброе утро" и в группу №2 "Доброе утро" можно еще и в группу №3
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
fertan сказал(а):
в 8 часов утра отправлялось одно сообщение
Если компьютер каждый день перезагружается то так:
Код:
Global $trigger=1
$oSkype = ObjCreate("Skype4COM.Skype")
$oSkypeEvent = ObjEvent($oSkype,"Skype_")
$oError = ObjEvent("AutoIt.Error","MyErrFunc")
$topic = "Тяжела и Некозиста жизнь простого программиста"
$sMessage = "ghjdthrf"
$shour=15;час
$smin=40;минута
$eHour=15
$eMin=40
While 1
    If (@HOUR>=$shour) And (@MIN>=$smin) _
            And (@HOUR<=$eHour) And (@MIN<=$eMin) Then
    Skype_ChatSendMessage($topic, $sMessage)
    EndIf
WEnd
Func Skype_ChatSendMessage($topic, $sMessage)
	If $trigger Then;В конце блока условия переменная триггер примет значение лжи что поспособствует отказу этого же условия в запуске, 1-им словом еденичный запуск
		For $oChat In $oSkype.Chats
			if $oChat.Topic = $topic then
				$oChat.SendMessage($sMessage)
			EndIf
		Next
		$trigger=0
	EndIf
EndFunc


fertan сказал(а):
как сделать чтобы отправлять можно было еще и в другие группы
Если вы имеете в виду еще одни промежутки в которых скрипт должен действовать, то в условии времени(в цикле) установите еще блоки условий ElseIf.
 
Автор
F

fertan

Новичок
Сообщения
7
Репутация
0
MnM нет, комп может работать несколько дней например без выключения и перезагрузки, потом может быть перезагружен
в последнем Вашем примере отправляется 1 раз, все работает, но я что-то запутался с elseif endif что-то ошибки все выдает

еще эта штука стала появляться и мешать
703d20dcb68b7f6e16fa3809444354e8.png
 
Верх