Что нового

отловить адресса открытых сайтов в браузерах

kalpak44

Новичок
Сообщения
45
Репутация
1
Претик всем!! работаю над одним проэктиком на Autoit, вот исходник кстати
Код:
#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
, и по каким то причинам не работает на FireFox и Oper'е в данном скрипте

за помощь буду крайне благодарен :ok:
 
Верх