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

» AutoIT

Автор: gal7
Дата сообщения: 04.10.2008 18:44
Странно, почему убрана опция "RunErrorsFatal"? Чем ее можно заменить?
Автор: ViSiToR
Дата сообщения: 04.10.2008 20:33
gal7
19:44 04-10-2008
Цитата:
почему убрана опция "RunErrorsFatal"? Чем ее можно заменить?

Убрали т.к теперь по умолчанию скрипт не будет вылетать с фатальной ошибкой при использовании Run...()/ShellExecute...(). Заменять её не нужно, просто проверяй @error
Автор: Maza Faka
Дата сообщения: 05.10.2008 07:17
gal7
History
Автор: gal7
Дата сообщения: 05.10.2008 09:11
Дни на пролет с программами дают о себе знать - усталость, невнимательность... Извиняюсь.
Я то хотел найти опцию(или еще что-то), которая бы позволяла выполнять скрипты без завершения программы при возникновении ошибки. Например, если появляется ошибка, то она не прекращает программу, а пробует дальше выполняться(как например скрипты в браузерах). Ато такое завершение мне может дорого стоить потом
Автор: gregaz
Дата сообщения: 05.10.2008 15:55
ViSiToR

Цитата:
Я как то переделал для себя (Startup, т.е регистрация Dll'ки выполнялась не правильно), у меня тоже при использовании в скрипте вызывало крах, но так и не смог выявить причину, подозреваю что как то связанно со специфическими символами в тегах , ну или с путями к файлам...


Спасибо , теперь системных ошибок нет.
Но осталась ошибка при записи тега 'Comments' . Записывает не то , что задаешь
Остальные теги нормально.
Мне кажется для записи нескольких тегов нерационально каждый раз обращаться
к ф-ии : _CddbControl_SetID3Tag и производить запись тега в файл

Вот чуть изменил ф-ию :

Код: Func _setID3Tag1($h_file, $aValue)
Local $oId3 =
ObjCreate("CDDBControl.CddbID3Tag")
If Not
IsObj($oId3) Then
SetError(1)
Return 0
EndIf
; False means open for read-write
$oId3.LoadFromFile ($h_file, False)

$oId3.Album = $aValue [2][1]
$oId3.LeadArtist = $aValue [1][1]
$oId3.Title = $aValue [0][1]
$oId3.TrackPosition = $aValue [3][1]
$oId3.Year = $aValue [4][1]
$oId3.Genre = $aValue [5][1]
$oId3.CopyrightHolder = $aValue [6][1]

$oId3.SaveToFile ($h_file)
Return 1
EndFunc
;==>_setID3Tag1
Автор: 11source
Дата сообщения: 05.10.2008 20:09
Подскажите как считать из активного окна IE текст для дальнейшей с ним работы. Зарание спасибо.
Автор: timsky
Дата сообщения: 05.10.2008 20:45
11source
Смотри функции _IE... в хелпе UDFs3
Автор: Maza Faka
Дата сообщения: 06.10.2008 06:26
11source

Код:
_IEBodyReadHTML()
_IEBodyReadText()
Автор: SokSan
Дата сообщения: 07.10.2008 09:41
Здравствуйте
Может кто подскажет, как с помощью AutoIT при запуске программы OziExplorer отображать на экране только карту (дочерние окно) в окне определенного размера.
Для OziExplorer Class Name: TfmMainForm
Для окна карты Class Name: TscrollBox1
Управление программой предполагается с помощью горячих клавиш
Автор: XpycTMD
Дата сообщения: 07.10.2008 14:06
Подскажите плиз как проверить состоит ли срока только из Заглавных букв

Брал из справки

Код: If StringIsUpper("ABCDF") Then
MsgBox(4096, "", "String contains only UPPERCASE letters")
EndIf
Автор: VitAlll2013
Дата сообщения: 07.10.2008 14:22
XpycTMD
Может найти и удалить все "небуквы", а потом проверить тем то есть?

Увсем
Есть таблица вкладок GUICtrlCreateTab, в ней есть вкладки GUICtrlCreateTabItem. Как отключить и включить вкладки (часть или для примера одну из) в процессе выполнения программы (по нажатию кнопки или смене радиобатона)? Пробовал $GUI_HIDE и $GUI_Disable - то ли не так пробовал, то ли ...
Автор: XpycTMD
Дата сообщения: 07.10.2008 14:56
VitAlll2013

Цитата:
Может найти и удалить все "небуквы", а потом проверить тем то есть?


Дело в том что у меня есть массив созданный вот такой командой _FileReadToArray. Если значение из массива это строка состоящая только из заглавных букв и не важно есть там пробел или цифры тогда необходимо создать фаил название которого будет эта строка из массива и записать в него все что идет после этой строчки. В масиве может быть несколько таких строчек.

Вот я и застрял на том как сделать проверку таких строчек.
Автор: gal7
Дата сообщения: 07.10.2008 16:55
XpycTMD

Так пойдет:

Код: If NOT StringRegExp("ABC DEF", "[a-zа-я]") Then
MsgBox(0,0,"Маленьких букв нет")
EndIf
Автор: U235
Дата сообщения: 07.10.2008 17:11
XpycTMD

If $text == StringUpper($text) Then
....
EndIf
Автор: timsky
Дата сообщения: 07.10.2008 21:24
Как можно сохранить картинку (капчу) на диск? Например, отсюда:
=http://mail.google.com/mail/signup

Сэмулировать клик мышкой по картинке и выбор "Сохранить рисунок как" я могу, но нужно более элегантное решение. Ума не приложу, как это сделать.
Автор: Maza Faka
Дата сообщения: 08.10.2008 07:44
timsky
Попробуй так:

Код: #include <IE.au3>

$oIE = _IECreate("http://mail.google.com/mail/signup", 0, 0)
$oImgs = _IEImgGetCollection($oIE)

For $oImg In $oImgs
If StringInStr($oImg.src, "Captcha?") Then
$sURL = $oImg.src
ExitLoop
EndIf
Next

If
InetGet($sURL, "c:\Captcha.jpeg", 1) Then MsgBox(64, "Message", "Image downloading successful")

_IEQuit($oIE)
Автор: ViSiToR
Дата сообщения: 08.10.2008 07:53
VitAlll2013 15:22 07-10-2008
Цитата:
Как отключить и включить вкладки

Скрыть или просто отключить? Скырть вроде нельзя, отключить можно так:


Код: #include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiTab.au3>

Global $aDisabled_hTabs[1]

$hGUI = GUICreate("Tab Control Create", 400, 300)

$hTab = GUICtrlCreateTab(2, 2, 396, 296)

$Tab1 = GUICtrlCreateTabItem("Tab 1")
$Tab2 = GUICtrlCreateTabItem("Tab 2")
$Tab3 = GUICtrlCreateTabItem("Tab 3")

_GUICtrlTab_SetDsable(1) ;1 is the second tab item (by zero-based index)

GUISetState()

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

Func
_GUICtrlTab_SetDsable($nTabItem, $iDisable=True)
If $iDisable Then
$aDisabled_hTabs[0] += 1
ReDim $aDisabled_hTabs[$aDisabled_hTabs[0]+1]

$aDisabled_hTabs[$aDisabled_hTabs[0]] = $nTabItem
Else
Local
$aTmpArr[1]

For $i = 1 To $aDisabled_hTabs[0]
If $aDisabled_hTabs[$i] <> $nTabItem Then
$aTmpArr[0] += 1
ReDim $aTmpArr[$aTmpArr[0]+1]

$aTmpArr[$aTmpArr[0]] = $aDisabled_hTabs[$i]
EndIf
Next


$aDisabled_hTabs = $aTmpArr
EndIf
EndFunc

Func
WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab

$hWndTab
= GUICtrlGetHandle($hTab)

$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")

If $iIDFrom <> $hTab Then Return $GUI_RUNDEFMSG

Switch $iCode
Case $NM_CLICK ; The user has clicked the left mouse button within the control
;Return 1 ; nonzero to not allow the default processing
;Return 0 ; zero to allow the default processing

Case $NM_DBLCLK ; The user has double-clicked the left mouse button within the control

Case $NM_RCLICK ; The user has clicked the right mouse button within the control

Case $NM_RDBLCLK ; The user has clicked the right mouse button within the control

Case $NM_RELEASEDCAPTURE ; control is releasing mouse capture

Case $TCN_SELCHANGING
Local $iOldOpt_MCM = Opt("MouseCoordMode", 2)

Local $aMousePos = MouseGetPos()

Local $aHitItem1 = _GUICtrlTab_HitTest($hTab, $aMousePos[0], $aMousePos[1])
Local $aHitItem2 = _GUICtrlTab_HitTest($hTab, $aMousePos[0]-2, $aMousePos[1]-5)
Local $aHitItem3 = _GUICtrlTab_HitTest($hTab, $aMousePos[0]-5, $aMousePos[1])

For $i = 1 To $aDisabled_hTabs[0]
If $aDisabled_hTabs[$i] = $aHitItem1[0] Or $aDisabled_hTabs[$i] = $aHitItem2[0] Or _
$aDisabled_hTabs[$i] = $aHitItem3[0] Then Return 1
Next

Opt("MouseCoordMode", $iOldOpt_MCM)
EndSwitch

Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Автор: XpycTMD
Дата сообщения: 08.10.2008 08:47
gal7

Цитата:
Так пойдет:

Спасибо но не подходит

U235
Спасибо этот метод больше подходит

Автор: ViSiToR
Дата сообщения: 08.10.2008 09:03
XpycTMD 15:06 07-10-2008
Цитата:
как проверить состоит ли срока только из Заглавных букв

Можно и так:


Код:
$sString = "FILE NAME 1"

If StringIsUpper(StringRegExpReplace($sString, "(?i)[^a-zа-я]", "")) Then
MsgBox(4096, "", StringFormat("String [%s] contains only UPPERCASE letters.", $sString))
;...
EndIf
Автор: SokSan
Дата сообщения: 08.10.2008 10:17
Здравствуйте
Может кто подскажет, как с помощью AutoIT при запуске программы OziExplorer отображать на экране только карту (дочерние окно) в окне определенного размера.
Для OziExplorer Class Name: TfmMainForm
Для окна карты Class Name: TscrollBox1
Управление программой предполагается с помощью горячих клавиш



Автор: Tipulatoid
Дата сообщения: 08.10.2008 10:39
Подскажите, есть ли способ получить из строки, например такой, "c:\delme\file.txt" имя файла "file.txt" , не прибегая к StringSplit. Должен же быть макрос или функция соотвествующая, но что-то в справке не нашел. Или искал так?


Добавлено:
SokSan
Ты бы хоть ссылку на прогу дал. Людям, если согласятся тебе помочь, надо потестить скрипт.
Автор: U235
Дата сообщения: 08.10.2008 11:10
Tipulatoid
StringRegExpReplace("c:\delme\file.txt", ".*\\", "")
Автор: SokSan
Дата сообщения: 08.10.2008 11:11

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

Сама программа Триал http://www.oziexplorer3.com/eng/downloads/395/oziexp_setup.exe
Должна работать месяц без ключа С руссофикатором и ...
http://rs1gc2.rapidshare.com/files/873472/6001149/OziExplorer_3.95.4m.rar
Но прога весит 5,4М
Да мне в принципе понять и попробовать как сделать чтобы запустить программу но при этом отображать только дочерное окно
Автор: Tipulatoid
Дата сообщения: 08.10.2008 11:49
U235
В сторону регэкспов и не думал. Thanks
Автор: Maza Faka
Дата сообщения: 08.10.2008 12:41
VitAlll2013
Скрыть вкладки элемента Tab нельзя, но можно воспользоваться таким трюком
Автор: timsky
Дата сообщения: 08.10.2008 14:10
Maza Faka
Именно так и сделал Все равно большое спасибо!

ViSiToR
Спасибо По твоему способу нужно еще и POSTом слать и.т.д... В принципе, на данный момент у меня есть в этом необходимость для другой штуки. Я вообще не думал, что они дают стануть капчу более 1 раза...

Нашел на ВИКИ:

Цитата:
HTTP_UDF_0.5
For downloading webpages and submitting POST requests

Но ни один линк не работает, поиск по оф. форуму ничего не дает... Где можно подобным разжиться?
Автор: ViSiToR
Дата сообщения: 08.10.2008 14:35
timsky 15:10 08-10-2008
Цитата:
По твоему способу нужно еще и POSTом слать и.т.д

Зачем?


Цитата:
поиск по оф. форуму ничего не дает

Даёт - В поисковике задал: "POST Request" (с кавычками).
Автор: VitAlll2013
Дата сообщения: 09.10.2008 05:35
Лочить не подойдёт, трюк тоже не совсем проходит - надо менять все вкладки, но всё равно спасибо за отклик. Я вот по экспериментировал над мыслью скрывать-показывать (включать-отключать - это как раз не важно) саму таблицу вкладок GUICtrlCreateTab, но если в Koda их действительно 2 или 3, то в исполняемом скрипте это получается одна таблица. Как так и почему не понимаю, ведь код тоже идёт как 2 таблицы?
Автор: SONNI
Дата сообщения: 09.10.2008 08:02
Подскажите, есть задача запуска (перемещения) файлов по сети и использовать для этого переменную %logonserver% в пути к конечному файлу:
К примеру работает так:
Local $sUserName = "administrator"
    Local $sPassword = "123"
    RunAs($sUserName, @LogonDomain, $sPassword, 0, "\\dc\folder\file.exe")
А хотелось бы так:
Local $sUserName = "administrator"
    Local $sPassword = "123"
    RunAs($sUserName, @LogonDomain, $sPassword, 0, "%logonserver%\folder\file.exe")
P.S. Сетка многодоменная и КД у всех клиентов разный.

Автор: VitAlll2013
Дата сообщения: 09.10.2008 08:23
Я так и не понял как раскраску кода установить (куда копировать?) Хоть она в шапке красным+увеличенным шрифтом выделена. Просто запуск скрипта выдаёт RunErrorsFatal на 22 строке.

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

Добавлено:
SONNI
Попробуй так:

Код: $var = EnvGet("logonserver")
RunAs($sUserName, @LogonDomain, $sPassword, 0, $var & "\folder\file.exe")

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192

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


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