Претик всем!! работаю над одним проэктиком на Autoit, вот исходник кстати
понимаете, в ходе написания появились некоторые вопросы а именно:
1)при запуске включается вкладка about, а хотелось бы Edit (не оч важное)
2)(ради чего и все выложил) как сделать так, чтобы при нажатии кнопки "GO" начинался бесконечный цикл до тех пор пока не нажмем кнопку "STOP"
3) и как можно отловить адресс сайта открытого через гугль хром через
, и по каким то причинам не работает на FireFox и Oper'е в данном скрипте
за помощь буду крайне благодарен
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <EditConstants.au3>
Global $iStep = 1
Global $state = "none"
Global $URL = 0
#Region ### START Koda GUI section ### Form=
;==Step 1
$MainGUI = GUICreate("Form1", 404, 124, 932, 556)
$IExplrer = GUICtrlCreateButton("IExplrer", 8, 8, 83, 97)
$Chrome = GUICtrlCreateButton("Chrome", 111, 8, 83, 97)
$Opera = GUICtrlCreateButton("Opera", 217, 8, 83, 97)
$Mozilla = GUICtrlCreateButton("Mozilla", 314, 8, 83, 97)
GUISetState(@SW_SHOW)
;==Step 2
$Exit = GUICtrlCreateButton("Exit", 296, 96, 99, 25)
$Tab1 = GUICtrlCreateTab(16, 8, 273, 105)
$TabSheet1 = GUICtrlCreateTabItem("Edit")
$Edit1 = GUICtrlCreateEdit("", 15, 30, 271, 82, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData(-1, "")
$TabSheet2 = GUICtrlCreateTabItem("Настройки")
$TabSheet3 = GUICtrlCreateTabItem("About")
GUICtrlCreateTabItem("")
$IP = GUICtrlCreateButton("IP", 344, 8, 43, 25)
$Go = GUICtrlCreateButton("Go", 344, 34, 43, 25)
$Pause = GUICtrlCreateButton("Pause", 344, 59, 43, 25)
$Stop = GUICtrlCreateButton("Stop", 344, 34, 43, 25)
_Elements_SetState($Stop, $Stop, $GUI_HIDE)
#EndRegion ### END Koda GUI section ###
_Elements_SetState($Exit, $Pause, $GUI_HIDE)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $go
_Elements_SetState($Go, $Go, $GUI_HIDE)
_Elements_SetState($Stop, $Stop, $GUI_SHOW)
Global $state = "start"
Case $Stop
_Elements_SetState($Stop, $Stop, $GUI_HIDE)
_Elements_SetState($Go, $Go, $GUI_SHOW)
Global $state = "stop"
Case $IExplrer
$iStep += 1
Switch $iStep
Case 2
_Elements_SetState($Exit, $Pause, $GUI_SHOW)
_Elements_SetState($IExplrer, $Mozilla, $GUI_HIDE)
$server = "IExplore"
Case 1
_Elements_SetState($Exit, $Pause, $GUI_HIDE)
_Elements_SetState($IExplrer, $Mozilla, $GUI_SHOW)
EndSwitch
Case $Chrome
$iStep += 1
Switch $iStep
Case 2
_Elements_SetState($Exit, $Pause, $GUI_SHOW)
_Elements_SetState($IExplrer, $Mozilla, $GUI_HIDE)
$server = "Chrome"
Case 1
_Elements_SetState($Exit, $Pause, $GUI_HIDE)
_Elements_SetState($IExplrer, $Mozilla, $GUI_SHOW)
EndSwitch
Case $Opera
$iStep += 1
Switch $iStep
Case 2
_Elements_SetState($Exit, $Pause, $GUI_SHOW)
_Elements_SetState($IExplrer, $Mozilla, $GUI_HIDE)
$server = "Opera"
Case 1
_Elements_SetState($Exit, $Pause, $GUI_HIDE)
_Elements_SetState($IExplrer, $Mozilla, $GUI_SHOW)
EndSwitch
Case $Mozilla
$iStep += 1
Switch $iStep
Case 2
_Elements_SetState($Exit, $Pause, $GUI_SHOW)
_Elements_SetState($IExplrer, $Mozilla, $GUI_HIDE)
$server = "Mozilla"
Case 1
_Elements_SetState($Exit, $Pause, $GUI_HIDE)
_Elements_SetState($IExplrer, $Mozilla, $GUI_SHOW)
EndSwitch
Case $Exit
$iStep -= 1
Switch $iStep
Case 2
_Elements_SetState($Exit, $Pause, $GUI_SHOW)
_Elements_SetState($IExplrer, $Mozilla, $GUI_HIDE)
Case 1
_Elements_SetState($Exit, $Pause, $GUI_HIDE)
_Elements_SetState($IExplrer, $Mozilla, $GUI_SHOW)
EndSwitch
EndSwitch
If $state = "start" Then
$result = GUICtrlRead($Edit1)
_browser($server)
;~ GUICtrlSetData($Edit1, _browser($server) & @CRLF & $result)
Sleep(1000)
ElseIf $state = "stop" Then
_stop()
EndIf
WEnd
Func _Elements_SetState($iFirstCtrlID, $iLastCtrlID, $iState)
For $i = $iFirstCtrlID To $iLastCtrlID
GUICtrlSetState($i, $iState)
Next
EndFunc
Func _stop()
Global $state = "none"
GUICtrlSetData($Edit1, "")
Sleep(1000)
EndFunc
Func _browser($browser)
If $browser = "IExplore" Then
standart("IExplore")
;~ ElseIf $browser = "Chrome" Then
;~ Chrome()
ElseIf $browser = "Opera" Then
standart("Opera")
ElseIf $browser = "FireFox" Then
standart()
EndIf
EndFunc
Func standart($server)
$Ret = OpenGetURL("", -1, 1, $server)
$iRows = UBound($Ret, 1)
If $iRows > 1 Then
$result = GUICtrlRead($Edit1)
EndIf
If $Ret[1] <> $url Then GUICtrlSetData($Edit1, $Ret[1] & @CRLF & $result)
$URL = $Ret[1]
EndFunc
Func OpenGetURL($sURL = "", $hWin = -1, $RetType = 0, $Server="IExplore", $iWait = 10000)
Local $ret, $err, $uIdInst = DllStructCreate("int")
Local $hServer[1], $hTopic[1], $hItem[1], $hConv[1], $hData[1], $sData[1]
Local $sTopic = "WWW_OpenURL", $sItem = $sURL & ',,0x' & Hex($hWin)
If $sURL = '' Then
$sTopic = "WWW_GetWindowInfo"
$sItem = "0x" & Hex($hWin)
EndIf
Local $hDll = DllOpen("user32.dll")
If $hDll=-1 Then Return SetError(1, 0, "") ; Error to open Dll
$ret = DllCall("user32.dll", "int", "DdeInitialize", "ptr", DllStructGetPtr($uIdInst), "ptr", 0, "int", 0, "int", 0)
If $ret[0] Then Return SetError(2, $ret[0], "") ; Error Initializing DDE
$hServer = DllCall($hDll, "int", "DdeCreateStringHandle", "int", DllStructGetData($uIdInst,1), "str", $Server, "int", 1004)
If $hServer[0] Then
$hTopic = DllCall($hDll, "int", "DdeCreateStringHandle", "int", DllStructGetData($uIdInst,1), "str", $sTopic, "int", 1004)
If $hTopic[0] Then
$hItem = DllCall($hDll, "int", "DdeCreateStringHandle", "int", DllStructGetData($uIdInst,1), "str", $sItem, "int", 1004)
If $hItem[0] Then
$hConv = DllCall($hDll, "int", "DdeConnect", "int", _
DllStructGetData($uIdInst,1), "int", $hServer[0], "int", $hTopic[0], "int", 0)
If $hConv[0] Then
$hData = DllCall($hDll, "int", "DdeClientTransaction", "ptr", 0, "int", 0, _
"int", $hConv[0], "int", $hItem[0], "int", 1, "int", 0x20B0, "int", $iWait, "ptr", 0)
If $hData[0] Then $sData = DllCall($hDll, "str", "DdeAccessData", "int", $hData[0], "ptr", 0)
EndIf
EndIf
EndIf
EndIf
$iErr = DllCall($hDll, "int", "DdeGetLastError", "int", DllStructGetData($uIdInst, 1))
If $hData[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hData[0])
If $hConv[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hConv[0])
If $hItem[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hItem[0])
If $hTopic[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hTopic[0])
If $hServer[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hServer[0])
If $iErr[0] Then Return SetError(3, $iErr[0], "") ; Othe DDE Errors
DllCall($hDll, "int", "DdeUninitialize", "int", DllStructGetData($uIdInst, 1))
DllClose($hDll)
$sData[0] = StringRegExpReplace($sData[0], ',""$', '')
If $sURL = '' Then $sURL = StringRegExpReplace($sData[0], '^"([^"]*)",.*', '\1')
Local $iRetTitle = StringRegExpReplace($sData[0], '^.*","([^"]*)"$', '\1')
Local $RetURL[3] = [$sData[0], $sURL, $iRetTitle]
If $RetType = 1 Then Return $RetURL
Return $sData[0]
EndFunc
понимаете, в ходе написания появились некоторые вопросы а именно:
1)при запуске включается вкладка about, а хотелось бы Edit (не оч важное)
2)(ради чего и все выложил) как сделать так, чтобы при нажатии кнопки "GO" начинался бесконечный цикл до тех пор пока не нажмем кнопку "STOP"
3) и как можно отловить адресс сайта открытого через гугль хром через
Код:
OpenGetURL
за помощь буду крайне благодарен