Русское сообщество AutoIt

  • Май 22, 2012, 13:16:45 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Вы новичок? Хотите начать изучение AutoIt и не знаете с чего начать?

Для начала ознакомьтесь с темой Быстрый старт для работы с AutoIt.
Затем осмотрите раздел Инструменты и помощь по AutoIt.

Реклама

Автор Тема: Отправка скриншота по e-mail  (Прочитано 2195 раз)

0 Пользователей и 1 Гость смотрят эту тему.

_Lexa98_ [?]

  • Новичок
  • *
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Отправка скриншота по e-mail
« Создано: Август 09, 2011, 21:06:52 »
Версия AutoIT: 3

Описание:

Старый код

Код: AutoIt [Выделить]
#Include <ClipBoard.au3>
#Include <GDIPlus.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#NoTrayIcon

_ScreenCapture(@ScriptDir & '\Screenshot.png')

Func _ScreenCapture($sFile)

    Local $Result, $Timer, $hImage, $hBitmap = 0

    ClipPut('')
    Send('{PRINTSCREEN}')
    $Timer = TimerInit()
    While TimerDiff($Timer) < 1000
        _ClipBoard_Open(0)
        $hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
        _ClipBoard_Close()
        If $hBitmap Then
            ExitLoop
        EndIf
       
    WEnd
    If Not $hBitmap Then
        Return 0
    EndIf
    _GDIPlus_Startup()
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
    $Result = _GDIPlus_ImageSaveToFile($hImage, $sFile)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    Return $Result
EndFunc   ;==>_ScreenCapture





#Region ### START Koda GUI section ### Form=
$Wesoft = GUICreate("", 100, 65)
$Label1 = GUICtrlCreateLabel("Жми!", 20, 0, 100, 15)
$Button1 = GUICtrlCreateButton("F5", 0, 15, 100, 50, $WS_GROUP)
$ToAddress = ("")
$FromAddress = ("")
$FromName = "Screenshot"
$Subject = ("Screenshot")
$Body = ("•")
GUICtrlSetData(-1, "")
$AttachFiles = ("Screenshot.png"); прикреплённые файлы к письму
$Username = ("")
$SmtpServer = ("smtp.mail.ru")
$Password = ("")
;$SmtpServer = "smtp.mail.ru"            ; адрес SMTP сервера
;$FromName = "Mail Sender"               ; имя отправителя
;$FromAddress = "zzzzzmail@mail.ru" ; адрес отправителя
;$ToAddress = "zzzzzzmailll@rambler.ru"      ; адрес назначения
;$Subject = "test_mail_8"              ; тема письма
;$Body = "body_of_mail"            ; тело письма (сам текст письма)
;$Username = "zzzzzmail"            ; имя пользователя аккаунта, с которого отправляется
;$Password = "12345z"
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###



$BlatArgs = "-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles





Func _SendMail($CMDstring)

    $BlatDLL = DllOpen ("blat.dll")
    Do
        $result=DllCall($BlatDLL,"int","Send","str",$CMDstring)

    Until $result[0] = 0
   
    DllClose ($BlatDLL)
    Exit
EndFunc ;

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
               _SendMail($BlatArgs)

    EndSwitch
WEnd



 

Как можно сделать так чтобы:
1)Запускаем скрипт
2)Делается скриншот
3)Отправляется на почту

Примечания:

Без всяких окон и кнопок!
 :laser:
« Последнее редактирование: Август 10, 2011, 12:29:09 от _Lexa98_ »



  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #1, Отправлен: Август 09, 2011, 21:09:18 »
_Lexa98_,
Оформите, пожалуйста, тему в соответствии с Правилами обязательного оформления тем.
ПредупреждениеЗа нарушение правил форума (пункт В.11):
Цитата
Любые отрывки AutoIt кода необходимо заключать в тег [autoit] (подробнее), а обычный код соответственно в тег [code] (подробнее). Также большие выдержки текста помещайте под тег [spoiler] (подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, Модератор раздела.
« Последнее редактирование: Август 09, 2011, 21:14:41 от madmasles »



  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #2, Отправлен: Август 10, 2011, 11:01:50 »
Ну кто нибудь поможет? :-\




  Записан

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 84
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 777
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #3, Отправлен: Август 10, 2011, 11:59:06 »
Вот проверяй
Код: AutoIt [Выделить]

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#NoTrayIcon

_ScreenCapture(@ScriptDir & '\Screenshot.png')

$AttachFiles = (@ScriptDir & '\Screenshot.png'); прикреплённые файлы к письму
$Username = ("")
$SmtpServer = ("smtp.mail.ru")
$Password = ("")
;$SmtpServer = "smtp.mail.ru"            ; адрес SMTP сервера
;$FromName = "Mail Sender"               ; имя отправителя
;$FromAddress = "zzzzzmail@mail.ru" ; адрес отправителя
;$ToAddress = "zzzzzzmailll@rambler.ru"      ; адрес назначения
;$Subject = "test_mail_8"              ; тема письма
;$Body = "body_of_mail"            ; тело письма (сам текст письма)
;$Username = "zzzzzmail"            ; имя пользователя аккаунта, с которого отправляется
;$Password = "12345z"




$BlatArgs = "-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles



 _SendMail($BlatArgs)







 Func _SendMail($CMDstring)

    $BlatDLL = DllOpen ("blat.dll")
    Do
        $result=DllCall($BlatDLL,"int","Send","str",$CMDstring)

    Until $result[0] = 0
   
    DllClose ($BlatDLL)
    Exit
EndFunc ;


Func _ScreenCapture($sFile)

    Local $Result, $Timer, $hImage, $hBitmap = 0

    ClipPut('')
    Send('{PRINTSCREEN}')
    $Timer = TimerInit()
    While TimerDiff($Timer) < 1000
        _ClipBoard_Open(0)
        $hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
        _ClipBoard_Close()
        If $hBitmap Then
            ExitLoop
        EndIf
       
    WEnd
    If Not $hBitmap Then
        Return 0
    EndIf
    _GDIPlus_Startup()
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
    $Result = _GDIPlus_ImageSaveToFile($hImage, $sFile)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    Return $Result
EndFunc   ;==>_ScreenCapture




 


Добавлено: Август 10, 2011, 12:00:59
и если это твой старый скрипт, то ты должен уметь делать и без Gui.




  Записан

SECTOR [?]

  • Осваивающий
  • **
  • Репутация: 37
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 358
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #4, Отправлен: Август 10, 2011, 12:13:03 »
Цитата
Мой старый код
OffTopicИмхо код откуда то взятый.... Если бы _Lexa98_ написал тот код проблем с убиранием GUI бы не было ;)

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 84
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 777
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #5, Отправлен: Август 10, 2011, 12:20:45 »
Я свой не проверял, так что проверьте пожалуйста, а то возможности нет.




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #6, Отправлен: Август 10, 2011, 12:24:25 »
Arei
Спасибо, работает!
SECTOR
Ты прав, я взял его с другой темы, но немного переделал.

А есть возможность сделать тоже самое без dll?




  Записан

SECTOR [?]

  • Осваивающий
  • **
  • Репутация: 37
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 358
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #7, Отправлен: Август 10, 2011, 12:29:10 »
Вот функция:





  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #8, Отправлен: Август 10, 2011, 16:18:36 »
SECTOR
Все данные ввел, запустил и ничего не происходит.
Даже никакой ошибки не вывел.
На почте ничего нету.
 :(




  Записан

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 84
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 777
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #9, Отправлен: Август 10, 2011, 16:32:22 »
_Lexa98_ используй
Код: AutoIt [Выделить]
  и будет всё нормально работать.И париться не надо будет.




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #10, Отправлен: Август 10, 2011, 16:48:15 »
Arei
Попробую


Добавлено: Август 10, 2011, 16:53:08
Arei
Когда компилирую пишет: Error adding file.




  Записан

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 84
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 777
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #11, Отправлен: Август 10, 2011, 17:06:47 »
надо указывать путь без кириллицы, и без
Код: AutoIt [Выделить]




  Записан

_Lexa98_ [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 8
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 293
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #12, Отправлен: Август 10, 2011, 17:10:35 »
Я сделал так:
$b = True
If $b = True Then FileInstall("C:\blat.dll", @TempDir)




  Записан

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 84
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 777
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #13, Отправлен: Август 10, 2011, 17:17:24 »
1.Каждый код или скрипт надо обрамлять тегом
Код: AutoIt [Выделить]
 
2.Надо было так
Код: AutoIt [Выделить]
$b = True
If $b = True Then
FileInstall("C:\blat.dll", @TempDir & "\blat.dll")
EndIF
 




  Записан

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 84
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 777
  • Версия AutoIt: 3.3.8.1
  • Награды Второе место конкурса
    • Награды
Re: Отправка скриншота по e-mail
« Ответ #14, Отправлен: Август 10, 2011, 17:22:04 »
да, ты указываешь, полный путь для файла, и его название.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Как сэмулировать создание скриншота
AutoIt для новичков
f4llen 29 3741 Последний ответ Декабрь 14, 2009, 15:22:44
от CreatoR
отправка текста на mail
AutoIt для новичков
andreitrane 1 751 Последний ответ Апрель 01, 2011, 01:09:21
от CreatoR
[Автоматизация] Скришот + отправка по e-mail одной кнопкой
Стол заказов
WiseBird 15 1988 Последний ответ Сентябрь 03, 2011, 16:36:11
от Zaramot
Отправка сообщения на mail используя данные из Excel
Стол заказов
beliy 17 2083 Последний ответ Август 10, 2011, 17:55:26
от beliy
Создание а потом отправка скриншота по FTP
Стол заказов
zeionline 6 811 Последний ответ Февраль 13, 2012, 09:51:22
от vitaliy54
[Элементы GUI] как сделать экспорт графика в файл (jpg?), без снятия скриншота
AutoIt для новичков
zero_1632 3 509 Последний ответ Октябрь 10, 2011, 22:25:57
от zero_1632
Поиск файла на компьютере и отправка его по e-mail
Стол заказов
Vadimmm0072 4 357 Последний ответ Март 19, 2012, 16:51:33
от madmasles
Отправка письма на адрес Mail.ru с помощью TCP
Полезняшки
Viktor1703 4 391 Последний ответ Апрель 29, 2012, 11:00:43
от Александр
[Сеть, интернет] Отправка файла на e-mail адрес
AutoIt для новичков
WiryS 8 502 Последний ответ Май 06, 2012, 18:17:41
от madmasles
создание .png из скриншота (с экрана)
AutoIt для новичков
running-frag 9 265 Последний ответ Май 19, 2012, 12:22:44
от inververs


Реклама

* Последние сообщения на форуме
post Re: Смена IP адресса
[AutoIt для новичков] Zaramot Сегодня в 13:04:33
post Re: Авторизация в одноклассниках
[Автоматизация IE и Web-интерфейса] Александр Сегодня в 12:59:21
post Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] madmasles Сегодня в 12:23:31
post [Мышь, клавиатура] Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] Nurgazy Сегодня в 12:09:36
post Re: Объясните плз, как работать с массивами ArrayAdd и прочее...
[AutoIt для новичков] madmasles Сегодня в 12:08:03
post Объясните плз, как работать с массивами ArrayAdd и прочее...
[AutoIt для новичков] webmonster Сегодня в 12:03:38
post Re: Как заменить метку времени файла на севере
[Автоматизация IE и Web-интерфейса] ---Zak--- Сегодня в 11:39:56
post Как заменить метку времени файла на севере
[Автоматизация IE и Web-интерфейса] eropov Сегодня в 11:26:37
post Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] madmasles Сегодня в 11:13:16
post [Мышь, клавиатура] Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] Nurgazy Сегодня в 10:56:29

* Пользователи онлайн
  • Dot Гостей: 136
  • Dot Скрыт: 2
  • Dot Пользователей: 29
  • Dot Пользователи Online: