[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Ответить
 • Просмотры: 5
Аватара пользователя
DENoszone

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение DENoszone »

amel27,
Цитата amel27:



если параметр передавать в функцию без кавычек, то блокировка не снимается... почему?
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




Возможно на стороне функции параметр преобразуется обратно в String? Изображение

Хотя всё ровно не логично... но также и не удевительно (для меня), я уже сталкивался с багами подобного характера (в более простых приминениях, сейчас точно не вспомню где конкретно).



Как я понял всё же есть вариант на чистом AutoIt'е? проблема только в передаче параметра без кавычек? Пусть будут кавычки Изображение
Аватара пользователя
Creat0R

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение Creat0R »

Creat0R


Цитата:



Возможно на стороне функции параметр преобразуется обратно в String?
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




нет, точно не преобразуется - в исходнике видно что там тип BOOL, который основан на том же INT


Цитата:



я уже сталкивался с багами подобного характера
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




самое забавное, что на AutoHotKey тот же эффект, сказываются общие корни? Изображение


Цитата:



Как я понял всё же есть вариант на чистом AutoIt'е?
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




нет, я просто просмотрел исходник на Си и комменты автора - в принципе если задача обойтись без DLL, то ничего невозможного нет... хотя "чистым AutoIT" это уже назвать не выйдет - придется собирать кусок ASM-кода (как это делал Piccaso в CallBack) и инжектировать в процесс Winlogon. Кстати, возможны проблемы с некоторыми файерволами... к примеру,
Outpost
блокирует подобное поведение


Цитата:



проблема только в передаче параметра без кавычек?
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




просто зацепило Изображение
Аватара пользователя
DENoszone

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение DENoszone »

Цитата amel27:



на оффсайте достаточно инфы и примеров
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




Ну для меня Оффсайт дремучий лес, так как я в английском полный ноль Изображение
Аватара пользователя
Creat0R

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение Creat0R »

amel27,

Нужна твоя помощь Изображение Необходимо получить список компьютеров локальной сети, в принципе решение есть (твой скрипт для Nicklock-a), но из "спортивного" интереса хотелось бы получить список с помощью нижеуказанных функций:



Код:

Код: Выделить всё

Global Const $RESOURCE_CONTEXT   = 0x5
Global Const $RESOURCETYPE_DISK  = 0x1
Global Const $NO_ERROR              = 0
Global Const $ERROR_NO_MORE_ITEMS   = 259
Global Const $ERROR_INVALID_ADDRESS = 487
$lpBuffer = DllStructCreate("dword[16384]")
$pBuffer = DllStructCreate("hwnd")
$aRet = DllCall("mpr.dll", "dword", "WNetOpenEnum", "dword", $RESOURCE_CONTEXT, "dword", $RESOURCETYPE_DISK, "dword", 0, "ptr", 0, _
                "ptr", DllStructGetPtr($pBuffer))
If $aRet[0]  $NO_ERROR Then
    MsgBox(16, "Error", "Dll call error")
    Exit
EndIf
$hWnd = DllStructGetData($pBuffer, 1)
$aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hWnd, "dword", -1, _
                "ptr", DllStructGetPtr($lpBuffer), "dword", DllStructGetSize($lpBuffer))
ConsoleWrite("!> Ret: " & $aRet[0] & @LF)
DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hWnd)

Ссылки:

WNetOpenEnum


WNetEnumResource
Аватара пользователя
Creat0R

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение Creat0R »

Maza Faka

примерно так, но функция сама не ищет во вложенных контейнерах,

в твоем случае она возвратит только объект "Вся сеть" Изображение



Код:

Код: Выделить всё

Global Const $NO_ERROR            = 0
Global Const $ERROR_NO_MORE_ITEMS = 259
Global Const $ERROR_MORE_DATA     = 234
Global Const $MAX_RESOURCES       = 256
Global Const $NOT_A_CONTAINER     = -1
Global Const $RESOURCETYPE_ANY    = 0
Global Const $RESOURCETYPE_DISK   = 1
Global Const $RESOURCETYPE_PRINT  = 2
Global Const $RESOURCE_CONNECTED  = 1
Global Const $RESOURCE_GLOBALNET  = 2
Global Const $RESOURCE_REMEMBERED = 3
Global Const $RESOURCE_CONTEXT    = 5
Func _WNet_EnumResource($iType = $RESOURCETYPE_ANY, $iScope = $RESOURCE_CONTEXT)
    Local $tBuf = DllStructCreate("hwnd"), $pBuf = DllStructGetPtr($tBuf)
    Local $aRet = DllCall("mpr.dll", "int", "WNetOpenEnum", "int", $iScope, "int", $iType, "int", 0, "ptr", 0, "ptr", $pBuf)
    If $aRet[0] Then Return SetError(2, $aRet[0])
    Local $hEnum  = DllStructGetData($tBuf,1)
    Local $tCount = DllStructCreate("int"), $pCount = DllStructGetPtr($tCount)
    Local $tBSize = DllStructCreate("int"), $pBSize = DllStructGetPtr($tBSize)
    DllStructSetData($tCount, 1, -1)
    $aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hEnum, "ptr", $pCount, "ptr", $pBuf, "ptr", $pBSize)
    If $aRet[0]=0 Then
        DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
        Return SetError(1, 0)
    ElseIf $aRet[0]$ERROR_MORE_DATA Then
        DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
        Return SetError(3, $aRet[0])
    EndIf
    DllStructSetData($tCount, 1, -1)
    $tBuf = DllStructCreate("byte["& DllStructGetData($tBSize,1) &"]")
    $pBuf = DllStructGetPtr($tBuf)
    $aRet = DllCall("mpr.dll", "int", "WNetEnumResource", "hwnd", $hEnum, "ptr", $pCount, "ptr", $pBuf, "ptr", $pBSize)
    If $aRet[0] Then
        DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
        Return SetError(4, $aRet[0])
    EndIf
    DllCall("mpr.dll", "int", "WNetCloseEnum", "hwnd", $hEnum)
    Return SetError(0, DllStructGetData($tCount,1), $tBuf)
EndFunc
Аватара пользователя
DENoszone

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение DENoszone »

а как в цикл?

и как +1 к ссылке?

и ксатти не отправляет вроде...

может другой браузер надо:
Аватара пользователя
Creat0R

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение Creat0R »

Информация к размышлению. Сам только что случайно увидел.

При копировании файла с одного диска на другой время последнего изменения у нового файла увеличивается на 1 секунду. Это происходит и при копировании в эксплорере, и в автоите функцией FileCopy. Можно этого как-нибудь избежать (кроме варианта с FileSetTime, менять время у кучи файлов непонтово)?
Аватара пользователя
DENoszone

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение DENoszone »

та я просто...до этого так же как и ты сделал...оно и не пахало..во тчего написал...
Аватара пользователя
DENoszone

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение DENoszone »

Подскажите пожалуйста, у меня есть exe файлик в редакторе ресурсов написано что он создан с помощью "AutoIt v3 Script : 3, 2, 2, 0" я хотел бы узнать как и чем его можно открыть и посмотреть какие команды он выполняет, это возможно? Извините если не по теме.
Аватара пользователя
Creat0R

Re: [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Сообщение Creat0R »

Понадобилась снова помощь по регулярным выражениям...



Имеем исходный код страницы (это только часть, оно повторяется по той же структуре далее):




Src.txt - Нажмите для показа

Код: Выделить всё

<div class="vldescbox">
				<div  class="vltitle">
					<div class="vlshortTitle">
						<a href="/watch?v=UiPhfbZsS54"  title="WTTC 2008 table tennis best points.... enjoy">WTTC <b>2008 table tennis</b> best points.... enjoy</a>
					</div>
					<div class="vllongTitle">
						<a href="/watch?v=UiPhfbZsS54"  title="WTTC 2008 table tennis best points.... enjoy">WTTC <b>2008 table tennis</b> best points.... enjoy</a>
					</div>
				</div>
				<div  class="vldesc">
					the WTTC <b>2008 table tennis</b> best points.... enjoy <b>...</b> WTTC <b>2008 table tennis</b> best points extreme ma lin <b>...</b>
				</div>
			</div>
			<div class="vlclearaltl"></div>
		</div>
		<div class="vlfacets">
			<div class="vladded">
					<span class="grayText">Added:</span> 3 months ago<br/>
			</div>
				<div><span class="grayText vlfromlbl">From:</span><span class="vlfrom"><a href="/user/kioka2" >kioka2</a></span></div>
				<div class="clearL"></div>
			<span class="grayText">Views:</span> 59,747<br/>
			<div class="video-thumb-duration-rating">
	<div>
	<img class="ratingVS ratingVS-5.0" alt="4.9" src="http://s.ytimg.com/yt/img/pixel-vfl73.gif" />
	</div>
				<div class="runtime">07:26</div>
			</div>
								<div class="clear"></div>
				<div class="vlcategory">
					<span class="smgrayText">More in</span> <a href="/results?search_category=17&search_query=table%20tennis%202008" >Sports</a>
				</div>
		</div>
		<div class="vlclearaltl"></div>
	</div> <!-- end vEntry -->
		</div>
		<div class="vlclear"></div>
		<div class="vlcell" style="width:24.9%">
	<div class="vlentry" >
		<div class="vlcontainer"><div class="v120WideEntry"><div class="v120WrapperOuter"><div class="v120WrapperInner"><a href="/watch?v=EcIsmXhduVc" ><img src="http://i.ytimg.com/vi/EcIsmXhduVc/default.jpg" class="vimg120" title="Highlights of the 2008 Asian Olympic Table Tennis Quali" alt="video"></a><div class="addtoQL90"><a href="#"  ql="EcIsmXhduVc" title="Add Video to QuickList"><img class="QLIconImg" src="http://s.ytimg.com/yt/img/pixel-vfl73.gif" border="0"
	onclick="clicked_add_icon(this, this.parentNode.getAttribute('ql'), 0);_hbLink('QuickList+AddTo','na');return false;"
	onmouseover="mouseOverQuickAdd(this, this.parentNode.getAttribute('ql'))"
	onmouseout="mouseOutQuickAdd(this, this.parentNode.getAttribute('ql'))"></a><div class="hid quicklist-inlist">in <a href="/watch_queue?all">QuickList</a></div></div>
</div></div>
			</div>
			<div class="vldescbox">
				<div  class="vltitle">
					<div class="vlshortTitle">
						<a href="/watch?v=EcIsmXhduVc"  title="Highlights of the 2008 Asian Olympic Table Tennis Quali">Highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Quali</a>
					</div>
					<div class="vllongTitle">
						<a href="/watch?v=EcIsmXhduVc"  title="Highlights of the 2008 Asian Olympic Table Tennis Quali">Highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Quali</a>
					</div>
				</div>
				<div  class="vldesc">
								<span  id="BeginvidDescEcIsmXhduVc">
	highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Qualification. You will enjoy it! It concludes Wang Nan and Wang Liqin <b>...</b>
	</span>
			<span  id="RemainvidDescEcIsmXhduVc" style="display: none">In this video you can see the highlights of the 2008 Asian Olympic Table Tennis Qualification. You will enjoy it! It concludes Wang Nan and Wang Liqin.</span>
			<span id="MorevidDescEcIsmXhduVc" class="smallText">(<a href="#" class="eLink" onclick="showDiv('RemainvidDescEcIsmXhduVc'); hideDiv('MorevidDescEcIsmXhduVc'); hideDiv('BeginvidDescEcIsmXhduVc'); showDiv('LessvidDescEcIsmXhduVc'); return false;">more</a>)</span>
			<span id="LessvidDescEcIsmXhduVc" style="display: none" class="smallText">(<a href="#" class="eLink" onclick="hideDiv('RemainvidDescEcIsmXhduVc'); hideDiv('LessvidDescEcIsmXhduVc'); showDiv('BeginvidDescEcIsmXhduVc'); showDiv('MorevidDescEcIsmXhduVc'); return false;">less</a>)</span>
				</div>
			</div>




Нужно получить значения в массив либо между и , либо между и .



Оно может встречаться и так и так, нужно получить текст описании роликов (это с YouTube исходник).



Вот что должно быть на выходе:





Код:

Код: Выделить всё

$avArray[0] = "WTTC <b>2008 table tennis</b> best points.... enjoy <b>...</b> WTTC <b>2008 table tennis</b> best points extreme ma lin <b>...</b>"
$avArray[1] = "highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Qualification. You will enjoy it! It concludes Wang Nan and Wang Liqin <b>...</b>"

У меня получилось сделать только так:





Код:

Код: Выделить всё

#include <Array.au3>
$sSource = FileRead("Src.txt")
$avArray = StringRegExp($sSource, '(?i)(?s)<div  class="vldesc">.*?[(<span  id="BeginvidDesc.*?">|)](.*?)</span>', 3)
_ArrayDisplay($avArray)

Как видно, добавляется в начало span id="BeginvidDesc....">, а иногда и в конце тоже добавляются теги. Реально ли одно-разовым вызовом StringRegExp (и без дополнительных циклов) получить то что нужно?





Алексей Н.,
Цитата Алексей Н.:



Есть ли возможность принудительно завершить скрипт через какое-то время, если не были приняты никакие действия?
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.




См. функцию _Timer_SetTimer() в справке.
Ответить

Вернуться в «AutoIt»