Странно, почему убрана опция "RunErrorsFatal"? Чем ее можно заменить?
» AutoIT
gal7
19:44 04-10-2008
Цитата:
Убрали т.к теперь по умолчанию скрипт не будет вылетать с фатальной ошибкой при использовании Run...()/ShellExecute...(). Заменять её не нужно, просто проверяй @error
19:44 04-10-2008
Цитата:
почему убрана опция "RunErrorsFatal"? Чем ее можно заменить?
Убрали т.к теперь по умолчанию скрипт не будет вылетать с фатальной ошибкой при использовании Run...()/ShellExecute...(). Заменять её не нужно, просто проверяй @error
gal7
History
History
Дни на пролет с программами дают о себе знать - усталость, невнимательность... Извиняюсь.
Я то хотел найти опцию(или еще что-то), которая бы позволяла выполнять скрипты без завершения программы при возникновении ошибки. Например, если появляется ошибка, то она не прекращает программу, а пробует дальше выполняться(как например скрипты в браузерах). Ато такое завершение мне может дорого стоить потом
Я то хотел найти опцию(или еще что-то), которая бы позволяла выполнять скрипты без завершения программы при возникновении ошибки. Например, если появляется ошибка, то она не прекращает программу, а пробует дальше выполняться(как например скрипты в браузерах). Ато такое завершение мне может дорого стоить потом
ViSiToR
Цитата:
Спасибо , теперь системных ошибок нет.
Но осталась ошибка при записи тега '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
Цитата:
Я как то переделал для себя (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
Подскажите как считать из активного окна IE текст для дальнейшей с ним работы. Зарание спасибо.
11source
Смотри функции _IE... в хелпе UDFs3
Смотри функции _IE... в хелпе UDFs3
11source
Код:
_IEBodyReadHTML()
_IEBodyReadText()
Код:
_IEBodyReadHTML()
_IEBodyReadText()
Здравствуйте
Может кто подскажет, как с помощью AutoIT при запуске программы OziExplorer отображать на экране только карту (дочерние окно) в окне определенного размера.
Для OziExplorer Class Name: TfmMainForm
Для окна карты Class Name: TscrollBox1
Управление программой предполагается с помощью горячих клавиш
Может кто подскажет, как с помощью AutoIT при запуске программы OziExplorer отображать на экране только карту (дочерние окно) в окне определенного размера.
Для OziExplorer Class Name: TfmMainForm
Для окна карты Class Name: TscrollBox1
Управление программой предполагается с помощью горячих клавиш
Подскажите плиз как проверить состоит ли срока только из Заглавных букв
Брал из справки
Код: If StringIsUpper("ABCDF") Then
MsgBox(4096, "", "String contains only UPPERCASE letters")
EndIf
Брал из справки
Код: If StringIsUpper("ABCDF") Then
MsgBox(4096, "", "String contains only UPPERCASE letters")
EndIf
XpycTMD
Может найти и удалить все "небуквы", а потом проверить тем то есть?
Увсем
Есть таблица вкладок GUICtrlCreateTab, в ней есть вкладки GUICtrlCreateTabItem. Как отключить и включить вкладки (часть или для примера одну из) в процессе выполнения программы (по нажатию кнопки или смене радиобатона)? Пробовал $GUI_HIDE и $GUI_Disable - то ли не так пробовал, то ли ...
Может найти и удалить все "небуквы", а потом проверить тем то есть?
Увсем
Есть таблица вкладок GUICtrlCreateTab, в ней есть вкладки GUICtrlCreateTabItem. Как отключить и включить вкладки (часть или для примера одну из) в процессе выполнения программы (по нажатию кнопки или смене радиобатона)? Пробовал $GUI_HIDE и $GUI_Disable - то ли не так пробовал, то ли ...
VitAlll2013
Цитата:
Дело в том что у меня есть массив созданный вот такой командой _FileReadToArray. Если значение из массива это строка состоящая только из заглавных букв и не важно есть там пробел или цифры тогда необходимо создать фаил название которого будет эта строка из массива и записать в него все что идет после этой строчки. В масиве может быть несколько таких строчек.
Вот я и застрял на том как сделать проверку таких строчек.
Цитата:
Может найти и удалить все "небуквы", а потом проверить тем то есть?
Дело в том что у меня есть массив созданный вот такой командой _FileReadToArray. Если значение из массива это строка состоящая только из заглавных букв и не важно есть там пробел или цифры тогда необходимо создать фаил название которого будет эта строка из массива и записать в него все что идет после этой строчки. В масиве может быть несколько таких строчек.
Вот я и застрял на том как сделать проверку таких строчек.
XpycTMD
Так пойдет:
Код: If NOT StringRegExp("ABC DEF", "[a-zа-я]") Then
MsgBox(0,0,"Маленьких букв нет")
EndIf
Так пойдет:
Код: If NOT StringRegExp("ABC DEF", "[a-zа-я]") Then
MsgBox(0,0,"Маленьких букв нет")
EndIf
XpycTMD
If $text == StringUpper($text) Then
....
EndIf
If $text == StringUpper($text) Then
....
EndIf
Как можно сохранить картинку (капчу) на диск? Например, отсюда:
=http://mail.google.com/mail/signup
Сэмулировать клик мышкой по картинке и выбор "Сохранить рисунок как" я могу, но нужно более элегантное решение. Ума не приложу, как это сделать.
=http://mail.google.com/mail/signup
Сэмулировать клик мышкой по картинке и выбор "Сохранить рисунок как" я могу, но нужно более элегантное решение. Ума не приложу, как это сделать.
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)
Попробуй так:
Код: #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)
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
Цитата:
Как отключить и включить вкладки
Скрыть или просто отключить? Скырть вроде нельзя, отключить можно так:
Код: #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
gal7
Цитата:
Спасибо но не подходит
U235
Спасибо этот метод больше подходит
Цитата:
Так пойдет:
Спасибо но не подходит
U235
Спасибо этот метод больше подходит
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
Цитата:
как проверить состоит ли срока только из Заглавных букв
Можно и так:
Код:
$sString = "FILE NAME 1"
If StringIsUpper(StringRegExpReplace($sString, "(?i)[^a-zа-я]", "")) Then
MsgBox(4096, "", StringFormat("String [%s] contains only UPPERCASE letters.", $sString))
;...
EndIf
Здравствуйте
Может кто подскажет, как с помощью AutoIT при запуске программы OziExplorer отображать на экране только карту (дочерние окно) в окне определенного размера.
Для OziExplorer Class Name: TfmMainForm
Для окна карты Class Name: TscrollBox1
Управление программой предполагается с помощью горячих клавиш
Может кто подскажет, как с помощью AutoIT при запуске программы OziExplorer отображать на экране только карту (дочерние окно) в окне определенного размера.
Для OziExplorer Class Name: TfmMainForm
Для окна карты Class Name: TscrollBox1
Управление программой предполагается с помощью горячих клавиш
Подскажите, есть ли способ получить из строки, например такой, "c:\delme\file.txt" имя файла "file.txt" , не прибегая к StringSplit. Должен же быть макрос или функция соотвествующая, но что-то в справке не нашел. Или искал так?
Добавлено:
SokSan
Ты бы хоть ссылку на прогу дал. Людям, если согласятся тебе помочь, надо потестить скрипт.
Добавлено:
SokSan
Ты бы хоть ссылку на прогу дал. Людям, если согласятся тебе помочь, надо потестить скрипт.
Tipulatoid
StringRegExpReplace("c:\delme\file.txt", ".*\\", "")
StringRegExpReplace("c:\delme\file.txt", ".*\\", "")
Цитата:
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М
Да мне в принципе понять и попробовать как сделать чтобы запустить программу но при этом отображать только дочерное окно
U235
В сторону регэкспов и не думал. Thanks
В сторону регэкспов и не думал. Thanks
VitAlll2013
Скрыть вкладки элемента Tab нельзя, но можно воспользоваться таким трюком
Скрыть вкладки элемента Tab нельзя, но можно воспользоваться таким трюком
Maza Faka
Именно так и сделал Все равно большое спасибо!
ViSiToR
Спасибо По твоему способу нужно еще и POSTом слать и.т.д... В принципе, на данный момент у меня есть в этом необходимость для другой штуки. Я вообще не думал, что они дают стануть капчу более 1 раза...
Нашел на ВИКИ:
Цитата:
Но ни один линк не работает, поиск по оф. форуму ничего не дает... Где можно подобным разжиться?
Именно так и сделал Все равно большое спасибо!
ViSiToR
Спасибо По твоему способу нужно еще и POSTом слать и.т.д... В принципе, на данный момент у меня есть в этом необходимость для другой штуки. Я вообще не думал, что они дают стануть капчу более 1 раза...
Нашел на ВИКИ:
Цитата:
HTTP_UDF_0.5
For downloading webpages and submitting POST requests
Но ни один линк не работает, поиск по оф. форуму ничего не дает... Где можно подобным разжиться?
timsky 15:10 08-10-2008
Цитата:
Зачем?
Цитата:
Даёт - В поисковике задал: "POST Request" (с кавычками).
Цитата:
По твоему способу нужно еще и POSTом слать и.т.д
Зачем?
Цитата:
поиск по оф. форуму ничего не дает
Даёт - В поисковике задал: "POST Request" (с кавычками).
Лочить не подойдёт, трюк тоже не совсем проходит - надо менять все вкладки, но всё равно спасибо за отклик. Я вот по экспериментировал над мыслью скрывать-показывать (включать-отключать - это как раз не важно) саму таблицу вкладок GUICtrlCreateTab, но если в Koda их действительно 2 или 3, то в исполняемом скрипте это получается одна таблица. Как так и почему не понимаю, ведь код тоже идёт как 2 таблицы?
Подскажите, есть задача запуска (перемещения) файлов по сети и использовать для этого переменную %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. Сетка многодоменная и КД у всех клиентов разный.
К примеру работает так:
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. Сетка многодоменная и КД у всех клиентов разный.
Я так и не понял как раскраску кода установить (куда копировать?) Хоть она в шапке красным+увеличенным шрифтом выделена. Просто запуск скрипта выдаёт RunErrorsFatal на 22 строке.
Я решил свою проблему с таблами и хотел бы ей поделиться, могу так скинуть текст, но не хочу - грамотно надо.
Добавлено:
SONNI
Попробуй так:
Код: $var = EnvGet("logonserver")
RunAs($sUserName, @LogonDomain, $sPassword, 0, $var & "\folder\file.exe")
Я решил свою проблему с таблами и хотел бы ей поделиться, могу так скинуть текст, но не хочу - грамотно надо.
Добавлено:
SONNI
Попробуй так:
Код: $var = EnvGet("logonserver")
RunAs($sUserName, @LogonDomain, $sPassword, 0, $var & "\folder\file.exe")
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
Предыдущая тема: Quintura Search
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.