Ru-Board.club
← Вернуться в раздел «Программы»

» AutoIT

Автор: gregaz
Дата сообщения: 20.10.2008 06:21
SysLam,Спасибо
Стало понятно
Автор: frozen2
Дата сообщения: 20.10.2008 19:07

Цитата:

ViSiToR
Хех, я не заметил сразу что это TC , тогда можно через идентификаторы, контролы у него видны хорошо :


Ваш скрипт открывает папку j:\record и всё.
Со своим я разобрался. Оказывается, если окно Total Com. активитуется в русской раскладке, то высылаются кракозябры. А если в английской, то всё ок.
Тогда как сделать, чтобы проверялось в какой раскладке работает программа и если в русской, то переходила в английскую, т.е. высылалось бы сочетание "!+" ?
Автор: lex83_2002
Дата сообщения: 20.10.2008 19:41
Есть такая функция _INetMail отсылает письмо email клиентом по умолчанию, а как можно сразу приаттачить к письму файлы ?
Автор: ViSiToR
Дата сообщения: 20.10.2008 22:25
frozen2 20:07 20-10-2008
Цитата:
Ваш скрипт открывает папку j:\record и всё

Значит не находит контролы, их значение можно посмотреть с Au3Info (в папке с аутоитом есть).


Цитата:
как сделать, чтобы проверялось в какой раскладке работает программа

Нужно не проверять, а просто задать ей свою раскладку... но опять же, это не надёжный метод.

P.S
Ссылка на используемую сборку TC не помешает, я бы проверил на нём.

Добавлено:
lex83_2002 20:41 20-10-2008
Цитата:
как можно сразу приаттачить к письму файлы ?

Есть функция _INetSmtpMailCom, там поддерживаются аттачменты.
Автор: Maza Faka
Дата сообщения: 21.10.2008 06:27
frozen2

Цитата:
как сделать, чтобы проверялось в какой раскладке работает программа и если в русской, то переходила в английскую

Посмотри здесь, последний вопрос-ответ.
Автор: Tipulatoid
Дата сообщения: 21.10.2008 08:13

Цитата:
Есть функция _INetSmtpMailCom, там поддерживаются аттачменты.

У меня тоже вопросы по этой замечательной UDF. Как вставить в headers отправлемого письма строку Content-type: charset="KOI8-R" Т.е. явно указать для почтовых клиентов кодировку письма? Вставляю в код $objEmail.Fields.Item ("urn:schemas:mailheader:Content-Type") = 'charset="KOI8-R"' Нужная строка добавляется в headers, однако письмо получается пустым, без аттача и без текста.

И как отправлять текст, состоящий из нескольких строк?
Автор: ViSiToR
Дата сообщения: 21.10.2008 09:05
Tipulatoid 09:13 21-10-2008
Цитата:
Как вставить в headers отправлемого письма строку Content-type: charset="KOI8-R"

Так пробовал:


Код: $Body = '<HTML>' & @CRLF
$Body &= '<head>' & @CRLF
$Body &= '<title>' & $Subject & '</title>' & @CRLF
$Body &= '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' & @CRLF
$Body &= '</head>' & @CRLF
$Body &= '<Body>' & @CRLF
$Body &= 'Тест' & @CRLF
$Body &= '</Body>' & @CRLF
$Body &= '</HTML>' & @CRLF
Автор: Tipulatoid
Дата сообщения: 21.10.2008 09:40

Цитата:
Так пробовал:

Этот способ работает. Однако, считаю, отправлять письма в html без крайней на то нужды - дурной тон.


Цитата:
А вообще вот так нужно:
Код:$objEmail.Fields.Item ("urn:schemas:mailheader:content-type") = "text/plain; charset=UTF-8"


Тут дело в том, что в headers должна быть примерно следующая строка
Код: Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0002_01C9339E.FB4D8260";
text/plain;
            charset="UTF-8"
Автор: ViSiToR
Дата сообщения: 21.10.2008 10:15
Tipulatoid 10:40 21-10-2008
Цитата:
в headers должна быть примерно следующая строка

Это где сказано?
Для multipart есть тут инфа.


Цитата:
и текста и аттачей нет

У меня есть и то и другое (пробовал с plain text), возможно на это влияет сервис почты с которой отсылается письмо (у меня gmail)...


Цитата:
Можно разъяснить как скрипт вообще работает

Это скорее к Jos'у на оф. форуме, автору UDF'а


Цитата:
А если сервер упал

У Microsoft? когда это произойдёт, на рынок встанет нечто новое, на голову выше Microsoft .


Цитата:
получается, и скрипт работать не будет?

Видимо не будет... опять же, это желательно уточнить у автора. Могу спросить если сильно нужно

P.S
Вот меня больше интересует возможность отсылания писем без конкретного указания логина и пароля на ящик с которого следует отправлять. Аттачменты и прочие дополнения не обязательны, нужно отправлять письма в самой простой форме: «Заголовок», «От», и «Тело письма».
Автор: Tipulatoid
Дата сообщения: 21.10.2008 10:58
ViSiToR

Цитата:
Это где сказано?

Проверено методом тыка. Пересылал с gmail'a на yandex.

Цитата:
У меня есть и то и другое (пробовал с plain text), возможно на это влияет сервис почты с которой отсылается письмо (у меня gmail)...

Странно... просто добавил в код $objEmail.Fields.Item ("urn:schemas:mailheader:content-type") = "text/plain; charset=UTF-8" и все пришло - и текст, и аттач, и кодировка в headers указана? Если да, то в какую строчку ты это добавил? (номер, пожалуйста)

Цитата:
У Microsoft? когда это произойдёт

Все бывает. А скрипты не должны зависеть от состояния дел у третьей стороны. Видимо, придется реализовывать через консольную smtpsend.exe - так оно, имхо, надежнее будет.
Автор: Maza Faka
Дата сообщения: 21.10.2008 11:35
ViSiToR

Цитата:
когда это произойдёт, на рынок встанет нечто новое, на голову выше Microsoft

Из-за упавшего сервера?
Автор: arr1val
Дата сообщения: 21.10.2008 19:18
Добрый день. Подскажите алгоритм:
Поиск папок по имени на всем локальном диске, во всех каталогах и последующее удаление. Но при этом, чтобы файлы с таким же именем не трогались.
К примеру: чтобы все папки NTuser.dat удалились, а файлик такой не тронулся.

Заранее спасибо!
Автор: ViSiToR
Дата сообщения: 21.10.2008 19:20
Tipulatoid 11:58 21-10-2008
Цитата:
просто добавил в код

Да.


Цитата:
в какую строчку ты это добавил?

Перед строчкой $objEmail.Fields.Update.

Maza Faka 12:35 21-10-2008
Цитата:
Из-за упавшего сервера?

Я намекнул на то, что если у MS упадёт сервер, то скорее всего это произойдёт из за тотального распада фирмы

Добавлено:
arr1val 20:18 21-10-2008
Цитата:
Подскажите алгоритм:

В шапке есть функция получения дерева папок, немного изменив её можно получить нужный результат:


Код: $sPath = "D:\"

_DirRemoveEx($sPath, "NTuser.dat")
ConsoleWrite("Удалено: " & @extended & " директории" & @CRLF)

Func _DirRemoveEx($sPath, $sDirName)
$sPath = StringRegExpReplace($sPath, '\\+$', '')
Local $iExtended, $sFindNextFile, $sCurrentPath

Local $sFindFirstFile = FileFindFirstFile($sPath & "\*.*")
If @error = 1 Then Return SetError(1, 0, -1)

While 1
$sFindNextFile = FileFindNextFile($sFindFirstFile)
If @error = 1 Then ExitLoop

$sCurrentPath = $sPath & "\" & $sFindNextFile

If StringInStr(FileGetAttrib($sCurrentPath), "D") Then
If
$sFindNextFile = $sDirName Then $iExtended += DirRemove($sCurrentPath, 1)

_DirRemoveEx($sCurrentPath, $sDirName)
$iExtended += @extended
EndIf
WEnd


FileClose($sFindFirstFile)

Return SetExtended($iExtended, 1)
EndFunc
Автор: Tipulatoid
Дата сообщения: 22.10.2008 02:35
ViSiToR

Цитата:
Перед строчкой $objEmail.Fields.Update.

Чего-то не работает у меня. В любом, случае, для себя проблему отправки писем решил след. образом:
Скачиваем замечательный консольный Blat. Берем из архива blat.dll. И используем такой код
sendemail2.au3 :
Код: $BlatArgs = 'letter.txt -t delta2-greit[сами_знаете_что]yandex.ru -f delta-greit[сами_знаете_что]yandex.ru -s "спасибо за помощь" -server smtp.yandex.ru -u delta-greit -password не_скажу -charset "Windows-1251" -attach 2_Славинка_per_7.zip'

_SendMail($BlatArgs)

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

Select
Case
$result[0] = 13
MsgBox
(16,"Ошибка. Код ошибки " & $result[0], "Не могу открыть временный файл во временной папке")

Case $result[0] = 12
MsgBox
(16, "Ошибка. Код ошибки " & $result[0], "Не указаны или не найдены в реестре аргументы -server или -f")

Case $result[0] = 3
MsgBox
(16, "Ошибка. Код ошибки " & $result[0], "Не могу прочитать файл с текстом письма или приложенный файл")

Case $result[0] = 2
MsgBox
(16, "Ошибка. Код ошибки " & $result[0], "Почтовому серверу не понравился адрес отправителя; или он отказал нам в подключении; или неверный пароль; или не найден файл с текстом письма")
Case $result[0] = 1
MsgBox
(16, "Ошибка. Код ошибки " & $result[0], "Не могу открыть SMTP сокет. Проверьте подключение к Интернету; либо неверные аргументы")
Case $result[0] <> 0
MsgBox
(16, "Ошибка. Код ошибки " & $result[0], "Неизвестная ошибка")
EndSelect
Until
$result[0] = 0
ConsoleWrite ("Письмо отправлено :-)" & @CRLF)
DllClose ($BlatDLL)
EndFunc
; ==> _SendMail

Автор: ViSiToR
Дата сообщения: 22.10.2008 03:46
Tipulatoid 03:35 22-10-2008
Цитата:
Скачиваем замечательный консольный Blat

Он не хочет работать с gmail'ом
Автор: Tipulatoid
Дата сообщения: 22.10.2008 07:19
Visitor

Цитата:
Он не хочет работать с gmail'ом

Здесь это обсуждают. Советуют прикрутить Stunnel хотя, это уже становится похожим на изврат.
Автор: Maza Faka
Дата сообщения: 22.10.2008 08:07
arr1val
А если хочется побыстрее, то можно так

Код: Global $objFSO = ObjCreate("Scripting.FileSystemObject")
Global $DirToRem = "NTuser.dat"

_DirRemoveEx("d:\")

Func _DirRemoveEx($sPath)
Local $objFolder, $colSubFolder, $objSubFolder

$objFolder
= $objFSO.GetFolder($sPath & "\")
$colSubFolder = $objFolder.SubFolders

For $objSubFolder In $colSubFolder
_DirRemoveEx($objSubFolder.Path)
If $objSubFolder.Name = $DirToRem Then DirRemove($objSubFolder.Path)
Next
EndFunc
Автор: ViSiToR
Дата сообщения: 22.10.2008 08:20
Maza Faka 09:07 22-10-2008
Цитата:
если хочется побыстрее, то можно так

Имхо, это не самый надёжный метод, я не раз сталкивался с явлением когда скрипты в системе отключены.


Цитата:
теме пора переезжать

+1. И желательно в Программирование, эта тема больше туда подходит нежели в Программы (ну не программа же это, а отдельный скриптовый язык программирования).
Автор: Maza Faka
Дата сообщения: 22.10.2008 09:37
ViSiToR

Цитата:
Имхо, это не самый надёжный метод, я не раз сталкивался с явлением когда скрипты в системе отключены.

В смысле отключена возможность выполнять скрипты? Через реестр? Покажи пример, как отключить?


Цитата:
И желательно в Программирование, эта тема больше туда подходит нежели в Программы (ну не программа же это, а отдельный скриптовый язык программирования).

+1
Да, меня это тоже напрягает
Автор: ViSiToR
Дата сообщения: 22.10.2008 11:13
Maza Faka 10:37 22-10-2008
Цитата:
В смысле отключена возможность выполнять скрипты?

Не сами скрипты, а COM объекты. Как отключить специально точно не знаю, никогда небыло такой необходимости
Автор: Maza Faka
Дата сообщения: 22.10.2008 13:06
ViSiToR

Цитата:
Как отключить специально точно не знаю

Ну вот, тогда как ты можешь утверждать, что мой пример может не сработать?
Автор: Tipulatoid
Дата сообщения: 22.10.2008 16:36
Подскажите, плиз.
Имею такой файл (incomeletters.txt)

Код: +OK POP Ya! v1.0na
USER delta2-greit
+OK password, please.
PASS ******
+OK 4 message(s) 49782 bytes.
STAT
+OK 4 49782
LIST
+OK 4 49782
1 12443
2 12447
3 12449
4 12443
.
UIDL 1
+OK 1 317a487b85a13d2606349c0aa4b9e731
RETR 1
+OK 12443 octets.
Received: from smtp4.yandex.ru (smtp4.yandex.ru [213.180.223.136])
    by mxback1.yandex.ru (Postfix) with ESMTP id 7451263FA2
    for <delta2-greit[сами_знаете_что]yandex.ru>; Wed, 22 Oct 2008 16:20:56 +0400 (MSD)
Received: from 57-172.dialup.primorye.ru ([81.2.57.172]:54791 "EHLO
a62fc6637610461" smtp-auth: "delta-greit" TLS-CIPHER: <none>
TLS-PEER-CN1: <none>) by mail.yandex.ru with ESMTP id S966850AbYJVMU4
(ORCPT <rfc822;delta2-greit[сами_знаете_что]yandex.ru>);
Wed, 22 Oct 2008 16:20:56 +0400
X-Yandex-Spam: 1
X-Yandex-Front: smtp4
X-Yandex-TimeMark: 1224678056
X-BornDate: 1154552400
X-Yandex-Karma: 0
X-Yandex-KarmaStatus: 0
X-MsgDayCount: 37
X-Comment: RFC 2476 MSA function at smtp4.yandex.ru logged sender identity as: delta-greit
Date: Wed, 22 Oct 2008 23:20:47 +1100
From: delta-greit[сами_знаете_что]yandex.ru
To: delta2-greit[сами_знаете_что]yandex.ru
X-Mailer: Blat v2.6.2 w/GSS encryption, a Win32 SMTP/NNTP mailer http://www.blat.net
Message-ID: <01c93440$Blat.v2.6.2$9cf5817a$cb4daf3883a[сами_знаете_что]yandex.ru>
Subject: =?Windows-1251?B?8e/g8ejh7iDn4CDv7uzu+fw=?=
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="=_BlatBoundary-bFJAaaP70OBdEaKcFnAtU"

This is a multi-part message in MIME format.

--=_BlatBoundary-bFJAaaP70OBdEaKcFnAtU
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=Windows-1251

=CF=F0=E8=E2=E5=F2
=EA=E0=EA =E4=E5=EB=E0=3F2

--=_BlatBoundary-bFJAaaP70OBdEaKcFnAtU
Content-Type: application/octet-stream;
name="2_Slavinka4_per_7.zip"
Content-Disposition: ATTACHMENT;
filename="2_Slavinka4_per_7.zip"
Content-Transfer-Encoding: BASE64

4sdjlskjuwerYYIOIJOIU&%%&Zw0AAKIdAAAJAH0ARGVsdGEuZGFsU0RoAKwAAAAACAAIFZz
Y2RgaRFhYGAwYIAAHyBmZAUzWUWBxD4WO6MvAbtK2J9aa39hxC3HyMTAwMSQwMACkhWQYPjP
AgCTAAAAmx4AAAAA

--=_BlatBoundary-bFJAaaP70OBdEaKcFnAtU--
.
UIDL 2
+OK 2 aaca04fdd9bf08647bb98d69dd15d97c
RETR 2
+OK 12447 octets.
Received: from smtp11.yandex.ru (smtp11.yandex.ru [213.180.223.93])
    by mxback1.yandex.ru (Postfix) with ESMTP id 5DE5D63F9C
    for <delta2-greit[сами_знаете_что]yandex.ru>; Wed, 22 Oct 2008 16:20:55 +0400 (MSD)
Received: from 57-172.dialup.primorye.ru ([81.2.57.172]:54023 "EHLO
a62fc6637610461" smtp-auth: "delta-greit" TLS-CIPHER: <none>
TLS-PEER-CN1: <none>) by mail.yandex.ru with ESMTP id S5095627AbYJVMUr
(ORCPT <rfc822;delta2-greit[сами_знаете_что]yandex.ru>);
Wed, 22 Oct 2008 16:20:47 +0400
X-Yandex-Spam: 1
X-Yandex-Front: smtp11
X-Yandex-TimeMark: 1224678047
X-BornDate: 1154552400
X-Yandex-Karma: 0
X-Yandex-KarmaStatus: 0
X-MsgDayCount: 36
X-Comment: RFC 2476 MSA function at smtp11.yandex.ru logged sender identity as: delta-greit
Date: Wed, 22 Oct 2008 23:20:39 +1100
From: delta-greit[сами_знаете_что]yandex.ru
To: delta2-greit[сами_знаете_что]yandex.ru
X-Mailer: Blat v2.6.2 w/GSS encryption, a Win32 SMTP/NNTP mailer http://www.blat.net
Message-ID: <01c93440$Blat.v2.6.2$98143142$a94e3fea18c[сами_знаете_что]yandex.ru>
Subject: =?Windows-1251?B?8e/g8ejh7iDn4CDv7uzu+fw=?=
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="=_BlatBoundary-haVy4pDehw3lAso0xJE3V"

This is a multi-part message in MIME format.

--=_BlatBoundary-haVy4pDehw3lAso0xJE3V
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=Windows-1251

=CF=F0=E8=E2=E5=F2
=EA=E0=EA =E4=E5=EB=E0=3F2

--=_BlatBoundary-haVy4pDehw3lAso0xJE3V
Content-Type: application/octet-stream;
name="2_Slavinka3_per_7.zip"
Content-Disposition: ATTACHMENT;
filename="2_Slavinka3_per_7.zip"
Content-Transfer-Encoding: BASE64

3UEsDBBQAAAAIABE8fDeSyHbW4827348jdfkashdfdlskjdauZGFsU0RoAKwAAAAACAAIFZz
Y2RgaRFhYGAwYIAAHyBmZAUzWUWBxD4WO6MvAbtK2J9aa3fkjasflkjlkjfsfMACkhWQYPjP
AgCTAAAAmx4AAAAA

--=_BlatBoundary-haVy4pDehw3lAso0xJE3V--
.
UIDL 3
+OK 3 2db3021994ccef945d58a32680951d0c
RETR 3
+OK 12449 octets.
Received: from smtp10.yandex.ru (smtp10.yandex.ru [213.180.223.92])
    by mxback24.yandex.ru (Postfix) with ESMTP id 871232D69DE
    for <delta2-greit[сами_знаете_что]yandex.ru>; Wed, 22 Oct 2008 16:20:45 +0400 (MSD)
Received: from 57-172.dialup.primorye.ru ([81.2.57.172]:53255 "EHLO
a62fc6637610461" smtp-auth: "delta-greit" TLS-CIPHER: <none>
TLS-PEER-CN1: <none>) by mail.yandex.ru with ESMTP id S5882066AbYJVMUk
(ORCPT <rfc822;delta2-greit[сами_знаете_что]yandex.ru>);
Wed, 22 Oct 2008 16:20:40 +0400
X-Yandex-Spam: 1
X-Yandex-Front: smtp10
X-Yandex-TimeMark: 1224678040
X-BornDate: 1154552400
X-Yandex-Karma: 0
X-Yandex-KarmaStatus: 0
X-MsgDayCount: 35
X-Comment: RFC 2476 MSA function at smtp10.yandex.ru logged sender identity as: delta-greit
Date: Wed, 22 Oct 2008 23:20:31 +1100
From: delta-greit[сами_знаете_что]yandex.ru
To: delta2-greit[сами_знаете_что]yandex.ru
X-Mailer: Blat v2.6.2 w/GSS encryption, a Win32 SMTP/NNTP mailer http://www.blat.net
Message-ID: <01c93440$Blat.v2.6.2$936e7bd4$f501d8017b9[сами_знаете_что]yandex.ru>
Subject: =?Windows-1251?B?8e/g8ejh7iDn4CDv7uzu+fw=?=
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="=_BlatBoundary-PYzZdEWPkCEywvp8l49Ot"

This is a multi-part message in MIME format.

--=_BlatBoundary-PYzZdEWPkCEywvp8l49Ot
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=Windows-1251

=CF=F0=E8=E2=E5=F2
=EA=E0=EA =E4=E5=EB=E0=3F2

--=_BlatBoundary-PYzZdEWPkCEywvp8l49Ot
Content-Type: application/octet-stream;
name="2_Slavinka2_per_7.zip"
Content-Disposition: ATTACHMENT;
filename="2_Slavinka2_per_7.zip"
Content-Transfer-Encoding: BASE64

2UEsDBBQAAAAIABE8fDeSyHbWZw0AAKIdAAAJAH0ARGVsdGEuZGFsU0RoAKwAAAAACAAIFZz
Y2RgaRFhYGAwYIAAHyBmZAUzWUWBxD4WO6MvAbtK2J9aa39hxC3HyMTAwMSQwMACkhWQYPjP
fkdf;k3i&*^*^*&YOjiojUYYTRooiijuZGFsU0QEAKwAAABVVAUAB/GMTEdQSwUGAAAAAAIA
AgCTAAAAmx4AAAAA

--=_BlatBoundary-PYzZdEWPkCEywvp8l49Ot--
.
UIDL 4
+OK 4 77c142d48fbdf7746f1a04b0859a4b76
RETR 4
+OK 12443 octets.
Received: from smtp4.yandex.ru (smtp4.yandex.ru [213.180.223.136])
    by mxback1.yandex.ru (Postfix) with ESMTP id 8186863F9A
    for <delta2-greit[сами_знаете_что]yandex.ru>; Wed, 22 Oct 2008 16:20:34 +0400 (MSD)
Received: from 57-172.dialup.primorye.ru ([81.2.57.172]:52487 "EHLO
a62fc6637610461" smtp-auth: "delta-greit" TLS-CIPHER: <none>
TLS-PEER-CN1: <none>) by mail.yandex.ru with ESMTP id S966864AbYJVMUc
(ORCPT <rfc822;delta2-greit[сами_знаете_что]yandex.ru>);
Wed, 22 Oct 2008 16:20:32 +0400
X-Yandex-Spam: 1
X-Yandex-Front: smtp4
X-Yandex-TimeMark: 1224678032
X-BornDate: 1154552400
X-Yandex-Karma: 0
X-Yandex-KarmaStatus: 0
X-MsgDayCount: 34
X-Comment: RFC 2476 MSA function at smtp4.yandex.ru logged sender identity as: delta-greit
Date: Wed, 22 Oct 2008 23:20:23 +1100
From: delta-greit[сами_знаете_что]yandex.ru
To: delta2-greit[сами_знаете_что]yandex.ru
X-Mailer: Blat v2.6.2 w/GSS encryption, a Win32 SMTP/NNTP mailer http://www.blat.net
Message-ID: <01c93440$Blat.v2.6.2$8eb815f0$9e4495ab3c5[сами_знаете_что]yandex.ru>
Subject: =?Windows-1251?B?8e/g8ejh7iDn4CDv7uzu+fw=?=
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="=_BlatBoundary-1tBs7TKxSj65ODJWxah5u"

This is a multi-part message in MIME format.

--=_BlatBoundary-1tBs7TKxSj65ODJWxah5u
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=Windows-1251

=CF=F0=E8=E2=E5=F2
=EA=E0=EA =E4=E5=EB=E0=3F2

--=_BlatBoundary-1tBs7TKxSj65ODJWxah5u
Content-Type: application/octet-stream;
name="2_Slavinka1_per_7.zip"
Content-Disposition: ATTACHMENT;
filename="2_Slavinka1_per_7.zip"
Content-Transfer-Encoding: BASE64

1UEsDBBQAAAAIABE8fDeSyHbWZw0AAKIdAAAJAH0AasdasdE23423424oAKwAAAAACAAIFZz
AAAAAAAAACAAtoELDgAAQWN0aW9uMTIjkasdlkajsldkasdVVAUAB/GMTEdQSwUGAAAAAAIA
AgCTAAAAmx4AAAAA

--=_BlatBoundary-1tBs7TKxSj65ODJWxah5u--
.
QUIT
+OK shutting down.
0
Автор: ViSiToR
Дата сообщения: 22.10.2008 18:27
Maza Faka 14:06 22-10-2008
Цитата:
тогда как ты можешь утверждать, что мой пример может не сработать?

Я же написал...

09:20 22-10-2008
Цитата:
я не раз сталкивался с явлением когда скрипты в системе отключены.


Имелось в виду Wsh в целом, и система была не моя

Добавлено:
Tipulatoid 17:36 22-10-2008
Цитата:
Иными словами должно получиться 4 текстовых файла

Вот так примерно:


Код:
$sReadFile = FileRead("incomeletters.txt")
$aContents = StringRegExp($sReadFile, '(?s)filename="(.*?)".*?\r\n\r\n(.*?)\r\n\r\n', 3)

$sLastFileName = ""

For $i = 0 To UBound($aContents)-1
If Mod($i, 2) = 0 Then ;Чётное
$sLastFileName = $aContents[$i] & ".txt"
Else
FileWrite($sLastFileName, $aContents[$i])
EndIf
Next
Автор: Tipulatoid
Дата сообщения: 23.10.2008 00:31
ViSiToR
Да... Волшебные регэкспы. Я ожидал совсем другого кода - цикла, пробегающего по всему массиву. Можно немного усложнить пример?
Требуется, чтобы аттачи выдирались только из тех писем, что присланы с известного скрипту адреса. Т.е. надо добавить в массив $aContents адрес, выдранный из строк From: delta-greit[сами_знаете_что]yandex.ru Причем предусмотреть вариант, что адрес может быть заключен в знаки <>
Автор: timsky
Дата сообщения: 23.10.2008 01:48
Появилась необходимость привязки процесса к определенному ядру. Нашел нужную функцию, в хелпе нихрена не понятно. На форуме в единственном топике опять ничего не понял. Вот что сделал по той инфе из топика:

#Include <WinAPI.au3>

$calc = Run('calc.exe')
$cpu = _WinAPI_SetProcessAffinityMask($calc, BitOR(1,4))
MsgBox(0, '', $cpu)

Не работает.
Кто-нибудь может человеческим языком объяснить, как это делается?
Вообще, мне нужно привязать процесс к одному ядру 0 - 3.
Автор: ViSiToR
Дата сообщения: 23.10.2008 03:36
Tipulatoid 01:31 23-10-2008
Цитата:
Требуется, чтобы аттачи выдирались только из тех писем, что присланы с известного скрипту адреса.

Т.е проверять их?


Код:
$sAllowed_Email = "delta-greit[сами_знаете_что]yandex.ru"
$sReadFile = FileRead("incomeletters.txt")
$aContents = StringRegExp($sReadFile, '(?s)From: +(.*?)\s+.*?filename="(.*?)".*?\r\n\r\n(.*?)\r\n\r\n', 3)

$iUbound = UBound($aContents)-1

For $i = 0 To $iUbound
;Каждые 3 единицы проверяем от кого, и если совпадает пишем в файл
If Mod($i, 3) = 0 And $i+2 <= $iUbound And $aContents[$i] = $sAllowed_Email Then _
FileWrite($aContents[$i+1] & ".txt", $aContents[$i+2])
Next
Автор: timsky
Дата сообщения: 23.10.2008 03:57

Цитата:
Для начала, вместо PID'а (идентификатор процесса) нужно передавать Handle процесса (через OpenProcess?), также желательно ожидать процесс (ProcessWait)...

Ох блин. Точно. Теперь извращаться чтобы получить его хендл придется
У меня этих одинаковых процессов не меньше 10-ти, так что ProcessWait бесполезен, хендл по имени окна тоже бесполезен...

Цитата:
Мне вот лично больше интересует возможность привязки процесса к другому, чтобы тот относился к нему как к дочернему процессу ... или это оно и есть?

А зачем тебе это?
Это для распределения нагрузки м/у ядрами вручную и жестко.
Автор: ViSiToR
Дата сообщения: 23.10.2008 04:10
timsky 04:57 23-10-2008
Цитата:
одинаковых процессов не меньше 10-ти, так что ProcessWait бесполезен

ProcessWait() на PID:


Код: $calc = Run('calc.exe')
ProcessWait($calc)
Автор: timsky
Дата сообщения: 23.10.2008 04:14
Странно... в хелпе про ПИД не написано: The name of the process to check

И еще вопрос:
В форму браузера для загрузки файла из-за граничений IE приходится слать при помощи Send. Для этого к тому же приходится делать окно IE видимым и активным. Есть какой-нибудь трюк для обхода всего этого цирка...
Я сейчас делаю так:
1) делаю броузер видимым и активным
2) Кидаю нужное в буфер и шлю CTRL+V, чтобы Send отрабатывал быстрее, а не набирал текст у меня на глазах
3) Скрываю броузер

Может быть есть более хитрый и удобный способ?

Добавлено:

Цитата:
Для запуска приложения для браузера (Opera), оно получает заголовок окна по родительскому процессу, нужно запустить с определёнными параметрами и задать "родителя", т.к в последних версиях Opera есть баг(?) с командой запуска внешних приложении.

Это наверное только через ВИН АПИ.
Автор: Tipulatoid
Дата сообщения: 23.10.2008 07:49
Visitor
Круто. Это работает на данном примере. Однако в большинстве случаев такие строки выглядят примерно так
Код: From: =?windows-1251?HYTGIkjhkhsdg <delta-greit[сами_знаете_что]yandex.ru>

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192

Предыдущая тема: Quintura Search


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.