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

Beiträge von UEZ

  • Dienste starten und beenden

    • UEZ
    • 28. Dezember 2010 um 15:05

    Man könnte auch WMI benutzen, um die Dienste zu kontrollieren. Hat noch den Vorteil, dass man auch an Remote Systemen die Dienste stoppen / starten kann.

    Gruß,
    UEZ

  • [UDF] (Teil)transparente Bilder-GUIs nach einem Rezept von Meister UEZ

    • UEZ
    • 28. Dezember 2010 um 15:00

    Hier, was mit ad hoc eingefallen ist:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include "GUICreateTransparent.au3"

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

    Global Const $SC_DRAGMOVE = 0xF012
    Global $sBildURL = "http://www.autoit.de/index.php?page=Attachment&attachmentID=11980&h=3e1f01006e7557e85e5957cfa8c04a385ebf559a"
    Global $sBilddatei = @ScriptDir & "\bg.png"

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

    If Not FileExists($sBilddatei) Then
    $Result = MsgBox(4, "Bild laden", 'Soll das Bild "bg.png" von' & @CRLF & @CRLF & _
    $sBildURL & @CRLF & @CRLF & 'heruntergeladen werden?')
    If $Result <> 6 Then Exit
    InetGet($sBildURL, $sBilddatei)
    EndIf

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

    ; Transparentes GUI erzeugen
    $hGUI = _GUICreate_Transparent($sBilddatei)
    $hGUI2 = GUICreate("Test", 79, 14, 400, 100, $WS_POPUP, $WS_EX_MDICHILD + $WS_EX_LAYERED, $hGUI)
    GUISetBkColor(0x00001, $hGUI2)
    _WinAPI_SetLayeredWindowAttributes($hGUI2, 0x00001, 0xFF, 3)
    $idLbl = GUICtrlCreateLabel("Label Test Form", 0, 0, 79, 14)
    GUICtrlSetColor($idLbl, 0xFFFFFF)
    GUICtrlSetBkColor($idLbl, -2)
    GUICtrlSetTip(-1, "Mich kannst Du klicken!", "Label Test Form")
    WinSetOnTop($hGUI2, "", True)
    GUISetState(@SW_SHOW, $hGUI)
    GUISetState(@SW_SHOW, $hGUI2)

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

    ; Wenn man das GUI bewegen will
    GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN")

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $idLbl
    MsgBox(0, "Transparentes GUI", "Klick auf Label Test Form", 0, $hGUI)
    EndSwitch
    WEnd

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

    Exit

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

    Func _WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam)
    _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
    EndFunc ;==>_WM_LBUTTONDOWN

    [/autoit]

    Gruß,
    UEZ

  • Array anstatt Zahl mit Wort ($array[Wort] = "Test")

    • UEZ
    • 27. Dezember 2010 um 15:49

    Schaue mal hier rein: Yet another associative array UDF

    Gruß,
    UEZ

  • files downloaden?

    • UEZ
    • 27. Dezember 2010 um 15:27

    Du könntest einfach den URL Link durch ein FTP Link ersetzen.

    Falls du Benutzernamen und Passwort eingeben musst, kannst du ja als Workaround folgende Syntax nehmen:

    ftp: //user:password@ftp-site

    Gruß,
    UEZ

  • files downloaden?

    • UEZ
    • 27. Dezember 2010 um 14:57

    Ich hatte auch mal dazu was geschrieben.

    Spoiler anzeigen
    [autoit]


    ;Coded by UEZ 2010
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    Opt("MustDeclareVars", 1)

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

    Global $hGUI = GUICreate("Downloader by UEZ 2010 Build 2010-12-27", 615, 267, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    Global $Input_URL = GUICtrlCreateInput("http://www.autoitscript.com/autoit3/files/beta/autoit/autoit-v3.3.5.6-sfx.exe", 64, 24, 497, 21)
    Global $Label1 = GUICtrlCreateLabel("URL:", 32, 26, 29, 17)
    Global $Start_DL = GUICtrlCreateButton("Download", 64, 128, 75, 25)
    GUICtrlSetOnEvent(-1, "Start_DL")
    Global $Stop_DL = GUICtrlCreateButton("Cancel", 488, 128, 75, 25)
    GUICtrlSetOnEvent(-1, "Stop_DL")
    GUICtrlSetState(-1, $GUI_DISABLE)
    Global $Progress = GUICtrlCreateProgress(8, 192, 598, 17)
    Global $StatusBar = _GUICtrlStatusBar_Create($hGUI)
    _GUICtrlStatusBar_SetText($StatusBar, "Ready")
    Global $Input_Save_To = GUICtrlCreateInput(@ScriptDir, 64, 80, 497, 21)
    Global $Label2 = GUICtrlCreateLabel("Save to:", 16, 84, 44, 17)
    GUISetState(@SW_SHOW)

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

    Global $hDownload, $nBytes, $nRead, $nSize, $calc, $file, $url, $current
    Global $speed = 0
    Global $prog = 0
    Global $stop = 0

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

    While Sleep(1000000000)
    WEnd

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

    Func Start_DL()
    $url = GUICtrlRead($Input_URL)
    $file = GUICtrlRead($Input_Save_To)
    If $url <> "" And $file <> "" Then
    GUICtrlSetState($Start_DL, $GUI_DISABLE)
    GUICtrlSetState($Stop_DL, $GUI_ENABLE)
    $file &= "\" & StringRight($url, StringLen($url) - StringInStr($url, "/", 0, -1))
    $nSize = InetGetSize($url)
    $hDownload = InetGet($url, $file, 1, 1)
    AdlibRegister("DL_Check", 50)
    $current = 0
    AdlibRegister("DL_Speed", 1000)
    EndIf
    EndFunc

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

    Func DL_Check()
    If InetGetInfo($hDownload, 2) Or $stop Then
    InetClose($hDownload)
    GUICtrlSetState($Start_DL, $GUI_ENABLE)
    GUICtrlSetState($Stop_DL, $GUI_DISABLE)
    GUICtrlSetData($Progress, 0)
    _GUICtrlStatusBar_SetText($StatusBar, "Ready")
    $stop = 0
    AdlibUnRegister("DL_Check")
    AdlibUnRegister("DL_Speed")
    Else
    $nRead = InetGetInfo($hDownload, 0)
    $calc = Int(100 * $nRead / $nSize)
    GUICtrlSetData($Progress, $calc)
    _GUICtrlStatusBar_SetText($StatusBar, $nRead & " / " & $nSize & " bytes (" & $calc & " % @ " & $speed & " kb/s)")
    EndIf
    EndFunc

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

    Func DL_Speed()
    $speed = Round(($nRead - $current) / 1024, 2)
    $current = $nRead
    EndFunc

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

    Func Stop_DL()
    $stop = 1
    EndFunc

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

    Func _Exit()
    InetClose($hDownload)
    GUIDelete($hGUI)
    Exit
    EndFunc

    [/autoit]

    Gruß,
    UEZ

  • FileCommander

    • UEZ
    • 27. Dezember 2010 um 14:51

    Wird immer besser :thumbup:

    Hotkeys für die Buttons (und auch generell) wären nicht schlecht, falls noch nicht erwähnt und Gridlines (optional).

    Gruß,
    UEZ

  • StringRegExpReplace -> String kuerzen

    • UEZ
    • 26. Dezember 2010 um 18:41

    Ich habe mein Beispiel oben aktualisiert!

    Gruß,
    UEZ

  • StringRegExpReplace -> String kuerzen

    • UEZ
    • 26. Dezember 2010 um 18:27

    Probiere es mal mit

    [autoit]


    $string = "C:\Dokumente und Einstellungen\Benutzer\Desktop\Homepage\galerie\irgendwas\irgend-ein-bild.jpg"
    $Muster = StringRegExpReplace($string, "(?i:.*(irgend-ein-bild).*)", "$1")
    $aMuster = StringRegExp($string, "(?i:(.*\\)irgend-ein-bild(\..*)$)", 3)
    MsgBox(0, "Test", $Muster & @LF & $aMuster[0] & @LF & $aMuster[1])

    [/autoit]

    Gruß,
    UEZ

  • _GDIPlus_GraphicsDrawBezier punkte errechnen

    • UEZ
    • 26. Dezember 2010 um 18:04
    Zitat von Jam00

    Super UEZ, genau was ich wollte :thumbup:

    Eine Frage noch wie kommst du auf diese Rechnungen? Kannst du mir mal erklären wie du darauf kommst? Würde das auch selber gerne erstellen können. Oder ist das mit Mathematik der 9 Realschulklasse noch nicht möglich?
    Naja könntest mir ja trozdem nochmal erklären, dann guck ich im Inet für die Rechnungen die ich noch nicht kenne/kann um sie zu lernen.

    Vielen Dank


    Das hat was mit Schwingungen zu tun und Schwingungen werden i.d.R. mit Sinus/Kosinus dargestellt.
    Wenn ihr Sinus und Kosinus bereits in Mathe behandelt, dann schaue mal einfach hier rein: http://de.wikipedia.org/wiki/Sinus. Ansonsten wird es schwer zu erklären.

    Zitat von Jam00


    Eine Frage noch, kann man die Kantenglättung noch erhöhen? Man kann sie ja so nur auf 8x8 stellen, kann man sie auch irgendwie auf 16x16 stellen?


    Soweit ich weiß, gibt es nur 0, 1 und 2 als Wert für _GDIPlus_GraphicsSetSmoothingMode()

    Gruß,
    UEZ

  • _GDIPlus_GraphicsDrawBezier punkte errechnen

    • UEZ
    • 26. Dezember 2010 um 16:11

    Eine von vielen Möglichkeiten:

    Spoiler anzeigen
    [autoit]


    ;fast hack by UEZ 2010
    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>

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

    Opt("GUIOnEventMode", 1)
    Opt("MustDeclareVars", 1)

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

    Global $hGUI, $hGraphic, $hBitmap, $hBackbuffer, $hBackground, $hContext, $hBrush1, $hBrush2, $progress
    Global $start, $schritte

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

    Global $weight = 600
    Global $height = 100
    $hGUI = GUICreate("GDI+", $weight, $height, Default, Default, 0x80000000)
    GUISetBkColor($hGUI, 0)

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

    _GDIPlus_Startup ()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hGUI)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($weight, $height, $hGraphic)
    $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    $hBackground = _GDIPlus_BitmapCreateFromGraphics($weight, $height, $hGraphic)
    $hContext = _GDIPlus_ImageGetGraphicsContext($hBackground)

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

    _GDIPlus_GraphicsSetSmoothingMode($hContext, 2)
    _GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)

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

    $hBrush1 = _GDIPlus_BrushCreateSolid(0xFF6E6E6E)
    $hBrush2 = _GDIPlus_BrushCreateSolid(0xFFF96900)

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

    _GDIPlus_GraphicsClear($hBackbuffer)
    _GDIPlus_GraphicsClear($hContext)

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

    ;erstelle Hintergrund
    Progress($hContext, $hBrush1, -5, $weight +5)

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

    GUISetState()

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

    GUISetOnEvent(-3, "_Exit")

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

    $start = -5

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

    While Sleep(30)
    If $schritte < $weight + 5 Then
    _GDIPlus_GraphicsDrawImageRect($hBackbuffer, $hBackground, 0, 0, $weight, $height)
    Progress($hBackbuffer, $hBrush2, $start, $start + $schritte)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $weight, $height)
    $schritte += 4
    EndIf
    WEnd

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

    Func Progress($hContext, $hBrush, $s, $e, $steps = 1, $bW = 10, $bH = 10, $h = $height)
    Local $i
    For $i = $s To $e Step $steps
    _GDIPlus_GraphicsFillEllipse($hContext, $i, $h / 2 - $h * Cos($i / 40) / 5 - $bH / 2, $bW, $bH, $hBrush)
    Next
    EndFunc

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

    Func _Exit()
    _GDIPlus_BrushDispose($hBrush1)
    _GDIPlus_BrushDispose($hBrush2)
    _GDIPlus_GraphicsDispose($hBackbuffer)
    _GDIPlus_BitmapDispose ($hBitmap)
    _GDIPlus_GraphicsDispose($hContext)
    _GDIPlus_BitmapDispose ($hBackground)
    _GDIPlus_GraphicsDispose ($hGraphic)
    _GDIPlus_Shutdown ()
    GUIDelete($hGUI)
    Exit
    EndFunc

    [/autoit]


    Gruß,
    UEZ

  • Bitmap invertieren

    • UEZ
    • 24. Dezember 2010 um 21:19
    Zitat von Andy

    Hi Seubo, Deine Idee war klasse!
    Allerdings hattest du per XOR deine dest_bitmap verknüpfen wollen. In dieser ist aber, da neu angelegt, jedes Pixel 0x00000000. Um zu invertieren, müsstest du erst das dest_Bitmap mit 0xFFFFFFFF füllen!
    Oder du machst es wie der faule Andy, der benutzt beim Blitten den Parameter


    und spart sich so die 2. Bitmap.

    Spoiler anzeigen
    [autoit]

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

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

    _GDIPlus_Startup()

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

    $sFile = FileOpenDialog("", "", "Alle (*.*)")
    If @error Then Exit

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

    $hBild = _GDIPlus_BitmapCreateFromFile($sFile)
    $hBild_Inverted = BitmapInvert($hBild)

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

    FileDelete(StringTrimRight($sFile, 4) & "_inverted.bmp")
    $s = _GDIPlus_ImageSaveToFile($hBild_Inverted, StringTrimRight($sFile, 4) & "_inverted.bmp")
    ShellExecute(StringTrimRight($sFile, 4) & "_inverted.bmp")

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

    Func BitmapInvert($hBitmap)
    Local $iWidth, $iHeigth, $hBitmap_New, $hBitmap_Old
    Local $hDC_Source, $hDC_Dest, $vReturn

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

    $iWidth = _GDIPlus_ImageGetWidth($hBitmap)
    $iHeigth = _GDIPlus_ImageGetHeight($hBitmap)

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

    $hDC_Source = _WinAPI_CreateCompatibleDC(0)
    $hBitmap_Old = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)

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

    $vReturn = _WinAPI_SelectObject($hDC_Source, $hBitmap_Old) ; nur für's debug in Var schreiben
    $vReturn = _WinAPI_BitBlt($hDC_Source, 0, 0, $iWidth, $iHeigth, $hDC_Source, 0, 0, $dstinvert)
    $vReturn = _WinAPI_DeleteDC($hDC_Source)
    Return _GDIPlus_BitmapCreateFromHBITMAP($hBitmap_Old)
    EndFunc ;==>BitmapInvert

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    Alles anzeigen

    Einfach, schnell und effizient! :thumbup:

    Gruß,
    UEZ

  • 7za.exe ansprechen

    • UEZ
    • 24. Dezember 2010 um 21:16

    Probiere es mal so:

    [autoit]


    $7zip = "7z.exe "
    $source = "c:\Tmp\ "
    $dest = "c:\Temp\Test.7z "
    $command = "a "
    $switches = "-r -t7z -mx7"
    ConsoleWrite($7zip & $command & $dest & $source & $switches & @CRLF)
    $pid = RunWait(@ComSpec & " /k " & $7zip & $command & $dest & $source & $switches, @ScriptDir, @SW_MAXIMIZE)

    [/autoit]

    Gruß,
    UEZ

  • TicTacToe Computer als gegner

    • UEZ
    • 24. Dezember 2010 um 13:21

    Schau' mal hier rein: http://www.autoitscript.com/forum/topic/54…-be-unbeatable/

    Gruß,
    UEZ

  • GDI+ Abgerundetes Rechteck

    • UEZ
    • 23. Dezember 2010 um 22:29

    Hier auch noch eine ganz nette Quelle: http://www.autoitscript.com/forum/topic/97…sdrawroundrect/

    Gruß,
    UEZ

  • [UDF] (Teil)transparente Bilder-GUIs nach einem Rezept von Meister UEZ

    • UEZ
    • 23. Dezember 2010 um 00:32

    _WinAPI_UpdateLayeredWindow($hGUI, 0, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) funzt auch auf Vista+ ;)

    Ich weiß nicht mehr, warum ich $hGUI, $hGUI genommen hatte...

    Gruß,
    UEZ

  • [UDF] (Teil)transparente Bilder-GUIs nach einem Rezept von Meister UEZ

    • UEZ
    • 23. Dezember 2010 um 00:11

    Ändere mal die Zeile 73 in GUICreateTransparent.au3 zu _WinAPI_UpdateLayeredWindow($hGUI, 0, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) um (war bereits in meinem Beispiel so :whistling: ).

    Sollte jetzt auch unter WinXP funzen!

    Es gibt leider einige Codes, die nicht mehr oder anders unter WinXP laufen!

    Ich persönlich bin absolut mit Win7 x64 zufrieden und verwende XP i.d.R. nicht mehr! :D

    Gruß,
    UEZ

  • [UDF] (Teil)transparente Bilder-GUIs nach einem Rezept von Meister UEZ

    • UEZ
    • 22. Dezember 2010 um 14:05
    Zitat

    ...von Meister UEZ

    Meister ?( <hust, hust>

    Gruß,
    UEZ

  • Bitmap Daten direkt aus Arbeitsspeicher auslesen

    • UEZ
    • 21. Dezember 2010 um 22:12

    Soweit ich dich verstanden habe, willst du eine Menge Screenshots vom Desktop erstellen (so eine Art Abfilmen) und diese Screenshot anschließend speichern.

    Hier ein Test:

    Spoiler anzeigen
    [autoit]


    #include <ScreenCapture.au3>

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

    _GDIPlus_Startup()
    $j = 5000 ;Anzahl der Screenshots
    Dim $memHBitmaps[$j], $hBitmaps[$j]
    $w = 50
    $h = 50
    $t = TimerInit()
    For $i = 0 To UBound($memHBitmaps) - 1
    $x = Random(0, @DesktopWidth - $w, 1)
    $y = Random(0, @DesktopHeight - $h, 1)
    $memHBitmaps[$i] = _ScreenCapture_Capture("", $x, $y, $x + $w, $y + $h, 0)
    $hBitmaps[$i] = _GDIPlus_BitmapCreateFromHBITMAP($memHBitmaps[$i])
    Next
    $tm = Round(TimerDiff($t), 2)
    ConsoleWrite("Laufzeit, um den Speicher mit " & $j & " Screenshots zu füllen: " & $tm & " ms" & @LF)
    $t = TimerInit()
    $l = StringLen(UBound($memHBitmaps) - 1)
    For $i = 0 To UBound($memHBitmaps) - 1
    _GDIPlus_ImageSaveToFile($hBitmaps[$i], "Test" & StringFormat("%0" & $l & "s", $i) & ".jpg")
    _WinAPI_DeleteObject($memHBitmaps[$i])
    _GDIPlus_BitmapDispose ($hBitmaps[$i])
    Next
    $ts = Round(TimerDiff($t), 2)
    ConsoleWrite("Laufzeit für das Speichern der " & $j & " Screenshots : " & $ts & " ms" & @LF)
    $tg = $tm + $ts
    ConsoleWrite("Laufzeit gesamt: " & $tg & " ms" & @LF)
    $bps = Round($j / $tg * 1000, 2)
    ConsoleWrite($bps & " Bilder/s, " & Round(1 / $bps * 1000, 2) & " ms/Bild" & @LF)
    _GDIPlus_Shutdown()
    Exit

    [/autoit]

    Das Resultat:
    Laufzeit, um den Speicher mit 5000 Screenshots zu füllen: 93473.26 ms
    Laufzeit für das Speichern der 5000 Screenshots : 19010.06 ms
    Laufzeit gesamt: 112483.32 ms
    44.45 Bilder/s, 22.5 ms/Bild

    Speicherverbrauch: 64MB

    Gruß,
    UEZ

  • Wochentagsberechnung von Javascript in Autoit übersetzten?

    • UEZ
    • 19. Dezember 2010 um 19:52

    Was macht denn das JS Skript genau (wie kann ich das Skript laufen lassen)? Hast du dir mal die _Date* Funktionen angeschaut?

    Ansonsten kann man das bestimmt mit AutoItObject realisieren...

    Gruß,
    UEZ

  • Interessante Kodierung in der Autoit-Memory

    • UEZ
    • 19. Dezember 2010 um 00:29

    Interessante EInblicke - krass!

    Gruß,
    UEZ

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™