1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Icynator

Beiträge von Icynator

  • Checken wie weit eine Array geht

    • Icynator
    • 27. Juni 2009 um 13:19

    is ja geil ^^ genau das was ich gesucht hab ^^

  • Checken wie weit eine Array geht

    • Icynator
    • 27. Juni 2009 um 13:14

    Hey Leute,
    ich hab mal eine Frage, und zwar bekomm ich mit

    [autoit]

    _StringBetween

    [/autoit]

    ja immer in die einzelnen Arrayteile einen String...

    z.b

    $Array[0] = 0
    $Array[1] = 2

    nun mein Problem:

    Wie kann ich prüfen bis wohin eine Array gefüllt ist?

    Also z.b. in $Array[2] steht jetzt nixmehr....
    wenn ich die jetzt abfragen würde kommt n error....

    Bisher hab ichs so probiert:

    [autoit]

    $aArray1 = _StringBetween($source, '<tr><td class="td1">', '</td><td><a href')
    _ArrayDisplay($aArray1, 'Standardsuche')

    [/autoit][autoit][/autoit][autoit]

    $i = 0
    Do
    $i += 1
    If $aArray1[$i] = "" Then ContinueLoop
    Until $i = 100

    [/autoit]

    Funktioniert ja allerdings nicht... :(
    Wisst Ihr zufälligerweiße wie ich des machen könnte?

    mfg
    Icynator

  • Pic als Mauszeiger

    • Icynator
    • 20. April 2009 um 10:57
    Zitat von Greek

    Hey, das Link ist ja ma geil, da sind viele nützliche Sachen, aber wenn ich z.B. auf GuiHole drücke komm ich immer wieder zur Startseite, warum?

    weil das ja nich auf eigene threads verlinkt sondern auf einige beiträge

  • Pic als Mauszeiger

    • Icynator
    • 20. April 2009 um 00:49

    ne cur datei hatte ich schon ^^ nur ich wusste nich wie ich die verwende daher hab ichs in png umgewandelt ^^

    den letzten teil deines vorschlags find ich echt gut @IsleOfTechno...
    allerdings hab ich jetzt ein problem...
    und zwar reicht es schon aus wenn ich den quellcode so schreib:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

    [/autoit][autoit][/autoit][autoit]

    $GUI = GUICreate( "",288, 140, -1, -1 ,$WS_POPUP, 0)
    GUISetCursor(16,1)
    $Pic = GUICtrlCreatePic("login.bmp",0,0,288,140)

    [/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    GUIRegisterMsg($WM_SETCURSOR, 'WM_SETCURSOR')
    $Cur = DllCall("user32.dll", "int", "LoadCursorFromFile", "str","C:\Dokumente und Einstellungen\Icynator\Desktop\cursor.cur")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func WM_SETCURSOR($hWnd, $iMsg, $iWParam, $iLParam)
    If $hWnd = $GUI Then
    DllCall("user32.dll", "int", "SetCursor", "int", $Cur[0])
    Return 0
    EndIf
    EndFunc

    [/autoit]

    allerdings funzt das nur wenn ich

    [autoit]

    $Pic = GUICtrlCreatePic("login.bmp",0,0,288,140)

    [/autoit]

    auskommentiere..
    denn wenn des bild existiert (was ja die gesamte größe der gui einnimmt) wechselt der mauszeiger nicht mehr :(
    weiß jemand rat?

  • Pic als Mauszeiger

    • Icynator
    • 19. April 2009 um 21:53

    Hi leute,
    ich hab mal wieder ein problem....
    und zwar hab ich versucht ein bild als mauszeiger zu benutzen... auf dem Bild is mein wunschmauszeiger und der hintergrund transparent...
    so jetzt hab ich probiert das so zu lösen:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

    [/autoit][autoit][/autoit][autoit]

    $GUI = GUICreate( "",288, 140, -1, -1 ,$WS_POPUP, 0)
    GUISetCursor(16,1)
    GUICtrlCreatePic("login.bmp",0,0,288,140)
    _GDIPlus_StartUp()
    $hImage = _GDIPlus_ImageLoadFromFile("cursor.png")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($GUI)

    [/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    AdlibEnable("Mousecursor",5)

    [/autoit][autoit][/autoit][autoit]

    While 1
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func Mousecursor()
    $MousePos = MouseGetPos()
    $WinPos = WinGetPos($GUI)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, $MousePos[0] - $WinPos[0], $MousePos[1] - $WinPos[1])
    EndFunc

    [/autoit]

    aber jetzt würden ja die mauszeiger auf meiner gui bleiben und nichmehr weg gehn... so das ich quasi ganz viele mauszeiger hab die sich nich bewegen....

    wie könnte ich das ändern?

    mfg
    Icynator

  • GUIRegisterMsg($WM_MOUSEHOVER,"Hover") erklären?!

    • Icynator
    • 31. März 2009 um 18:44

    bin ausversehn oben auf löschen gekommen und ich kanns ja nich wieder herstellen...
    SRY

  • GUIRegisterMsg($WM_MOUSEHOVER,"Hover") erklären?!

    • Icynator
    • 30. März 2009 um 23:37

    okay hat sich erledigt ;)
    danke bugfix ^^

  • GUIRegisterMsg($WM_MOUSEHOVER,"Hover") erklären?!

    • Icynator
    • 30. März 2009 um 22:58

    sry hatte den letzten beitrag davon übersehn...
    ich habs mir jetzt mal angeschaut... aber i-wie is das zuviel neues für mich grad um den einen befehl zu verstehn...
    sry...
    könnte das bitte einer genauer erklären? vill. mit einem kleinen beispiel....
    so das z.b. wenn man über einen button fährt und dort drauf bleibt ohne zu klicken das dann n tooltip kommt...

  • GUIRegisterMsg($WM_MOUSEHOVER,"Hover") erklären?!

    • Icynator
    • 30. März 2009 um 22:36

    ich versteh nich so wirklich wie mir der link helfen sollte?!

  • GUIRegisterMsg($WM_MOUSEHOVER,"Hover") erklären?!

    • Icynator
    • 30. März 2009 um 22:05

    Hi,
    ich bins mal wieder ^^
    nach circa einer halben stunde rumprobiern/rumsuchen hab ichs immernoch nich geschafft... deswegen frag ich jetzt einfach mal wieder hier nach ^^

    und zwar kann mir bitte einer

    [autoit]

    GUIRegisterMsg($WM_MOUSEHOVER,"Hover")

    [/autoit]


    erklären?

    ich glaub zu wissen das wenn man mit der maus über einen button oder sowas drüber geht n befehel also in dem beispiel "Hover" ausgeführt wird...
    nur leider weiß ich nicht wirklich wie ich das verwenden kann....

    mein script sieht im moment so aus:

    [autoit]

    $WM_MOUSEHOVER=0x02A1

    [/autoit][autoit][/autoit][autoit]

    $GUI = GUICreate("Test", 682, 461, 222, 171)
    $Print = GUICtrlCreateButton("Drucken", 80, 4, 75, 25, 0)
    GUIRegisterMsg($WM_MOUSEHOVER, "Over")
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    Func Over()
    ToolTip("test",0,0)
    EndFunc

    [/autoit]
  • GUIGetMsg() bei GUICtrlCreateEdit

    • Icynator
    • 21. März 2009 um 20:43

    Hallo,
    ich hätte mal eine Frage und zwar hab ich nämlich vor so eine Art Texteditor zu schreiben.
    Mein Problem dabei ist das bei GUICtrlCreateEdit die Funktion:

    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Edit1
    EndSwitch
    WEnd

    [/autoit]

    nicht funktioniert....
    weiß einer wie ich das umsetzen könnte das jedes mal wenn ich einen Buchstaben bei GUICtrlCreateEdit eingebe eine bestimmte Funktion aufgerufen wird?

    mfg
    Icynator

  • Wie eine Transparente GUI erstellen?

    • Icynator
    • 23. Februar 2009 um 19:52

    oh shit ^^
    joar stimmt ^^
    anfängerfehler ;)
    danke ^^
    deine lösung is viel besser wie meine im ersten post ;)

  • Wie eine Transparente GUI erstellen?

    • Icynator
    • 23. Februar 2009 um 19:40
    Zitat von eukalyptus

    Sowas?

    Wenn du $WS_POPUP verwendest, ist nur mehr der Test da...

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $hGui = GUICreate("", 300, 100, -1, -1, -1, $WS_EX_LAYERED)
    GUISetBkColor(0xABCDEF)
    $hLabel = GUICtrlCreateLabel("Test", 5, 5, 290, 90, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetFont($hLabel, 60)
    GUICtrlSetColor($hLabel, 0x00FF00)
    GUICtrlSetBkColor($hLabel, 0xABCDEF)
    _WinAPI_SetLayeredWindowAttributes($hGui, 0xABCDEF, 255)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg() <> -3
    Sleep(5)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _WinAPI_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $dwFlages = 0x03, $isColorRef = False)
    If $dwFlages = Default Or $dwFlages = "" Or $dwFlages < 0 Then $dwFlages = 0x03
    If Not $isColorRef Then
    $i_transcolor = Hex(String($i_transcolor), 6)
    $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
    EndIf
    Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $dwFlages)
    Select
    Case @error
    Return SetError(@error, 0, 0)
    Case $Ret[0] = 0
    Return SetError(4, _WinAPI_GetLastError(), 0)
    Case Else
    Return 1
    EndSelect
    EndFunc ;==>_WinAPI_SetLayeredWindowAttributes

    [/autoit]

    lgE

    Alles anzeigen

    dein script is nich schlecht...
    aber wenn ich jetzt bei

    [autoit]

    $hGui = GUICreate("", 300, 100, -1, -1, -1, $WS_EX_LAYERED)

    [/autoit]

    des $WS_EX_LAYERED durch $WS_POPUP ersetz zeigts bei mir gar nix mehr an... also auch keine label...
    und wenn ich unten im tray des script beenden will flackern meine ganzen fenster und es dauert ewig bis der taskmgr offen is um des script zu beenden....

  • Wie eine Transparente GUI erstellen?

    • Icynator
    • 23. Februar 2009 um 18:55

    und was verstehst du davon nicht?
    ich meinte damit das es halt nicht geht das der hintergrund vom label transparent ist...

  • Wie eine Transparente GUI erstellen?

    • Icynator
    • 23. Februar 2009 um 17:30
    Zitat von Jam00

    Hä, dann fürde ich die farbe mal ändern, wenn du nicht mehr willst das dass laber tnrasparent ist!

    [autoit]

    GUICtrlCreateLabel("test",10,10,50,50)
    GUICtrlSetBkColor(-1,0xFFFFFF)

    [/autoit]

    ich will ja eben das das label transparent is...
    was aber nicht funzt...
    aber habs ja jetzt ;)

  • Wie eine Transparente GUI erstellen?

    • Icynator
    • 23. Februar 2009 um 15:24
    Zitat von Oscar

    Schau Dir mal diesen Thread an: [ gelöst ] Hab da mal eine Frage zur GUI.

    okay,ich habs mir mal angeschaut....
    allerdings hab ich jetzt ein weiteres problem...
    wenn ich jetzt ein label machen will kann ich den hintergrund davon nicht transparent machen..

    code würde bei mir so aussehen:

    [autoit]

    GUICtrlCreateLabel("test",10,10,50,50)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)

    [/autoit]
  • Wie eine Transparente GUI erstellen?

    • Icynator
    • 23. Februar 2009 um 14:44

    Hab ich ja....
    dabei bin ich hierauf gestoßen:

    [ gelöst ] On Top, durchsichtige und trotzdem durchklicken?

    aber i-wie bringt mich das nich wirklich weiter.... weil ich eine fehlermeldung nach der andern bekomm wenn ich den code von da übernehmen würde.....

    und danke ;)

  • Wie eine Transparente GUI erstellen?

    • Icynator
    • 23. Februar 2009 um 02:49

    Hallo Leute,
    ich hätte mal eine Frage, und zwar ob es eine Möglichkeit gibt eine GUI zu erstellen die komplett transparent ist? Also so das man durch sie hindurch sehen kann aber man die Labels (wenn möglich mit transparenten Hintergrund) noch sieht?

    Und wenn ja, wie geht das?
    Am besten anhand eines Beispielscriptes erklären ;)

    mfg
    Icynator


    okay hat sich erledigt...
    ich habs jetzt so gemacht:

    [autoit]

    #NoTrayIcon
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <mem.au3>

    [/autoit][autoit][/autoit][autoit]

    $PlayerBase = 0xA0465C

    [/autoit][autoit][/autoit][autoit]

    $pid = WinGetProcess("SRO_Client")
    If $pid = -1 Then
    MsgBox(16, "SRO-Information", "Silkroad is not running!")
    exit
    EndIf
    $info = _MemoryOpen($pid)

    [/autoit][autoit][/autoit][autoit]

    $PlayerBase = _MemoryRead($PlayerBase, $info)

    [/autoit][autoit][/autoit][autoit]

    ; INI-Datei definieren Priorität: Userprofile vor lokaler Datei
    If FileExists(@userprofiledir & "\Killcounter.ini") then
    $inifile = @userprofiledir & "\Killcounter.ini"
    Else
    If FileExists(@scriptdir & "\Killcounter.ini") then
    $inifile = @scriptdir & "\Killcounter.ini"
    Else
    $inifile = ""
    EndIf
    EndIf
    FileInstall("Killcounter.gif",@tempdir & "\Killcounter.gif",1)

    [/autoit][autoit][/autoit][autoit]

    ; GUI erzeugen mit Contextmenue "Beenden"
    Opt("GUIOnEventMode", 1)
    $gui = GUICreate("Killcounter",200,200, 318, 213,$WS_POPUP,BitOr($WS_EX_LAYERED,$WS_EX_TOOLWINDOW))
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_PrimeDown")
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Ende")
    $bild_id = GUICtrlCreatePic(@tempdir & "\Killcounter.gif", 0, 0, 200,200)
    $suchtext_id = GUICtrlCreateLabel("Test",50,50,50,50)
    GUICtrlSetColor(-1,0xFFFFFF)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    $label = GUICtrlCreateLabel("KA",100,100,50,50)
    GUICtrlSetColor(-1,0xFFFFFF)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    $CMenue = GUICtrlCreateContextMenu ($bild_id)
    $CMenueEnde = GUICtrlCreateMenuitem ("Beenden",$CMenue,0)
    GUICtrlSetOnEvent ($CMenueEnde, "_Ende")
    GUISetState(@SW_SHOW)
    WinSetOnTop("Killcounter", "", 1)

    [/autoit][autoit][/autoit][autoit]

    ; alte Fensterposition laden und GUI verschieben
    if $inifile <> "" then
    $WinXPos = IniRead($inifile,"Startwerte","WinXPos","")
    $WinYPos = IniRead($inifile,"Startwerte","WinYPos","")
    If $WinXPos <> "" And $WinYPos <> "" then WinMove("Killcounter","",$WinXPos,$WinYPos)
    endif

    [/autoit][autoit][/autoit][autoit]

    ; warten....
    While 1
    $PlayerCurHP = 0x350
    $SpielerHP = _MemoryRead($PlayerBase + $PlayerCurHP, $info)
    GUICtrlSetData($label, $SpielerHP,"")
    Sleep(500)
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Danke für diese Funktion um das rahmenlose Fenster zu verschieben
    Func _PrimeDown()
    Local $DifX, $DifY, $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
    Local $WinPos = WinGetPos(@GUI_WinHandle)
    Local $MPos = MouseGetPos()
    $DifX = $MPos[0] - $WinPos[0]
    $DifY = $MPos[1] - $WinPos[1]
    Do
    Sleep(15)
    $MPos = MouseGetPos()
    $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
    Until ($WinPos[0] <> ($MPos[0] - $DifX)) Or ($WinPos[1] <> ($MPos[1] - $DifY)) Or (Not $MouseData[2])
    GUICtrlSetCursor($bild_id,9)
    While $MouseData[2]
    $MPos = MouseGetPos()
    $WinPos = WinGetPos(@GUI_WinHandle)
    If ($WinPos[0] <> ($MPos[0] - $DifX)) Or ($WinPos[1] <> ($MPos[1] - $DifY)) Then
    WinMove(@GUI_WinHandle, '', $MPos[0] - $DifX, $MPos[1] - $DifY)
    EndIf
    Sleep(15)
    $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
    WEnd
    GUICtrlSetCursor($bild_id,2)
    GUICtrlSetState($suchtext_id,$GUI_FOCUS)
    GUICtrlSetState($label,$GUI_FOCUS)
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    ; Fensterposition merken und Programm beenden
    Func _Ende()
    $iniid=fileopen($inifile,1)
    if $iniid = -1 then $inifile = @userprofiledir & "\Killcounter.ini"
    fileclose($iniid)
    IniDelete($inifile,"Startwerte")
    $WinPos = WinGetPos("Killcounter")
    IniWrite($inifile,"Startwerte","WinXPos",$WinPos[0])
    IniWrite($inifile,"Startwerte","WinYPos",$WinPos[1])
    if FileExists(@Tempdir & "\Killcounter.gif") then FileDelete(@Tempdir & "\Killcounter.gif")
    Exit
    EndFunc

    [/autoit]


    ich hoffe mal Micha_he is mir nich böse das ich einiges von seinem script geklaut hab... wenn doch sag bitte bescheid dann such ich ne andere möglichkeit....

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™