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. name22

Beiträge von name22

  • (Gute Frage) (Mouse get TEXT)

    • name22
    • 21. März 2010 um 21:46
    Zitat

    für ein spiel was den sonst


    Falls das ein Bot werden sollte, bitte >hier< klicken. :thumbup:

  • Überwachungstool

    • name22
    • 21. März 2010 um 21:33

    Ich würde das eher so machen:

    [autoit]

    $Pos = MouseGetPos()
    While $Pos[0] = MouseGetPos(0) And $Pos[1] = MouseGetPos(1)
    Sleep(100)
    WEnd
    MsgBox(64, "Info", "Die Maus wurde bewegt")

    [/autoit]
  • (Gute Frage) (Mouse get TEXT)

    • name22
    • 21. März 2010 um 21:28

    SuFu hilft weiter :) : Link

  • GDI+ Sound Maker

    • name22
    • 21. März 2010 um 18:02

    Dieses Script ähnelt ein wenig einem Music Maker, ist aber längst nicht so professionell. Es sieht ganz nett aus und ein paar Sounds habe ich mit dazugepackt :) (siehe Anhang)
    Das Script lädt mit BugFix's Rekursiver Dateiauflistung alle wav Dateien aus einem Ordner 'Sounds' im Script Verzeichnis, und stellt sie grafisch dar (weiße Blöcke, die sich innerhalb des Fensters verschieben lassen). Ich hoffe auf Kritik, Anregungen und Lob :D
    (Es ist noch nicht ganz ausgereift, aber ich werde es im Laufe der Zeit noch verbessern). Bei sehr vielen Dateien fängt das Programm leider an zu laggen, was sich wohl kaum vermeiden lässt.

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>
    #include <Sound.au3>

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

    Opt("MouseCoordMode", 2)

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

    $GUIWidth = 800
    $GUIHeight = 400
    $iX_Line = 0
    $iY_Line = 0
    $sPath = @ScriptDir & "\Sounds"

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

    If DirGetSize($sPath) = -1 Then
    MsgBox(16, "Fehler", "Das Verzeichnis '" & $sPath & "' existiert nicht")
    Exit
    EndIf
    $aFiles = _GetFilesFolder_Rekursiv($sPath, "wav", 0)
    If $aFiles[0] = 0 Then
    MsgBox(16, "Fehler", "Keine .wav Dateien im 'Sounds' Verzeichnis gefunden")
    Exit
    EndIf

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

    _GDIPlus_Startup()

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

    $hPen = _GDIPlus_PenCreate("0x" & Hex(20, 2) & "FFFFFF", 4)
    $Brush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
    $hPenTrans = _GDIPlus_PenCreate(0x00FFFFFF, 4)

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

    Global $aBlock[$aFiles[0]][6]
    $X = 20
    $Y = 20

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

    For $i = 0 To $aFiles[0] - 1
    $aBlock[$i][0] = $X
    $aBlock[$i][1] = $Y
    $aBlock[$i][2] = _SoundOpen($aFiles[$i + 1])
    $aBlock[$i][3] = False
    $aBlock[$i][4] = 0
    $aBlock[$i][5] = $hPen
    $X += 40
    If $X >= $GUIWidth - 40 Then
    $Y += 40
    $X = 20
    EndIf
    Next

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

    $hWnd = GUICreate("Test", $GUIWidth, $GUIHeight)
    GUISetState()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    _GDIPlus_GraphicsClear($hGraphic)

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

    AdlibRegister("_DrawBlocks", 20)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_PenDispose($hPenTrans)
    _GDIPlus_BrushDispose($Brush)
    _GDIPlus_Shutdown()
    For $i = 0 To UBound($aBlock) - 1
    _SoundClose($aBlock[$i][2])
    Next
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    For $i = 0 To UBound($aBlock) - 1
    If $nMsg[3] >= $aBlock[$i][0] And $nMsg[3] <= $aBlock[$i][0] + 20 And $nMsg[4] >= $aBlock[$i][1] And $nMsg[4] <= $aBlock[$i][1] + 20 Then
    $DistanceX = $nMsg[3] - $aBlock[$i][0]
    $DistanceY = $nMsg[4] - $aBlock[$i][1]
    While _IsPressed("01")
    $aBlock[$i][0] = MouseGetPos(0) - $DistanceX
    $aBlock[$i][1] = MouseGetPos(1) - $DistanceY
    WEnd
    EndIf
    Next
    EndSwitch
    WEnd

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

    Func _DrawBlocks()
    _GDIPlus_GraphicsClear($hBuffer)
    _GDIPlus_GraphicsDrawLine($hBuffer, $iX_Line, $iY_Line, $iX_Line, $iY_Line + $GUIHeight, $hPen)
    For $i = 0 To UBound($aBlock) - 1
    _GDIPlus_GraphicsFillRect($hBuffer, $aBlock[$i][0], $aBlock[$i][1], 20, 20, $Brush)
    _GDIPlus_GraphicsDrawEllipse($hBuffer, $aBlock[$i][0] - $aBlock[$i][4] / 2 + 10, $aBlock[$i][1] - $aBlock[$i][4] / 2 + 10, $aBlock[$i][4], $aBlock[$i][4], $aBlock[$i][5])
    Next
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
    $iX_Line += 1
    If $iX_Line >= $GUIWidth Then
    $iX_Line = 0
    For $i = 0 To UBound($aBlock) - 1
    $aBlock[$i][3] = False
    $aBlock[$i][4] = 0
    $aBlock[$i][5] = $hPen
    Next
    EndIf
    For $i = 0 To UBound($aBlock) - 1
    If $iX_Line >= $aBlock[$i][0] And $aBlock[$i][3] = False Then
    $aBlock[$i][3] = True
    _SoundPlay($aBlock[$i][2])
    EndIf
    Next
    For $i = 0 To UBound($aBlock) - 1
    If $aBlock[$i][3] = True And $aBlock[$i][4] < 50 Then
    $aBlock[$i][4] += 2
    ElseIf $aBlock[$i][4] >= 50 Then
    $aBlock[$i][5] = $hPenTrans
    EndIf
    Next
    EndFunc ;==>_DrawBlocks

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]

    Neue Version:
    -ToolTips mit Infos über den Dateinamen
    -Numpad +/- verändern die Geschwindigkeit des Balkens
    -Pausieren Funktion (Ende)

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>
    #include <Sound.au3>

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

    Opt("MouseCoordMode", 2)

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

    $GUIWidth = 800
    $GUIHeight = 400
    $iX_Line = 0
    $iY_Line = 0
    $iSpeed = 1
    $iSpeedOld = $iSpeed
    $Pause = False
    $sPath = @ScriptDir & "\Sounds"

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

    If DirGetSize($sPath) = -1 Then
    MsgBox(16, "Fehler", "Das Verzeichnis '" & $sPath & "' existiert nicht")
    Exit
    EndIf
    $aFiles = _GetFilesFolder_Rekursiv($sPath, "wav", 0)
    If $aFiles[0] = 0 Then
    MsgBox(16, "Fehler", "Keine .wav Dateien im 'Sounds' Verzeichnis gefunden")
    Exit
    EndIf

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

    Global $aNames[$aFiles[0]]
    Global $szDrive, $szDir, $szFName, $szExt

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

    For $i = 0 To UBound($aFiles) - 2
    $aSplit = _PathSplit($aFiles[$i + 1], $szDrive, $szDir, $szFName, $szExt)
    $aNames[$i] = $aSplit[3]
    Next

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

    _GDIPlus_Startup()

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

    $hPen = _GDIPlus_PenCreate("0x" & Hex(20, 2) & "FFFFFF", 4)
    $Brush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
    $hPenTrans = _GDIPlus_PenCreate(0x00FFFFFF, 4)

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

    Global $aBlock[$aFiles[0]][6]
    $X = 20
    $Y = 20

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

    For $i = 0 To $aFiles[0] - 1
    $aBlock[$i][0] = $X
    $aBlock[$i][1] = $Y
    $aBlock[$i][2] = _SoundOpen($aFiles[$i + 1])
    $aBlock[$i][3] = False
    $aBlock[$i][4] = 0
    $aBlock[$i][5] = $hPen
    $X += 40
    If $X >= $GUIWidth - 40 Then
    $Y += 40
    $X = 20
    EndIf
    Next

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

    $hWnd = GUICreate("Test", $GUIWidth, $GUIHeight)
    GUISetState()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    _GDIPlus_GraphicsClear($hGraphic)

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

    AdlibRegister("_DrawBlocks", 20)
    HotKeySet("{NUMPADADD}", "_SpeedUp")
    HotKeySet("{NUMPADSUB}", "_SlowDown")
    HotKeySet("{END}", "_Pause")
    ;HotKeySet("{ESC}", "_Capture")

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_PenDispose($hPenTrans)
    _GDIPlus_BrushDispose($Brush)
    _GDIPlus_Shutdown()
    For $i = 0 To UBound($aBlock) - 1
    _SoundClose($aBlock[$i][2])
    Next
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    For $i = 0 To UBound($aBlock) - 1
    If $nMsg[3] >= $aBlock[$i][0] And $nMsg[3] <= $aBlock[$i][0] + 20 And $nMsg[4] >= $aBlock[$i][1] And $nMsg[4] <= $aBlock[$i][1] + 20 Then
    $DistanceX = $nMsg[3] - $aBlock[$i][0]
    $DistanceY = $nMsg[4] - $aBlock[$i][1]
    While _IsPressed("01")
    $aBlock[$i][0] = MouseGetPos(0) - $DistanceX
    $aBlock[$i][1] = MouseGetPos(1) - $DistanceY
    $Off = WinGetPos($hWnd)
    ToolTip($aNames[$i], $aBlock[$i][0] + $Off[0], $aBlock[$i][1] + $Off[1])
    WEnd
    EndIf
    Next
    EndSwitch
    WEnd

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

    Func _DrawBlocks()
    _GDIPlus_GraphicsClear($hBuffer)
    _GDIPlus_GraphicsDrawLine($hBuffer, Round($iX_Line), $iY_Line, Round($iX_Line), $iY_Line + $GUIHeight, $hPen)
    For $i = 0 To UBound($aBlock) - 1
    _GDIPlus_GraphicsFillRect($hBuffer, $aBlock[$i][0], $aBlock[$i][1], 20, 20, $Brush)
    _GDIPlus_GraphicsDrawEllipse($hBuffer, $aBlock[$i][0] - $aBlock[$i][4] / 2 + 10, $aBlock[$i][1] - $aBlock[$i][4] / 2 + 10, $aBlock[$i][4], $aBlock[$i][4], $aBlock[$i][5])
    Next
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
    $iX_Line += $iSpeed
    If $iX_Line >= $GUIWidth Then
    $iX_Line = 0
    For $i = 0 To UBound($aBlock) - 1
    $aBlock[$i][3] = False
    $aBlock[$i][4] = 0
    $aBlock[$i][5] = $hPen
    Next
    EndIf
    For $i = 0 To UBound($aBlock) - 1
    If $iX_Line >= $aBlock[$i][0] And $aBlock[$i][3] = False Then
    $aBlock[$i][3] = True
    _SoundPlay($aBlock[$i][2])
    EndIf
    Next
    For $i = 0 To UBound($aBlock) - 1
    If $aBlock[$i][3] = True And $aBlock[$i][4] < 50 Then
    $aBlock[$i][4] += 2
    ElseIf $aBlock[$i][4] >= 50 Then
    $aBlock[$i][5] = $hPenTrans
    EndIf
    Next
    EndFunc ;==>_DrawBlocks

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

    Func _SpeedUp()
    $iSpeed += 0.1
    EndFunc

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

    Func _SlowDown()
    $iSpeed -= 0.1
    EndFunc

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

    Func _Pause()
    If $Pause = False Then
    $iSpeedOld = $iSpeed
    $iSpeed = 0
    $Pause = True
    Else
    $iSpeed = $iSpeedOld
    $Pause = False
    EndIf
    Sleep(100)
    EndFunc

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

    ;Func _Capture()
    ; _GDIPlus_ImageSaveToFile($hBitmap, @ScriptDir & "\Test.jpg")
    ;EndFunc

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]


    Screenshots:
    [Blockierte Grafik: http://img707.imageshack.us/img707/2378/example2f.th.jpg]

    [Blockierte Grafik: http://img411.imageshack.us/img411/5594/example1v.th.jpg]

    Dateien

    Sound.zip 906,74 kB – 317 Downloads Sound v1.02.au3 7,07 kB – 291 Downloads
  • GDI+ PIN Pad

    • name22
    • 21. März 2010 um 14:46

    Ups :whistling:

  • "Master" und "Slave"-Fenster EDIT: und FensterRahmen entfernen...

    • name22
    • 21. März 2010 um 14:22
    Zitat

    $Ws_Ex_Topmost -) zuständig für Die Button Schließen, Groß und Kleinmachen


    Eigentlich ist der Stil dafür zuständig das Fenster immer "Topmost" (zuoberst) zu halten

  • GDI+ PIN Pad

    • name22
    • 21. März 2010 um 03:41

    Schon geschehen siehe Post #1

  • Linksclick abfragen

    • name22
    • 20. März 2010 um 21:34

    Hmmm Zeichenprogramm... So was?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    Opt ("MouseCoordMode", 2)

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

    $LineCount = 0
    $dll = DllOpen("user32.dll")
    Dim $aLines[99999][4]
    For $i = 0 To UBound($aLines, 1) - 1
    $aLines[$i][0] = ""
    $aLines[$i][1] = ""
    $aLines[$i][2] = ""
    $aLines[$i][3] = ""
    Next

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

    $hWnd = GUICreate("Test", 400, 400)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(400, 400, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    _GDIPlus_GraphicsClear($hGraphic, 0xFFFFFFFF)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    DllClose($dll)
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    While _IsPressed("01", $dll)
    _GDIPlus_GraphicsClear($hBuffer, 0xFFFFFFFF)
    For $i = 0 To $LineCount
    _GDIPlus_GraphicsDrawLine($hBuffer, $aLines[$i][0], $aLines[$i][1], $aLines[$i][2], $aLines[$i][3])
    Next
    $Pos = MouseGetPos()
    _GDIPlus_GraphicsDrawLine($hBuffer, $nMsg[3], $nMsg[4], $Pos[0], $Pos[1])
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 400, 400)
    WEnd
    $aLines[$LineCount][0] = $nMsg[3]
    $aLines[$LineCount][1] = $nMsg[4]
    $aLines[$LineCount][2] = $Pos[0]
    $aLines[$LineCount][3] = $Pos[1]
    $LineCount += 1
    EndSwitch
    WEnd

    [/autoit]
  • GDI+ PIN Pad

    • name22
    • 20. März 2010 um 16:58

    Zum Beispiel? Natürlich kann man daraus mehr machen, aber mir fällt nichts sinnvolles ein :D

  • GDI+ PIN Pad

    • name22
    • 20. März 2010 um 15:56

    Ich weiß, dass das nichts besonderes ist aber vielleicht kann ja irgendjemand etwas daraus verwenden. :)
    Ein PIN Pad mit Zeitlimit und einer Wartezeit für die Eingabe. Komplett in GDI+ gezeichnet ohne externe Grafiken.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    $GUIColorBG = 0xFFFFFFFF ;Hintergrundfarbe der GUI
    $PadColor = 0xFF000000 ;Farbe der Pads
    $PadTextColor = 0xFFFFFFFF ;Farbe des Textes auf den Pads
    $ColorActive = 0xFF00FF00 ;Farbe der Pads, wenn aktiviert
    $PadSize = 35 ;Größe der Pads
    $Space = 5 ;Distanz zwischen den Pads
    $GUIWidth = ($Space + $PadSize) * 3 + $Space ;GUI Breite (wird aus Padgröße berechnet)
    $GUIHeight = ($Space + $PadSize) * 4 + $Space ;GUI Höhe (wird aus Padgröße berechnet)

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

    $Key = ""
    $Pass = "12345" ;Richtiges Passwort
    $Timelimit = 20000 ;Zeitlimit für die Eingabe (nach Ablauf schließt sich das Script ordnungsgemäß)

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

    #Region Pad Koordinaten
    Dim $aPad[12][3]
    $aPad[0][0] = $Space
    $aPad[0][1] = $Space
    $aPad[0][2] = "1"
    $aPad[1][0] = $Space + $PadSize + $Space
    $aPad[1][1] = $Space
    $aPad[1][2] = "2"
    $aPad[2][0] = ($Space + $PadSize) * 2 + $Space
    $aPad[2][1] = $Space
    $aPad[2][2] = "3"
    $aPad[3][0] = $Space
    $aPad[3][1] = $Space + $PadSize + $Space
    $aPad[3][2] = "4"
    $aPad[4][0] = $Space + $PadSize + $Space
    $aPad[4][1] = $Space + $PadSize + $Space
    $aPad[4][2] = "5"
    $aPad[5][0] = ($Space + $PadSize) * 2 + $Space
    $aPad[5][1] = $Space + $PadSize + $Space
    $aPad[5][2] = "6"
    $aPad[6][0] = $Space
    $aPad[6][1] = ($Space + $PadSize) * 2 + $Space
    $aPad[6][2] = "7"
    $aPad[7][0] = $Space + $PadSize + $Space
    $aPad[7][1] = ($Space + $PadSize) * 2 + $Space
    $aPad[7][2] = "8"
    $aPad[8][0] = ($Space + $PadSize) * 2 + $Space
    $aPad[8][1] = ($Space + $PadSize) * 2 + $Space
    $aPad[8][2] = "9"
    $aPad[9][0] = $Space
    $aPad[9][1] = ($Space + $PadSize) * 3 + $Space
    $aPad[9][2] = "R"
    $aPad[10][0] = $Space + $PadSize + $Space
    $aPad[10][1] = ($Space + $PadSize) * 3 + $Space
    $aPad[10][2] = "0"
    $aPad[11][0] = ($Space + $PadSize) * 2 + $Space
    $aPad[11][1] = ($Space + $PadSize) * 3 + $Space
    $aPad[11][2] = "OK"
    #EndRegion Pad Koordinaten

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

    $hWnd = GUICreate("PIN", $GUIWidth, $GUIHeight, -1, -1, BitOR($WS_SYSMENU, $WS_CAPTION))
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd) ;Erstellt eine Grafik aus der Clientfläche der GUI
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphic) ;Erstellt eine Bitmap aus der Grafik
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap) ;Erstellt eine Grafik die der Bitmap zugeordnet ist
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2) ;Anti-Aliasing
    _GDIPlus_GraphicsClear($hGraphic, $GUIColorBG) ;Füllt eine Grafik komplett in einer Farbe

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

    $Brush_Pad = _GDIPlus_BrushCreateSolid($PadColor) ;Erstellt ein Füllobjekt mit einer bestimmten Farbe
    $Brush_Pad_Active = _GDIPlus_BrushCreateSolid($ColorActive)
    $Brush_Number = _GDIPlus_BrushCreateSolid($PadTextColor)

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

    #Region Schrift
    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Arial")
    $hFont = _GDIPlus_FontCreate($hFamily, 12, 2)
    #EndRegion Schrift

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

    _DrawPad()
    $Estimated_Time = TimerInit() ;Initialisiert das Zeitlimit

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

    While 1
    $nMsg = GUIGetMsg(1) ;Wenn Parameter auf 1 ist, dann wird ein Array mit zusätzlichen Infos zurückgegeben
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    _Exit()
    Case $GUI_EVENT_PRIMARYDOWN
    For $i = 0 To UBound($aPad, 1) - 1
    If $nMsg[3] > $aPad[$i][0] And $nMsg[3] < $aPad[$i][0] + $PadSize And $nMsg[4] > $aPad[$i][1] And $nMsg[4] < $aPad[$i][1] + $PadSize Then _PadEvent($i) ;Überprüft, ob der Mausklick auf ein bestimmtes Pad erfolgt
    _DrawPad()
    Next
    EndSwitch
    If Not WinActive($hWnd) Then ;Wenn Fenster nicht aktiv, dann...
    While 1
    If WinActive($hWnd) Then ;Wenn Fenster wieder aktiv, dann... (Um zu verhindern, dass die GUI übermalt wird)
    _DrawPad()
    ExitLoop
    EndIf
    WEnd
    EndIf
    If TimerDiff($Estimated_Time) > $Timelimit Then ;Überprüft, ob das Zeitlimit erreicht ist
    _Exit()
    EndIf
    WEnd

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

    Func _DrawPad()
    _GDIPlus_GraphicsClear($hBuffer, $GUIColorBG) ;Leert den Buffer
    For $i = 0 To UBound($aPad, 1) - 1
    _GDIPlus_GraphicsFillRect($hBuffer, $aPad[$i][0], $aPad[$i][1], $PadSize, $PadSize, $Brush_Pad) ;Zeichnet ein Pad
    $tLayout = _GDIPlus_RectFCreate($aPad[$i][0], $aPad[$i][1], $PadSize, $PadSize) ;Legt das Layout für den Schriftzug fest
    $aInfo = _GDIPlus_GraphicsMeasureString($hBuffer, $aPad[$i][2], $hFont, $tLayout, $hFormat) ;Passt das Layout auf die berechnete Größe für den String an
    _GDIPlus_GraphicsDrawStringEx($hBuffer, $aPad[$i][2], $hFont, $aInfo[0], $hFormat, $Brush_Number) ;Zeichnet den String auf das Pad
    Next
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $GUIWidth, $GUIHeight) ;Zeichnet den Buffer in die GUI Grafik
    EndFunc ;==>_DrawPad

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

    Func _PadEvent($iPad)
    _GDIPlus_GraphicsFillRect($hBuffer, $aPad[$iPad][0], $aPad[$iPad][1], $PadSize, $PadSize, $Brush_Pad_Active) ;Macht das gleiche wie oben nur mit einer anderen Farbe
    $tLayout = _GDIPlus_RectFCreate($aPad[$iPad][0], $aPad[$iPad][1], $PadSize, $PadSize)
    $aInfo = _GDIPlus_GraphicsMeasureString($hBuffer, $aPad[$iPad][2], $hFont, $tLayout, $hFormat)
    _GDIPlus_GraphicsDrawStringEx($hBuffer, $aPad[$iPad][2], $hFont, $aInfo[0], $hFormat, $Brush_Number)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
    Sleep(100) ;Wirkt realistischer ;)
    If $aPad[$iPad][2] = "OK" Then ;Wenn OK gedrückt, dann...
    If $Key = $Pass Then ;Wenn Passwort richtig, dann...
    MsgBox(64, "Info", "Passwort richtig")
    _Exit()
    Else ;Wenn Passwort falsch, dann...
    MsgBox(16, "Fehler", "Passwort falsch")
    $Key = ""
    $Estimated_Time = TimerInit() ;Zeitlimit wird zurückgesetzt
    Return
    EndIf
    ElseIf $aPad[$iPad][2] = "R" Then ;Wenn Reset gedrückt, dann...
    $Key = "" ;Eingegebene Zeichen werden zurückgesetzt
    Else ;Wenn irgendwas anderes gedrückt, dann...
    $Key &= $aPad[$iPad][2] ;Wert der Gedrückten Taste wird zum String hinzugefügt
    EndIf
    $t = TimerInit()
    Do
    Sleep(10)
    Until TimerDiff($t) > 1000 Or _IsPressed(01)
    EndFunc ;==>_PadEvent

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

    Func _Exit() ;Aufräumen ;)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BrushDispose($Brush_Number)
    _GDIPlus_BrushDispose($Brush_Pad)
    _GDIPlus_BrushDispose($Brush_Pad_Active)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • Auto-Start über Registry

    • name22
    • 20. März 2010 um 15:09

    Bei

    [autoit]

    RegRead("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall" & $keyname, "InstallLocation")

    [/autoit]

    Fehlen sämtliche "\". Ich weiß allerdings nicht ob es daran liegt.

  • Bitmap mittels GDI+ mit CopyRight u. Zeitstempel versehen

    • name22
    • 20. März 2010 um 11:38

    Hab ich kurz zusammengebastelt :D Ist nicht sehr ordentlich, aber müsste funktionieren.

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    $hImage = _GDIPlus_BitmapCreateFromFile(@DesktopDir & "\Test.jpg")
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage)

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

    $String = @HOUR & ":" & @MIN & ":" & @SEC

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

    $hBrush = _GDIPlus_BrushCreateSolid(0xA900007F)
    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Arial")
    $hFont = _GDIPlus_FontCreate($hFamily, 40, 0)
    $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $String, $hFont, $tLayout, $hFormat)
    _GDIPlus_GraphicsDrawStringEx($hGraphic, $String, $hFont, $aInfo[0], $hFormat, $hBrush)

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

    _GDIPlus_ImageSaveToFile($hImage, @DesktopDir & "\beispiel.jpg")

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

    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

    [/autoit]

    Habe es mal ein wenig erweitert (nur so als Beispiel)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiComboBoxEx.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>
    #include <File.au3>

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

    _GDIPlus_Startup()

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

    $hImage = _GDIPlus_BitmapCreateFromFile(FileOpenDialog("Bild öffnen", @UserProfileDir & "\Pictures", "Bilder (*.jpg;*.jpeg;*.bmp;*.gif;*.png)"))
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage)

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

    $Wasserzeichen = GUICreate("Wasserzeichen", 222, 107, 192, 124)
    $Input = GUICtrlCreateInput("", 8, 72, 121, 21)
    GUICtrlSetLimit(-1, 10)
    $Combo = _GUICtrlComboBoxEx_Create($Wasserzeichen, "Uhrzeit|Datum|Computername|Benutzername|Benutzerdefiniert", 8, 40, 145, 25)
    $OK = GUICtrlCreateButton("OK", 136, 72, 75, 25, $WS_GROUP)
    $Label = GUICtrlCreateLabel("Bitte Text für das Wasserzeichen angeben:", 8, 8, 208, 17)
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $OK
    Switch _GUICtrlComboBoxEx_GetCurSel($Combo)
    Case 0
    $String = @HOUR & ":" & @MIN & ":" & @SEC
    GUIDelete()
    ExitLoop
    Case 1
    $String = @MDAY & "." & @MON & "." & @YEAR
    GUIDelete()
    ExitLoop
    Case 2
    $String = @ComputerName
    GUIDelete()
    ExitLoop
    Case 3
    $String = @UserName
    GUIDelete()
    ExitLoop
    Case 4
    If Not StringReplace(GUICtrlRead($Input), " ", "") = "" Then
    $String = GUICtrlRead($Input)
    GUIDelete()
    ExitLoop
    EndIf
    EndSwitch
    EndSwitch
    WEnd

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

    $hBrush = _GDIPlus_BrushCreateSolid("0x" & Hex(InputBox("Transparenz", "(0-255)"), 2) & StringTrimLeft(_ChooseColor(2), 2))
    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Arial")
    $hFont = _GDIPlus_FontCreate($hFamily, 40, 0)
    $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $String, $hFont, $tLayout, $hFormat)
    _GDIPlus_GraphicsDrawStringEx($hGraphic, $String, $hFont, $aInfo[0], $hFormat, $hBrush)

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

    _GDIPlus_ImageSaveToFile($hImage, _Path())

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

    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

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

    Func _Path()
    Local $szDrive, $szDir, $szFName, $szExt
    $Path = FileSaveDialog("Speichern unter", @ScriptDir, "Bilder (*.jpg;*.jpeg;*.gif;*.png;*.bmp)")
    $PathSplit = _PathSplit($Path, $szDrive, $szDir, $szFName, $szExt)
    If Not ($PathSplit[4] = ".jpg" Or $PathSplit[4] = ".gif" Or $PathSplit[4] = ".png" Or $PathSplit[4] = ".bmp") Then
    MsgBox(16, "Fehler", "Bitte Erweiterung angeben")
    _Path()
    EndIf
    Return $Path
    EndFunc ;==>_Path

    [/autoit]
  • GUI Probleme ...

    • name22
    • 20. März 2010 um 00:12

    Ich würde das ja so machen ;) :

    [autoit]

    Func _PixelSearch()
    $coord = PixelSearch( 0, 0, @DesktopWidth, @DesktopHeight, 0xE5B56A, 0 )
    If Not @error Then
    MsgBox(0, "Die Koordinaten X und Y lauten:", $coord[0] & "," & $coord[1])
    AdlibUnRegister()
    EndIf
    EndFunc

    [/autoit]
  • Hotkeyset disabeln

    • name22
    • 19. März 2010 um 22:13

    HotKeySet ohne 2ten Parameter "disabled" ihn (steht auch in der Hilfe). Also musst du nur mit WinActive den Status des Fensters überprüfen und ggf. HotKeySet("{ESC}", "") machen.

  • Autorun Progarmmieren

    • name22
    • 19. März 2010 um 22:11

    Wieso kopierst du nicht einfach temporär die nötigen Dateien vom USB-Stick auf den PC und startest sie da?

  • 2 Kleine Fragen :D

    • name22
    • 19. März 2010 um 20:49

    Vielleicht musst du bei der avi Datei auf den Codec achten. :S

  • 2 Kleine Fragen :D

    • name22
    • 19. März 2010 um 18:30

    Zur ersten Frage, die ich leider nicht ganz verstanden habe: UDF im Hintergrund laufen lassen ?( Suchst du vielleicht AdlibRegister?

  • _ArraySort nummern sotieren

    • name22
    • 19. März 2010 um 18:25

    Schau dir den 2ten Parameter bei _ArraySort an (steht in der Hilfe)

  • Fenster sollen sich schließen wenn ein anderes geöffnet wird

    • name22
    • 18. März 2010 um 21:00

    Wie wäre es, wenn du nur ein GUI verwendest und nicht 40 Stück? :D
    Schließlich kannst du ja den Inhalt eines GUI auch nach dessen Erzeugung verändern

  • Grundfrage zu If

    • name22
    • 18. März 2010 um 20:51

    Vorab mal: In einer einzeiligen If Abfrage braucht man kein EndIf
    Abgesehen davon:

    [autoit]

    If $BLABLA >= $Koordinate1 And $BLABLA <= $Koordinate2 Then MsgBox(0,"","Autoit.de")

    [/autoit]

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™