Beiträge von SEuBo
-
-
Kannst ja mal versuchen Tabs einzubauen.
Hatte auch mal ein Beispiel dafür gemacht *rauskram*Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>_IEErrorHandlerRegister()
[/autoit] [autoit][/autoit] [autoit]Dim $aGUIArray[1][4]
[/autoit] [autoit][/autoit] [autoit]
Global $iSel = 0, $hDummy = GUICreate("")$hGUI = GUICreate("Browser Beispiel", 800, 600)
[/autoit] [autoit][/autoit] [autoit]
$hURL = GUICtrlCreateInput("about:blank", 200, 540, 400)
$hNTab = GUICtrlCreateButton("Tab +", 20, 540, -1, -1)
$hRTab = GUICtrlCreateButton("Tab -", 60, 540, -1, -1)
$hABack = GUICtrlCreateButton(" <- ", 140, 540, -1, -1)
$hANext = GUICtrlCreateButton(" -> ", 165, 540, -1, -1)$aGUIArray[0][0] = GUICtrlCreateButton("about:blank", 20, 570, -1, -1, 0x8000)
[/autoit] [autoit][/autoit] [autoit]
$aGUIArray[0][1] = GUICreate("Child GUI", 700, 510, 50, 20, 0x80000000, $WS_EX_MDICHILD, $hGUI)
$aGUIArray[0][3] = __IECreateEmbedded($aGUIArray[0][2],"www.google.de")
_Browser_SyncURLBar()GUISetBkColor(0x000000, $hGUI)
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor(0xFF0000, $aGUIArray[0][1])
GUISetState(@SW_SHOWNOACTIVATE, $aGUIArray[0][1])
GUISetState(@SW_SHOW, $hGUI)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $hNTab
_Browser_TabAdd($aGUIArray)
_Browser_SyncURLBar()
Case $hURL
$oIE = _Browser_ReturnActiveObj()
_IENavigate($oIE, GUICtrlRead($hURL))
_Browser_SyncURLBar()
Case $hRTab
_Browser_TabRemove()
Case $hABack
$oIE = _Browser_ReturnActiveObj()
_IEAction($oIE,"back")
Case $hANext
$oIE = _Browser_ReturnActiveObj()
_IEAction($oIE,"forward")
EndSwitchFor $i = 0 To UBound($aGUIArray) - 1
[/autoit] [autoit][/autoit] [autoit]
If $nMsg = $aGUIArray[$i][0] Then
If $i = $iSel Then ContinueLoop 2
_Browser_AnimateChild($iSel, 0)
_Browser_AnimateChild($i, 1)
$iSel = $i
ExitLoop
EndIf
NextIf ControlGetHandle("", "", ControlGetFocus("")) <> GUICtrlGetHandle($hURL) Then
[/autoit] [autoit][/autoit] [autoit]
_Browser_SyncURLBar()
EndIf
WEndFunc __IECreateEmbedded(ByRef $_oIE, $_sURL = "about:blank")
[/autoit] [autoit][/autoit] [autoit]
$_oIE = _IECreateEmbedded()
$sObjCtrl = GUICtrlCreateObj($_oIE, 0, 0, 700, 510)
_IENavigate($_oIE, $_sURL)
Return $sObjCtrl
EndFunc ;==>__IECreateEmbeddedFunc _Browser_TabAdd(ByRef $aArray)
[/autoit] [autoit][/autoit] [autoit]
_Browser_AnimateChild($iSel, 0)
$iUbound = UBound($aArray)
$hSwitch = GUISwitch($hGUI)
ReDim $aArray[$iUbound + 1][4]
$aCPos = ControlGetPos($hGUI, "", $aArray[$iUbound - 1][0])
$aArray[$iUbound][0] = GUICtrlCreateButton("Tab " & $iUbound + 1, $aCPos[0] + $aCPos[2] + 5, 570, -1, -1, 0x8000)
$aArray[$iUbound][1] = GUICreate("Child GUI", 700, 510, 50, 20, 0x80000000, $WS_EX_MDICHILD, $hGUI)
$aArray[$iUbound][3] = __IECreateEmbedded($aArray[$iUbound][2])
_Browser_AnimateChild($iUbound, 1)
$iSel = $iUbound
GUISwitch($hSwitch)
EndFunc ;==>_Browser_TabAddFunc _Browser_TabRemove()
[/autoit] [autoit][/autoit] [autoit]
If UBound($aGUIArray) <= 1 Then Return
_Browser_AnimateChild($iSel, 0)
GUICtrlDelete($aGUIArray[$iSel][3])
GUIDelete($aGUIArray[$iSel][1])
GUICtrlDelete($aGUIArray[$iSel][0])
For $i = $iSel To UBound($aGUIArray) - 2
$aGUIArray[$i][0] = $aGUIArray[$i + 1][0]
$aGUIArray[$i][1] = $aGUIArray[$i + 1][1]
$aGUIArray[$i][2] = $aGUIArray[$i + 1][2]
$aGUIArray[$i][3] = $aGUIArray[$i + 1][3]
Next
ReDim $aGUIArray[UBound($aGUIArray) - 1][4]
If $iSel > 0 Then
$iSel -= 1
EndIf
ConsoleWrite($iSel & @CRLF)
_Browser_TabRepairSize()
_Browser_AnimateChild($iSel, 1)
EndFunc ;==>_Browser_TabRemoveFunc _Browser_ReturnActiveObj()
[/autoit] [autoit][/autoit] [autoit]
Return $aGUIArray[$iSel][2]
EndFunc ;==>_Browser_ReturnActiveObjFunc _Browser_AnimateChild($iIndex, $iFlag)
[/autoit] [autoit][/autoit] [autoit]
Switch $iFlag
Case 0
For $i = 255 To 0 Step -10
WinSetTrans($aGUIArray[$iIndex][1], "", $i)
Next
WinSetState($aGUIArray[$iIndex][1], "", @SW_HIDE)
Case 1
WinSetTrans($aGUIArray[$iIndex][1], "", 0)
WinSetState($aGUIArray[$iIndex][1], "", @SW_SHOWNOACTIVATE)
For $i = 0 To 255 Step 10
WinSetTrans($aGUIArray[$iIndex][1], "", $i)
Next
WinActivate($hGUI)
EndSwitch
EndFunc ;==>_Browser_AnimateChildFunc _Browser_SyncURLBar()
[/autoit] [autoit][/autoit] [autoit]
$oIE = _Browser_ReturnActiveObj()
$sUrl = _IEPropertyGet($oIE, "locationurl")
$sName = _IEPropertyGet($oIE, "locationname")
If $sUrl <> GUICtrlRead($hURL) Or ($sName <> GUICtrlRead($aGUIArray[$iSel][0]) AND StringLeft($sName, 15) & "..." <> GUICtrlRead($aGUIArray[$iSel][0])) Then
GUICtrlSetData($hURL, $sUrl)
$sText = $sName
If StringLen($sText) > 15 Then $sText = StringLeft($sText, 15) & "..."
GUICtrlSetData($aGUIArray[$iSel][0], $sText)
_Browser_TabRepairSize()
WinSetTitle($hGUI, "", $sName)
EndIf
EndFunc ;==>_Browser_SyncURLBarFunc _Browser_TabRepairSize()
[/autoit]
$hSwitch = GUISwitch($hDummy)
For $i = 0 To UBound($aGUIArray) - 1
$aCPos = ControlGetPos($hGUI, "", $aGUIArray[$i][0])
$hLableDummy = GUICtrlCreateButton(GUICtrlRead($aGUIArray[$i][0]), 0, 0, -1, -1)
$aCLPos = ControlGetPos($hDummy, "", $hLableDummy)
$aCPos[2] = $aCLPos[2]
ControlMove($hGUI, "", $aGUIArray[$i][0], $aCPos[0], $aCPos[1], $aCPos[2])
If $i = 0 Then ControlMove($hGUI, "", $aGUIArray[$i][0], 20, 570, $aCPos[2])
For $j = $i + 1 To UBound($aGUIArray) - 1
$aCTPos = ControlGetPos($hGUI, "", $aGUIArray[$j][0])
ControlMove($hGUI, "", $aGUIArray[$j][0], ($aCPos[0] + $aCPos[2] + 5), $aCTPos[1])
Next
Next
GUISwitch($hSwitch)
EndFunc ;==>_Browser_TabRepairSizeObwohl ich glaube dass du mein Script wohl (noch) nicht verstehen wirst. Dafür ist einfach zu wenig AutoIt Erfahrung da.
Deswegen: Versuch mal bei dir Tabs einzubauen, wenn du lust hast. Ich denke das wäre eine gute Herausforderung, an der du wachsen könntest.
-
Daher ist mein Favorit https://autoit.de/www.gidf.de
Und selbst dann gibt es Leute die dir sagen, dass sie damit nix anfangen können weil "da nur irgendwas über google steht. Undso"
Alles schon erlebt....
-
jap, das sollte so funktionieren. Kannst ja mal Testweise Paint öffnen, und die Zeichenfläche rot machen.
Kleiner Verbesserungsvorschlag:
[autoit]
Ich würde ExitLoop verwenden, das spaart wieder einen überflüssigen Variablennamen.While 1 ;kopfgesteuerte schleife - evtl fußgesteuerte nehmen, spaart zeit
[/autoit]
$ort = PixelSearch(200, 200, 300, 300, 0xFF0000, 20) ;pixelsearch sucht
If Not @error Then ;wenn kein error ;wenn kein @Error kommt, also die farbe gefunden wurde folgt anweisung
MouseClick("left", $ort[0], $ort[1]) ;maus fährt zu der stelle an der die suchfarbe gefunden wurde
ExitLoop ;While Schleife verlassen
EndIf ;ende der ifanweisung
WEnd ;ende der whileschleife -
Ich kenn mich mit php nicht aus, deswegen weiß ich nicht was das script auf deinem Server genau macht.
Für die Post würd ich dir jedenfalls WinHTTPempfehlen. Das ist wesentlich einfacher für solche Sachen. Es gibt ein sehr gutes Tutorial, das für dich wahrscheinlich leicht sein wird, weil du schon TCP kannst. Wenn du den Link willst whisper mich in der ShoutBox an. Ich poste hier keine Links mehr -
[autoit]
$aKoordinatendergefundenenFarbe = PixelSearch(200, 200, 300, 300, 0xFF0000, 20)
[/autoit]
If IsArray($aKoordinatendergefundenenFarbe) Then MsgBox(0, "", "Gefunden bei: " & $aKoordinatendergefundenenFarbe[0] & ", " & $aKoordinatendergefundenenFarbe[1])Gesucht wird im Rechteck 200,200 (obere linke kante) -> 300,300 (untere rechte kante) die Farbe Rot (0xFF0000) mit einer Farbabweichung von 20.
-
Kann man den Dateinamen nicht einfach per RegExp ändern?
[autoit]
Das verhindert dann auch dass Dateien mehrfach gekürzt werden (im prinzip)$sNewFileName = StringRegExpReplace($aFiles[$i],"^[\d\s]+- ?","")
[/autoit]/EDIT Hier noch ein Beispiel:
Spoiler anzeigen
[autoit]$sString = "20091031 2015 - Sky Cinema HD - Michael Clayton"
[/autoit] [autoit][/autoit] [autoit]$sString = StringRegExpReplace($sString,"^[\d\s]+- ?","")
[/autoit]
MsgBox(0,"1 Replace",$sString)
$sString = StringRegExpReplace($sString,"^[\d\s]+- ?","")
MsgBox(0,"2 Replace",$sString)
$sString = StringRegExpReplace($sString,"^[\d\s]+- ?","")
MsgBox(0,"3 Replace",$sString)Der Name bleibt nach dem 1 Replace immer gleich (weil das suchmuster n icht gefunden wird). Das ganze kann man dann nach belieben anpassen
-
Ich finds cool.
Auch wenns ein kurzes Script ist - es ist selbstgemacht, und funktioniert.Freut euch doch, dass er nen kleinen Browser gebaut hat, und uns nicht wie andere mit nem Bot auf den P**** gegangen ist.
-
So gehts auch (wollt noch meinen Senf abgeben :D)
m öffnet das Menü.
Spoiler anzeigen
[autoit]#include <GuiMenu.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{m}", "CONTEXTMENU")
Global Enum $idOpen = 1000, $idSave, $idInfo
Global $hGUI
_Main()Func _Main()
[/autoit] [autoit][/autoit] [autoit]; Create GUI
[/autoit] [autoit][/autoit] [autoit]
$hGUI = GUICreate("Menu", 1, 1, 0, 0, $WS_POPUP)
WinSetTrans($hGUI, "", 1)
GUISetState(); Register message handlers
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND"); Loop until user exits
[/autoit] [autoit][/autoit] [autoit]
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main; Handle WM_COMMAND messages
[/autoit] [autoit][/autoit] [autoit]
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Switch $iwParam
Case $idOpen
_WinAPI_ShowMsg("Open")
Case $idSave
_WinAPI_ShowMsg("Save")
Case $idInfo
_WinAPI_ShowMsg("Info")
EndSwitch
EndFunc ;==>WM_COMMAND; Handle WM_CONTEXTMENU messages
[/autoit] [autoit][/autoit] [autoit]
Func CONTEXTMENU()
Local $hMenu$hMenu = _GUICtrlMenu_CreatePopup()
[/autoit]
_GUICtrlMenu_InsertMenuItem($hMenu, 0, "Open", $idOpen)
_GUICtrlMenu_InsertMenuItem($hMenu, 1, "Save", $idSave)
_GUICtrlMenu_InsertMenuItem($hMenu, 3, "", 0)
_GUICtrlMenu_InsertMenuItem($hMenu, 3, "Info", $idInfo)
_GUICtrlMenu_TrackPopupMenu($hMenu, $hGUI)
_GUICtrlMenu_DestroyMenu($hMenu)
Return True
EndFunc ;==>CONTEXTMENU -
[autoit]
PixelSearch(X koordinate,y koordinate,x koordinate + breite, y koordinate + höhe,Farbe,farbabweichung,schrittweite (1 = jeder pixel, 2 = jeder 2te pixel))
[/autoit]PixelSearch gibt einen Array zurück. Wenn du schon mehrere Programmiersprachen kannst, weißt du ja höchstwahrscheinlich auch, was das ist.
[autoit]$aCoord = PixelSearch(...)
[/autoit]
MsgBox(0,"",$aCoord[0] & " " & $aCoord[1]) -
[autoit]
Processexists
[/autoit] -
Also bei mir stürzt nichts, ab, aber ich würds so machen:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]Global $Form1, $Form2, $Button1, $Button2 ; Natürlich Variablen vorher anlegen, weil GUIs in einer Funktion erstellt werden
[/autoit] [autoit][/autoit] [autoit]
_CreateGUIs() ; GUI's alle gleichzeitig erstellen.While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg(1) ; Erweiterter GUIGetMsg Mode (s. Hilfe)
Switch $nMsg[0] ; Welches Ereignis?
Case $GUI_EVENT_CLOSE ; GUI_EVENT_CLOSE
If $nMsg[1] = $Form1 Then Exit ; Wenn die nachricht von Form1 kam, dann beende.
GUISetState(@SW_HIDE, $nMsg[1]) ; Wenn das Script noch läuft (also die nachricht nicht von Form1 kam), einfach das GUI verstecken, von dem die Nachricht kam.
Case $Button1 ; Wenn Button 1 gedrückt,
GUISetState(@SW_SHOW, $Form2) ; Zeige Form2 an.
EndSwitch
WEndFunc _CreateGUIs()
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("1", 116, 26, 192, 124)
$Button1 = GUICtrlCreateButton("1", 0, 0, 75, 25, 0)$Form2 = GUICreate("2", 116, 26, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Button2 = GUICtrlCreateButton("2", 0, 0, 75, 25, 0)GUISetState(@SW_SHOW, $Form1)
[/autoit]
EndFunc ;==>_CreateGUIs -
Hier mal das Beispiel zu
[autoit]_GUICtrlListView_SetImageList
[/autoit]Spoiler anzeigen
[autoit]#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]$Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work
[/autoit] [autoit][/autoit] [autoit]_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
[/autoit] [autoit][/autoit] [autoit]
Local $hImage, $hListView
GUICreate("ListView Set Image List", 400, 300)
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
GUISetState(); Load images
[/autoit] [autoit][/autoit] [autoit]
$hImage = _GUIImageList_Create()
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
_GUICtrlListView_SetImageList($hListView, $hImage, 1); Add columns
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_AddColumn($hListView, "Column 1", 100)
_GUICtrlListView_AddColumn($hListView, "Column 2", 100)
_GUICtrlListView_AddColumn($hListView, "Column 3", 100); Add items
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_AddItem($hListView, "Item 1", 0)
_GUICtrlListView_AddItem($hListView, "Item 2", 1)
_GUICtrlListView_AddItem($hListView, "Item 3", 2); Get image list handle
[/autoit] [autoit][/autoit] [autoit]
MsgBox(4160, "Information", "Image List Handle: 0x" & Hex(_GUICtrlListView_GetImageList($hListView, 1))); Loop until user exits
[/autoit]
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main -
Große SciTE Version installieren.
http://www.autoitscript.com/cgi-bin/getfil…iTE4AutoIt3.exe -
Ich weiß ja nicht, ob das gewollt ist, aber ist dir noch nie aufgefallen, dass es Desktop heißt?
-
Spoiler anzeigen
[autoit];----------------------------------------------------------------------------------------------------------------------
[/autoit]
; Fuction _Array2DDelete(ByRef $ARRAY, $iDEL)
;
; Description Delete one row on a given index in an 1D/2D -Array
;
; Parameter $ARRAY the array, where one row will deleted
; $iDEL Row-Index to delete
;
; Return Succes -1 ByRef $ARRAY
; Failure 0 set @error = 1; given array are not array
; set @error = 2; index is out of range
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DDelete(ByRef $ARRAY, $iDEL)
If ( Not IsArray($ARRAY) ) Then
SetError(1)
Return 0
EndIf
If ( $iDEL < 0 ) Or ( $iDEL > UBound($ARRAY)-1 ) Then
SetError(2)
Return 0
EndIf
Local $i, $k, $l
Local $UBound2nd = UBound($ARRAY,2)
If @error = 2 Then
Local $arTmp[UBound($ARRAY)-1]
$k = 0
For $i = 0 To UBound($ARRAY)-1
If $i <> $iDEL Then
$arTmp[$k] = $ARRAY[$i]
$k += 1
EndIf
Next
Else
Local $arTmp[UBound($ARRAY)-1][$UBound2nd]
$k = 0
For $i = 0 To UBound($ARRAY)-1
If $i <> $iDEL Then
For $l = 0 To $UBound2nd-1
$arTmp[$k][$l] = $ARRAY[$i][$l]
Next
$k += 1
EndIf
Next
EndIf
$ARRAY = $arTmp
Return -1
EndFunc ;==>_Array2DDeleteaus der ArrayMore.au3
ArrayMore.au3 -
Und hier dann noch eine "kurze" Version vom Cäsar Chiffre.
Spoiler anzeigen
[autoit]$String = "lbootu ev ejftfo ufyu fouajggfso, eboo tdisfjcf efjof bouxpsu kfuau"
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To 26
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, $i & " Buchstaben verschoben.", _CaesarChiffre($String, $i))
NextFunc _CaesarChiffre($sString, $iStep)
[/autoit]
Local $aString = StringSplit($sString, "", 3), $sResult
For $i = 0 To UBound($aString) - 1
Local $iAsc = Asc($aString[$i]), $iLower = (($iAsc >= 97) And ($iAsc <= 122)) * 97 + (($iAsc >= 65) And ($iAsc <= 90)) * 65
If $iLower Then
If $iAsc + $iStep >= $iLower + 26 Then $iAsc -= 26
$iAsc += $iStep
EndIf
$sResult &= Chr($iAsc)
Next
Return $sResult
EndFunc ;==>_CaesarChiffre -
-
Spoiler anzeigen
[autoit]#include <GuiComboBox.au3>
[/autoit] [autoit][/autoit] [autoit]
$hGUI = GUICreate("")
$cCombo = GUICtrlCreateCombo("Test0", 20, 20, 200, 20)
$hCombo = GUICtrlGetHandle($cCombo)
GUICtrlSetData(-1, "Test1|Test2|Test3")
GUISetState()Dim $iOldSel, $aToolTip[4] = ["Test 0 ist cool!", "Test 1 ist der beste!", "Hier kommt Test 2!", "Und Test 3 ist der letzte"]
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case Else
$iNewSel = _GUICtrlComboBox_GetCurSel($hCombo)
If $iOldSel <> $iNewSel Then
$iOldSel = $iNewSel
ToolTip($aToolTip[$iNewSel])
EndIf
EndSwitch
WEnd -
Ich glaube du hast mich in der ShoutBox falsch verstanden
Ich habe nicht gesagt, dass man SetError dafür nicht benutzen kann, sondern,
dass @error ungeignet ist um zusätzliche Informationen zu einem error, oder success zu übergeben.Weil ja kein Fehler auftritt. Naja alles was ich sonst noch sagen könnte steht schon im Post über mir, also
frohes basteln