Ich mach mit! Sehr interessantes Thema!
Beiträge von SEuBo
-
-
Hallo ineluki,
Praktische Funktion!
So dürfte sie auch noch wesentlich schneller laufen:Spoiler anzeigen
[autoit]Func StringGetPos($filename, $string)
[/autoit]
If Not FileExists($filename) Then Return SetError(2)
Local $sRead = FileRead($filename), $sRead = StringReplace(StringStripCR(StringLeft($sRead, StringInStr($sRead, $string, 1))), @LF, @LF)
If Not @error Then Return @extended + 1
Return SetError(1)
EndFunc ;==>StringGetPos -
Sprenger120: Des sieht bei mir graphisch sehr verbuggt aus.
Änder mal das "Static1" zu "Static2" -
Du erstellst dein IE Objekt einfach auf einem weiteren GUI. Das IE Objekt muss dabei 18 pixel höher und 18 pixel breiter sein als das GUI. Dieser Bereich liegt dann außerhalb des GUI's, und ist somit nicht mehr sichtbar.
Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
$hGUI = GUICreate("",700,500)
GUISetState()$hIE = GUICreate("",400,300,150,100,$WS_CHILD,Default,$hGUI)
[/autoit] [autoit][/autoit] [autoit]
$oIE = _IECreateEmbedded()
GUICtrlCreateObj($oIE,0,0,418,318)
_IENavigate($oIE,"about:blank")GUISetState()
[/autoit]
_IENavigate($oIE,"www.google.de")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEndViel Spaß!
-
du weißt doch was eine datenbank ist.
Aber du anscheinend nicht?Ohne großes drumherum reden: Nein!
-
ty genau das hatte ich gebraucht jetzt muss ich mir jedes teil nochmal extra angucken damit ichs versteh lol
Ich fasse das einfach mal als indirekte Aufforderung zur Erklärung auf.Erklärung
Code(?>Start Texture\d+\s+")([^"]+)"\s+(\d+) (?> ... ) -> Ist eine sog. Atomic Group. Kleine Angewohnheit von mir, und in vielen Situationen steigert sie die Geschwindigkeit. Start Texture -> Sucht nach genau diesem Text \d+ -> sucht mindestens eine bis unendlich viele Zahlen. \s+ -> sucht mindestens eins bis unendlich viele Whitespaces (Tabs, leerzeichen, zeilenumbrüche) " -> sucht nach genau diesem Text ([^"]+) -> sucht nach mindestens einem bis unendlich vielen Zeichen, die kein Gänsefüßchen sind, und speichert es in einem Subpattern - Es wird also dieser Teil zur Array-Ausgabe hinzugefügt. " -> sucht noch ein Gänsefüßchen \s+ -> sucht mindestens eins bis unendlich viele Whitespaces (Tabs, leerzeichen, zeilenumbrüche) \d+ -> sucht mindestens eine bis unendlich viele Zahlen, und speichert die in einem Subpattern - Es wird also dieser Teil zur Array-Ausgabe hinzugefügt.
[Blockierte Grafik: http://i45.tinypic.com/2mexyzr.png]
[Blockierte Grafik: http://i46.tinypic.com/20f6sl1.png]
[Blockierte Grafik: http://i49.tinypic.com/2ns9t8i.png]
[Blockierte Grafik: http://i49.tinypic.com/2iw3813.png]
[Blockierte Grafik: http://i50.tinypic.com/107q80x.png]
[Blockierte Grafik: http://i46.tinypic.com/2wnoeid.png]
[Blockierte Grafik: http://i48.tinypic.com/nvb09j.png]
[Blockierte Grafik: http://i46.tinypic.com/fbgdwi.png] -
Hab daraus mal ne UDF gemacht.
Das Grundgerüst stammt von MrCreatoR
http://www.autoitscript.com/forum/index.php?showtopic=56930Example Script
[autoit]#include <_GUICtrlEdit_SetLineLimit.au3>
[/autoit] [autoit][/autoit] [autoit]
$hGUI = GUICreate("")
$cEdit = GUICtrlCreateEdit("",20,20,200,200)
_GUICtrlEdit_SetLineLimit($cEdit,20)
GUISetState()While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEndUDF
[autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstants.au3>If Not IsDeclared("WM_COMMAND") Then Global Const $WM_COMMAND = 0x0111
[/autoit] [autoit][/autoit] [autoit]
If Not IsDeclared("WM_MOVE") Then Global Const $WM_MOVE = 0x0003
If Not IsDeclared("WM_LBUTTONDOWN") Then Global Const $WM_LBUTTONDOWN = 0x0201
If Not IsDeclared("WM_RBUTTONDOWN") Then Global Const $WM_RBUTTONDOWN = 0x0204Global $sToolTip_Text[2] = ["You can only type a certain number of chars per line.", "Unacceptable Char-count:"]
[/autoit] [autoit][/autoit] [autoit]
Global $sInputs_Array[1][2]GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_MOVE, "WM_CLEAR_TOOLTIP")
GUIRegisterMsg($WM_LBUTTONDOWN, "WM_CLEAR_TOOLTIP")
GUIRegisterMsg($WM_RBUTTONDOWN, "WM_CLEAR_TOOLTIP"); $CtrlId must be an ID value, -1 can not be used!
[/autoit] [autoit][/autoit] [autoit]
Func _GUICtrlEdit_SetLineLimit($CtrlId, $iLimit)
Local $iUbound = UBound($sInputs_Array)
ReDim $sInputs_Array[$iUbound+1][2]
$sInputs_Array[$iUbound][0] = $CtrlId
$sInputs_Array[$iUbound][1] = $iLimit
EndFuncFunc _Input_Changed($hWnd, $CtrlId, $iLimit)
[/autoit] [autoit][/autoit] [autoit]
ToolTip("")
Local $Read_Input = GUICtrlRead($CtrlId)
If StringRegExp($Read_Input, '(?m)^[^\v]{'&$iLimit&',}$') Then
GUICtrlSetData($CtrlId, StringRegExpReplace($Read_Input, '(?m)^([^\v]{'&$iLimit&'})[^\v]+$', '\1'))Local $Gui_Get_Pos = WinGetPos($hWnd)
[/autoit] [autoit][/autoit] [autoit]
Local $Ctrl_Get_Pos = ControlGetPos($hWnd, "", $CtrlId)Local Const $SM_CYCAPTION = 4 ;Titelbar heigth
[/autoit] [autoit][/autoit] [autoit]
Local Const $SM_CXFIXEDFRAME = 7 ;Window border sizeLocal $X_Pos = $Gui_Get_Pos[0] + $Ctrl_Get_Pos[0] + $Ctrl_Get_Pos[2] + GetSystemMetrics($SM_CXFIXEDFRAME)
[/autoit] [autoit][/autoit] [autoit]
Local $Y_Pos = $Gui_Get_Pos[1] + $Ctrl_Get_Pos[1] + $Ctrl_Get_Pos[3] + GetSystemMetrics($SM_CYCAPTION)ToolTip($sToolTip_Text[0], $X_Pos, $Y_Pos, $sToolTip_Text[1], 3, 1+4)
[/autoit] [autoit][/autoit] [autoit]
DllCall("user32.dll", "int", "MessageBeep", "int", 0x0)
EndIf
EndFuncFunc WM_CLEAR_TOOLTIP($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
ToolTip("")
Return $GUI_RUNDEFMSG
EndFuncFunc MY_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If $hWnd = 0 Or Not WinExists($hWnd) Then Return $GUI_RUNDEFMSGLocal $nNotifyCode = BitShift($wParam, 16)
[/autoit] [autoit][/autoit] [autoit]
Local $nID = BitAND($wParam, 0xFFFF)
Local Const $EN_CHANGE = 0x300
Local Const $EN_UPDATE = 0x400
Local Const $EN_SETFOCUS = 0x100
Local Const $EN_KILLFOCUS = 0x200For $i = 1 To UBound($sInputs_Array)-1
[/autoit] [autoit][/autoit] [autoit]
If $nID = $sInputs_Array[$i][0] Then
Switch $nNotifyCode
Case $EN_UPDATE ;$EN_CHANGE
_Input_Changed($hWnd, $sInputs_Array[$i][0], $sInputs_Array[$i][1])
Case $EN_SETFOCUS, $EN_KILLFOCUS
ToolTip("")
EndSwitch
ExitLoop
EndIf
NextReturn $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]
EndFuncFunc GetSystemMetrics($Flag)
[/autoit]
Local $iRet = DllCall('user32.dll', 'int', 'GetSystemMetrics', 'int', $Flag)
Return $iRet[0]
EndFunc//EDIT:
Natürlich kann man das auch in das Beispiel von Marthog einbauen, falls du nicht die komplette UDF einbinden willstSpoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
GUICreate("")
$edit = GUICtrlCreateEdit("", 0, 0, 400, 400)
AdllbRegister("CheckLimit", 250)
GUISetState()Do
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = -3Func CheckLimit()
[/autoit] [autoit][/autoit] [autoit]
Local $iLimit = 20 ; <- anpassen
Local $cInput = $edit ; <- anpassenLocal $sInp = GUICtrlRead($cInput)
[/autoit]
If StringRegExp($sInp , '(?m)^[^\v]{' & $iLimit & ',}$') Then
GUICtrlSetData($cInput , StringRegExpReplace($sInp , '(?m)^([^\v]{' & $iLimit & '})[^\v]+$', '\1'))
EndIf
EndFunc ;==>CheckLimitLG
-
Herzlich Willkommen wünsch ich!
-
[autoit]
#include <Array.au3>
[/autoit][autoit][/autoit][autoit]
$sFoD = FileOpenDialog("Lade Texturset", @ScriptDir, "(*.txt)", 3)
If @error Then Exit$aRet = StringRegExp(FileRead($sFoD), '(?>Start Texture\d+\s+")([^"]+)"\s+(\d+)', 3)
[/autoit][autoit][/autoit][autoit]
For $i = 0 To UBound($aRet) - 1 Step 2
MsgBox(0, "", _
$aRet[$i] & @CRLF & @CRLF & _
$aRet[$i + 1] _
)
Next_Arraydisplay($aRet)
[/autoit] -
sieht ästhetischer aus
Sorry, ich bin definitiv kein Freund von Spam und nicht-Themenbezogenen Posts, aber ich kann einfach nicht anders. Vorweg: das soll auch nicht beleidigend sein - ich kenne dich ja als Person nicht. Aber Leetspeak ist mE nach defintiv weder ästhetisch noch hübsch oder sonstwas . Für mich sieht das eher nach 5.-Klässler aus, der das letzte Woche im Internet gefunden hat, und das jetzt für cool hält (wie gesagt, ich kann nur meine Wahrnehmung wiedergeben - das ist keine Beleidigung an dich als Person). Ich denke, dass es da anderen Membern aus dem Forum ähnlich geht, und Sie das eher als Verstümmelung deutscher Rechtschreibung, als einen coolen Schreibstil, sehen.LG
-
Zitat
Möchte, dass das Skript funkt. wenn man einen Router hat & wenn man keinen hat.
Und deswegen sendet man per TCP, wenn man von Client zu Client senden will, über einen Server, bei dem diese Ports schon freigegeben sind.
-
Komisch, denn sogar sowas funktioniert
[autoit]HttpSetUserAgent("Ich bin ein Agent!")
[/autoit]
$sRet = BinaryToString(InetRead("http://yat.bplaced.net/ip.php",1),4)
MsgBox(0,"",$sRet) -
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
Opt("TrayMenuMode", 3)
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Passwort-Dialog", 260, 158, 844, 268, BitOR($WS_MINIMIZEBOX, $WS_SYSMENU, $WS_CAPTION, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
$Label1 = GUICtrlCreateLabel("Geben sie das Passwort ein:", 8, 8, 171, 20)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
$Button1 = GUICtrlCreateButton("OK", 32, 128, 89, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Cancel", 144, 128, 89, 25, $WS_GROUP)
$Input1 = GUICtrlCreateInput("", 8, 96, 241, 21)
$Menu = GUICtrlCreateContextMenu()
$mExit = GUICtrlCreateMenuItem("Beenden...", $Menu)
GUICtrlCreateMenuItem("", $Menu)
$About = GUICtrlCreateMenuItem("Über das Script...", $Menu)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$hAbout = GUICreate("", 255, 100)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$cLabel = GUICtrlCreateLabel("Dies ist eine About Box!", 0, 0, 255, 100, BitOR(0x200, 0x01))#endregion ### END Koda GUI section ###
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg(1)
;~ If ProcessExists( "explorer.exe") Then ;Überprüfen ob der Process "explorer.exe" exsistiert
;~ ProcessClose( "explorer.exe");Wenn er exsistiert wird er geschlossen!
;~ EndIf
Switch $nMsg[0]
Case $Button1,$Button2, $GUI_EVENT_CLOSE, $mExit
If $nMsg[1] = $Form1 Then
$pWort = GUICtrlRead($Input1); $Input1 aulesen und in $pWort speichern!
If $pWort = 'passwort' Then ;Passwort angeben
MsgBox(0, "Passwort-Dialog", "Passwort richtig");Wenn dann passwort richtig ist
;~ Run( "explorer.exe")
Exit
Else
MsgBox(0, "Passwort-Dialog", "Passwort falsch");Wenn dann passwort falsch ist
EndIf
Else
GUISetState(@SW_HIDE,$nMsg[1])
EndIf
Case $About
_About()
EndSwitchWEnd
[/autoit] [autoit][/autoit] [autoit]Func _About()
[/autoit]
GUISetState(@SW_SHOW, $hAbout)
EndFunc ;==>_About -
Einfaches Beispiel:
Spoiler anzeigen
[autoit]$hGUI = GUICreate("", 100, 400, 100, 200)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel(@LF & " Schließ mich" & @LF & " danach!", 0, 0, 100, 50)
$cButton = GUICtrlCreateButton("Nur ein Knopf",0,100,100,50)
GUISetState()$hGUI2 = GUICreate("2tes GUI", 100, 50, 200, 200)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel(@LF & " Schließ mich zuerst", 0, 0, 100, 50)
GUISetState()While 1
[/autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case -3
If $nMsg[1] = $hGUI Then Exit
GUISetState(@SW_HIDE, $nMsg[1])
Case $cButton
MsgBox(0,"","Du hast den Knopf gedrückt. Warum machst du sowas?!")
EndSwitch
WEndGroß ist du umstellung also nicht.
Aus "GUIGetMsg()" wird "GUIGetMsg(1)" und aus "Switch $nMsg" wird "Switch $nMsg[0]"
Dann musst du nur noch den Teil beim Case $GUI_EVENT_CLOSE bzw. -3 anpassen, sodass du die Fenster entsprechend unterscheidest. -
Statt
[autoit]GUISetStyle
[/autoit]vllt mal
[autoit]GUISetState(@SW_HIDE)
[/autoit]
probieren -
SEuBo, heisst es nicht FALEN statt FAHLEN ?
Entschuldigt, eure Rechtschreibhoheit.... -
aber ich will wenn ich nochmal drauf klick dann es nen anderen text da steht!!
Das einfachste Beispiel wäre das hier:Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
Global $iButtonClicks$hWnd = GUICreate("Input", 200, 80)
[/autoit] [autoit][/autoit] [autoit]
$cInput = GUICtrlCreateInput("", 5, 5, 190, 20)
$cButton = GUICtrlCreateButton("Button", 5, 40, 50, 20)
GUISetState()While 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $cButton
$iButtonClicks += 1
Switch $iButtonClicks
Case 1
GUICtrlSetData($cInput, "Hallo")
Case 2
GUICtrlSetData($cInput, "Wie")
Case 3
GUICtrlSetData($cInput, "Gehts")
Case 4
GUICtrlSetData($cInput, "Dir?")
Case Else
GUICtrlSetData($cInput, "")
EndSwitch
EndSwitch
WEndSo würde dann eine etwas fortgeschrittene Version mit Arrays aussehen:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
Global $iButtonClicks, $aTexte[5] = ["Hier kommen Texte rein", "Hallo", "Wie", "Gehts", "Dir?"]$hWnd = GUICreate("Input", 200, 80)
[/autoit] [autoit][/autoit] [autoit]
$cInput = GUICtrlCreateInput("", 5, 5, 190, 20)
$cButton = GUICtrlCreateButton("Button", 5, 40, 50, 20)
GUISetState()While 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $cButton
$iButtonClicks += 1
If $iButtonClicks < UBound($aTexte) Then GUICtrlSetData($cInput,$aTexte[$iButtonClicks])
EndSwitch
WEnd -
So kannst du die Farben einer CheckBox ändern:
Spoiler anzeigen
[autoit]Func GUICheckBoxSetColor(ByRef $CtrlID,$iColor,$iBkColor="0xF1EDED")
[/autoit]
; SEuBo
$CtrlHWnd = $CtrlID
If Not IsHWnd($CtrlHWnd) Then $CtrlHWnd = GUICtrlGetHandle($CtrlID)
$aParent = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", $CtrlHWnd)
$hOldG = GUISwitch($aParent[0])
$aCPos = ControlGetPos($aParent[0],"",$CtrlID)
$sOldT = GUICtrlRead($CtrlID,1)
GUICtrlDelete($CtrlID)
DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 0)
$CtrlID = GUICtrlCreateCheckbox($sOldT,$aCPos[0],$aCPos[1],$aCPos[2],$aCPos[3])
GUICtrlSetColor(-1,$iColor)
GUICtrlSetBkColor(-1,$iBkColor)
DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 7)
GUISwitch($hOldG)
EndFunc -
[autoit]
$sPfad = FileOpenDialog("", "", "All (*.*)")
[/autoit]
MsgBox(0, "", "Der Pfad ist """ & $sPfad & """, und das ist halt so!")
MsgBox(0, "", 'Der Pfad ist "' & $sPfad & '", und das ist halt so!')Also entweder mit einem Gänsefüßchen " eingeschlossen in Hochkommas ' (MsgBox 2)
Oder Doppelte Gänsefüßchen "", eingeschlossen in Gänsefüßchen (MsgBox 1) -
Nordrhein Westfahlen!
Ursprünglich aus dem wunderschönen Köln, aber momentan wohn ich in Oberhausen (nähe Düsseldorf)