Что нового

Возникает ошибка при вторичной навигации объекта Shell.Explorer.2

nsgenn

Новичок
Сообщения
52
Репутация
1
Привет!

Выручайте, никак не могу разобрать в чем причина ошибки?
Ошибка заключается в том, что после нажатия кнопки "Вытащить" и после первичного выбора кнопки RADIO открывается не в GUI окне, а в новом окне IE.

Вторая проблема и основная появляется когда нажимаю второй раз, то вообще вылетает ошибка с завершением программы: "The requested action with this object has failed."

Программа выдирает с форума заголовки тем сообщений, восстанавливает их и создает радиокнопки, при выборе которых должны открываться файлы Html с компьютера

Код:
#Region
#AutoIt3Wrapper_Run_Obfuscator=Y
#Obfuscator_Parameters=/striponly
#EndRegion

#include <IE.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

DirCreate ( "IEFP" )

Local $ycr
$Gui = GUICreate("Парсинг информации", 960, 600)
GUISetState(@SW_SHOW) ; показывает созданное окно
$EditText = GUICtrlCreateInput('http://c-s.net.ua/forum/index.php?showforum=15', 10, 5, 360, 20) ;
$Plus_Button = GUICtrlCreateButton("Вытащить!", 370, 5, 80, 20)
Local $Labels[31], $press
Local $zm1[9] = ["&quot;","&amp;", "&lt;", "&gt;", "&#40", "&#41;", "&#33;", "&#58;", "&#064;"] 
Local $zm2[9]= ['"', "@", "<", ">", "(", ")", "!", ":", "@"]
Local $ID_Group
Local $oIE, $GUIActiveX
$oIE = ObjCreate("Shell.Explorer.2")
$GUIActiveX = GUICtrlCreateObj($oIE, 460, 10, 490, 580)


$msg = 0
    While $msg <> $GUI_EVENT_CLOSE
        $msg = GUIGetMsg()
		Switch $msg
			case $Plus_Button 
				$ycr = 60
				GUICtrlCreateGroup("Темы из форума", 45, 40, 410, 550)
				_Parsing(GUICtrlRead($EditText))
				GUICtrlCreateGroup("", -99, -99, 1, 1) ; закрывает группу
		EndSwitch
		For $i = 0 To UBound($Labels)-1
			if IsArray($Labels) AND $press<>$Labels[$i] AND $msg = $Labels[$i] AND BitAND(GUICtrlRead($Labels[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
				$press = $Labels[$i]
				$oIE.navigate("C:\123\" & $i & ".html")
			EndIf
		Next
    WEnd
    GUIDelete()


func _Parsing($Link)
	for $i = 0 To UBound($Labels)-1
		  GUICtrlDelete($Labels[$i])
	Next
	$oIE = _IECreate($Link,1,0)
	Local $id
	_IELoadWait ($oIE)
	$html = _IEBodyReadHTML ( $oIE )
	$Massiv = StringRegExp ( $html, "создана: [^>]*.([^<]*)", 3)
	sleep(1000)
	for $i = 0 To UBound($Massiv)-1
		for $j = 0 To 8
			$Massiv[$i] = StringReplace ($Massiv[$i], $zm1[$j], $zm2[$j])
		Next
		$id = GUICtrlCreateRadio($Massiv[$i], 50, $ycr, 400, 17)
		;create_folder($i, StringRegExp ( $html, "postcolor[^\n]*\n(.*).{6,}\n", 1))
		$Labels[$i]=$id
		$ycr+=17
	Next
	return 1
EndFunc

func create_folder($num, $parse)
	$file = FileOpen($num&".txt", 1)
	FileWrite($file, $parse)
EndFunc
 
Автор
N

nsgenn

Новичок
Сообщения
52
Репутация
1
inververs
ошибка на этой строке, тут же и окно неправильно открывается
Код:
$oIE.navigate("C:\123\" & $i & ".html")



Добавлено:
Сообщение автоматически объединено:

inververs
а! я понял вас! Создал новую переменную для встроенного окна и порядок)
 
Верх