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

Beiträge von Lenny

  • Glücksrad! via GDI+?

    • Lenny
    • 17. November 2013 um 01:00

    Dynamik ist de facto einfach viel zutreffender als Flexibilität.

  • GDI+ - Zuvor gezeichnetes Rechteck löschen und erneut auf Oberfäche malen

    • Lenny
    • 29. November 2011 um 14:47

    Hallo!

    Vielen Dank, habe es nun so gemacht:

    [autoit]

    #include <ScreenCapture.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    Opt("WinTitleMatchMode", 1)
    Opt("GUIOnEventMode", 1)
    HotKeySet("^b", "_get")

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

    #region ### START Koda GUI section ### Form=
    $hForm = GUICreate("", 169, 54, 192, 124, 0)
    GUISetCursor(3);
    #endregion ### END Koda GUI section ###

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "close", $hForm)

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

    ;Global $mTempPos[2]
    $winHandle = WinGetHandle("")
    If $winHandle = 0 Then Exit
    $winPos = WinGetPos("")
    If $winPos = 0 Then Exit
    WinMove($hForm, "", "", "", $winPos[2], $winPos[3])
    _GDIPlus_Startup();
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hForm)
    $hRectBrush = _GDIPlus_BrushCreateSolid(0x33FF0000)
    $hSImage = 0
    Global $hBitmap = 0;

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

    While 1
    If WinActive($hForm) Then
    If $hSImage[1] <> 0 Then
    If (_IsPressed(01)) Then
    $mPos = MouseGetPos();
    $mTempPos = $mPos;

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

    While (_IsPressed(01))
    $mNewPos = MouseGetPos()
    If ($mNewPos[0] <> $mTempPos[0] Or $mNewPos[1] <> $mTempPos[1]) Then
    _GDIPlus_GraphicsDrawImage($hGraphic, $hSImage[1], 0, 0)
    _GDIPlus_GraphicsFillRect($hGraphic, $mPos[0], $mPos[1], $mNewPos[0] - $mPos[0], $mNewPos[1] - $mPos[1], $hRectBrush)

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

    EndIf
    $mTempPos = $mNewPos
    If _IsPressed(02) Then
    $hClone = _GDIPlus_BitmapCloneArea($hSImage[1], $mPos[0], $mPos[1], $mNewPos[0] - $mPos[0], $mNewPos[1] - $mPos[1])
    _GDIPlus_ImageSaveToFile($hClone, @ScriptDir & "/SCR/scr_" & @HOUR & @MIN & @SEC & @MDAY & @MON & @YEAR & ".jpg")
    _GDIPlus_BitmapDispose($hClone)
    _WinAPI_DeleteObject($hSImage[0])
    GUISetState(@SW_HIDE, $hForm)
    ExitLoop
    EndIf
    WEnd

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

    ElseIf _IsPressed(02) Then
    _WinAPI_DeleteObject($hSImage[0])
    GUISetState(@SW_HIDE, $hForm)
    EndIf
    Sleep(50)
    EndIf
    EndIf
    WEnd

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

    Func close()
    _GDIPlus_BitmapDispose($hClone)
    _WinAPI_DeleteObject($hSImage[0])
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_BrushDispose($hRectBrush)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>close

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

    Func _takeScreen()
    Dim $hHandles[2]
    $hHandles[0] = _ScreenCapture_CaptureWnd("", $winHandle)
    $hHandles[1] = _GDIPlus_BitmapCreateFromHBITMAP($hHandles[0])
    GUISetState(@SW_SHOW, $hForm)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hHandles[1], 0, 0)
    Return ($hHandles)
    EndFunc ;==>_takeScreen

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

    Func _get()
    $hSImage = _takeScreen()
    EndFunc ;==>_get

    [/autoit]

    Grüße,
    Lenny

  • GDI+ - Zuvor gezeichnetes Rechteck löschen und erneut auf Oberfäche malen

    • Lenny
    • 28. November 2011 um 20:59

    Guten Abend euch allen!

    Ich versuche gerade aus einem Bild einen Bereich mit Hilfe von GDI+ herauszuschneiden. Das Bild wird auf die GUI gemalt. Dann sollte ein Bereich auswählbar sein (Links Klick + Ziehen) und wenn die Maus losgelassen wird dieser gespeichert werden. Leider weiß ich nicht wie man ein zuvor gemaltes Rechteck wieder entfernen kann, sodass immer ein neues halbtransparentes überlagernd Gezeichnet wird - Folge ist, dass man nicht mehr sieht was man auswählt.

    Hat jemand vielleicht eine Idee, wie ich dieses Problem lösen kann? Ich habe das Rechteck mit GDI+ und nicht mit Hilfe einer zweiten GUI gemacht, da ich dies als schöner Emfinde.

    Hier erstmal der Code:

    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.1
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here
    #include <ScreenCapture.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    Opt("WinTitleMatchMode", 1)
    Opt("GUIOnEventMode", 1)
    HotKeySet("^b", "_get")

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

    #region ### START Koda GUI section ### Form=
    $hForm = GUICreate("", 169, 54, 192, 124, 0)
    GUISetCursor(3);
    #endregion ### END Koda GUI section ###

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "close", $hForm)

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

    ;Global $mTempPos[2]
    $winHandle = WinGetHandle("")
    If $winHandle = 0 Then Exit
    $winPos = WinGetPos("")
    If $winPos = 0 Then Exit
    WinMove($hForm, "", "", "", $winPos[2], $winPos[3])
    _GDIPlus_Startup();
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hForm)
    $hRectBrush = _GDIPlus_BrushCreateSolid(0x33FF0000)
    $hDelBrush = _GDIPlus_BrushCreateSolid(0x00FFFFFF)

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

    While 1
    If WinActive($hForm) Then
    If (_IsPressed(01)) Then
    $mPos = MouseGetPos();
    $mTempPos = $mPos;
    $hGraphicRec = _GDIPlus_GraphicsCreateFromHWND($hForm)

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

    While (_IsPressed(01))
    $mNewPos = MouseGetPos()
    If ($mNewPos[0] <> $mTempPos[0] Or $mNewPos[1] <> $mTempPos[1]) Then
    _GDIPlus_GraphicsFillRect($hGraphicRec, $mPos[0],$mPos[1],$mNewPos[0]-$mPos[0],$mNewPos[1]-$mPos[1], $hRectBrush)
    EndIf
    $mTempPos = $mNewPos
    WEnd

    ElseIf _IsPressed(02) Then
    GUISetState(@SW_HIDE, $hForm)
    EndIf
    Sleep(50)
    EndIf
    WEnd

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

    Func close()
    Exit
    EndFunc ;==>close

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

    Func _takeScreen()
    $hBitmap = _ScreenCapture_CaptureWnd("", $winHandle)
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
    GUISetState(@SW_SHOW, $hForm)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    Return (1)
    EndFunc ;==>_takeScreen

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

    Func _get()
    _takeScreen()
    EndFunc ;==>_getBot

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

    Und weiß jemand wie ich aus meinem Ursprungsbild den ausgewählten Bereich herausschneiden und speichern kann?

    Ich freue mich über jede Antwort!

    Vielen Dank im Voraus und viele Grüße,

    Lennart

  • _IE Link kliken ohen Form & Name

    • Lenny
    • 15. März 2010 um 19:53

    Spannend wäre zu wissen, was zwischen <a id=xxx> und </a>

    Warscheinlich wird dort ein Text stehen, bzw. eine Zeile, wie der Link dann auch im Browser dargestellt wird.

    Unter dieser Voraussetzung würde dann: _IELinkClickByText funktionieren.

    Grüße,

    Lenny

  • Sound und mehr

    • Lenny
    • 4. Januar 2010 um 20:45

    Guck mal in die Hilfe und gibt _Sound ein.

    _SoundClose ( $aSnd_id )
    _SoundLength ( $aSnd_id [, $iMode ] )
    _SoundOpen ( $sFile )
    _SoundPause ( $aSnd_id )
    _SoundPlay ( $aSnd_id [, $iWait ] )
    _SoundPos ( $aSnd_id [, $iMode ] )
    _SoundResume ( $aSnd_id )
    _SoundSeek (ByRef $aSnd_id, $iHour, $iMin, $iSec )
    _SoundStatus ( $aSnd_id )
    _SoundStop (ByRef $aSnd_id )

    lG, Lenny

  • decompilieren .... schutz ?! .___.

    • Lenny
    • 4. Januar 2010 um 15:59

    Du könntest zumindest den Obfuscator drüber laufen lassen, aber der erschwert nur das Lesen des SourceCodes (Bzw. macht ihn unlesbar)

    Ich denke einen 100% Schutzt gibt es momentan nicht.

  • Mausklick in nicht sichtbarem Bereich eines Fensters

    • Lenny
    • 4. Januar 2010 um 14:07

    Hallo SORUS,

    die genannten Funktionen sind für jedes Fenster gülitg. Es wurde einfach eine selbsterstellte GUI als Beispiel genommen.

    Mit

    [autoit]

    WinGetHandle()

    [/autoit]

    solltest du weiterkommen.

    lG,
    Lenny

  • AutoIT Bug Listview?

    • Lenny
    • 4. Januar 2010 um 13:59

    Hey!

    Wenn ich

    [autoit]

    _GUICtrlListView_SimpleSort ($hListView, $variable, GUICtrlGetState($hListView))

    [/autoit]

    weglasse, funktioniert es bei mir. Aber komisch finde ich das schon.

    lG,

    Lenny

  • Probleme mit Taschenrechner! bitte helfen

    • Lenny
    • 4. Januar 2010 um 13:28

    Äh, wie Raupi schon sagte? Mit Raupis oder meinem Script:

    Zitat

    @dominic208 bei deiner Func _berechnen kommen keine 2 MsgBox´en.

  • Probleme mit Taschenrechner! bitte helfen

    • Lenny
    • 4. Januar 2010 um 13:22

    Bei meinem Script kommt nur keine MsgBox, wenn du keine Rechenart auswählst. Du musst in die Liste klicken, damit die rechenart, die aktuell angezeigt wird, auch verwendet werden kann.
    Das hat raupi in seinem Script ein bisschen schlauer gemacht. Bei ihm ist das "+" schon zu beginn ausgewählt, was auch erklärt, dass du in Raupi's Script zumindest "+" rechnen kannst.

    Dein Problem ist, dass du zwar in der ListBox rumscrollst, aber letzendlich garkeine Rechenart auswählst.

  • Probleme mit Taschenrechner! bitte helfen

    • Lenny
    • 3. Januar 2010 um 20:42

    Raupi's und Mein Script funktionieren bei mir einwandfrei ?(

  • Probleme mit Taschenrechner! bitte helfen

    • Lenny
    • 3. Januar 2010 um 20:16

    Hallo.

    Du darfst in $listbox nicht noch das Ergebnis von GuiCtrlSetData speichern, weil du dann das Handle deiner Listbox überschreibst und somit mit ihr nichts mehr machen kannst.

    Den Rest würde ich so machen:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    Dim $listbox
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 77, 192, 124)
    $Input1 = GUICtrlCreateInput("10", 24, 24, 153, 21)
    $listbox = GUICtrlCreateList("", 216, 24, 97, 19)
    GUICtrlSetData(-1, "+|-|/|*")
    $Input2 = GUICtrlCreateInput("10", 336, 24, 129, 21)
    $Button1 = GUICtrlCreateButton("=", 488, 24, 49, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    _berechnen()
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _berechnen()
    $Art = GUICtrlRead($listbox)
    If $Art <> "" Then
    $Zahl1 = GUICtrlRead($Input1)
    $Zahl2 = GUICtrlRead($Input2)
    $erg = Execute($Input1 & $Art & $Input2)
    MsgBox(0, "", $erg)
    EndIf
    EndFunc ;==>_berechnen

    [/autoit]
  • QDesktop

    • Lenny
    • 3. Januar 2010 um 19:28
    Zitat

    Den Rechten Button "Icon auswählen" würde ich noch um 1px nach rechts schieben. :P

    Ich glaube lieber nach links ;)

    Edit: Ups, ich hab auf den "Programm Wählen" Button geachtet :rolleyes:

  • QDesktop

    • Lenny
    • 3. Januar 2010 um 18:39
    Zitat

    Schönes Script.
    Du könntest ja noch eine HotKey Tastenabfrage machen, denn ich benutz meine Mittlere Maustaste oft, und was anderen wäre vllt. besser.

    Jap das wäre schön, denn ich hab keine mittlere Maustaste ;)

    Ich habe mir das ganze aber mal angeschaut, kann nur sagen, das es wirklich sehr sehr gut aussieht :!: Das mit den Icons ist wirlich sehr schick!

  • aus einer textdatei drittletzte Zeile lesen

    • Lenny
    • 3. Januar 2010 um 03:15

    Ich denke er meinte:

    [autoit]


    MsgBox(64, 0, _readLineFromBack('test2.txt', 2))

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

    Func _readLineFromBack($filepath, $nr = 0)
    Local $aSplit = StringSplit(StringStripCR(FileRead($filepath)), @LF)
    If IsArray($aSplit) Then Return $aSplit[$aSplit[0] - $nr]
    Return -1
    EndFunc ;==>_readLastLine

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Problem mit InetGet Downloadpfad

    • Lenny
    • 1. Januar 2010 um 16:12
    [autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _Download($aFunc_Array = "")
    $Result = ""
    For $i2 = 0 To _GUICtrlListView_GetItemCount($pListView) - 1
    If _GUICtrlListView_GetItemChecked($pListView, $i2) Then ; wenn angehakt dann
    $sFileName1 = StringTrimLeft($aFunc_Array[$i2][4], StringInStr($aFunc_Array[$i2][4], "/", 1, -1));Der Dateiname des downlaods
    $sFileName2 = StringTrimLeft($aFunc_Array[$i2][5], StringInStr($aFunc_Array[$i2][5], "/", 1, -1));Der Dateiname des downlaods
    $string1 = StringStripWS($aFunc_Array[$i2][4], 8)
    $Result &= $string1 & @CRLF
    $string2 = StringStripWS(@ProgramFilesDir & '\oci\programmdateien\anleitungen\' & $sFileName1, 8)
    $Result &= $string2 & @CRLF
    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB6 (.NET CLR 2.0.50727)") ; User-Agent (Header) von AutoIt3 ändern, da beim Webhoster dieser gesperrt ist
    InetGet($string1, $string2, 1, 0);Datei wird gedownloadet
    If @error Then
    $Result &= "InetGet Error:" & @CRLF
    MsgBox(0, "Fehler", "Fehler beim 1. Download" & @CRLF)
    EndIf
    ;InetGet("http://oci.blpaced.net/1.jpg", "F:\1-1.jpg")

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

    ;InetGet($aFunc_Array[$i2][5], @ProgramFilesDir & '\oci\programmdateien\extra\' & $sFileName2,1,0) ;Datei wird gedownloadet
    ;If @error Then ConsoleWrite("Fehler beim 1. Download" & @CRLF)
    ClipPut($Result)
    MsgBox(0, "Quellpfad 1", $string1)
    MsgBox(0, "Quellpfad 2", $string2)

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

    ;$aFunc_Array[$i2][7]=InetGetSize($aFunc_Array[$i2][5])
    ;$aFunc_Array[$i2][8]=InetGetSize($aFunc_Array[$i2][6])
    ; ConsoleWrite('--' & @ProgramFilesDir & '\oci\programmdateien\anleitungen\' & $sFileName1 & '<<' & @CRLF)
    ; ConsoleWrite('--' & '"' & @ProgramFilesDir & '\oci\programmdateien\anleitungen\' & $sFileName1 & '"' & '<<' & @CRLF)

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

    EndIf
    Next ;= > weiter mit For

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

    EndFunc ;==>_Download

    [/autoit]

    Du kannst die Func ja mal genauso ausführen, und das Ergebnis (das in deiner Zwischenablage liegt) hier posten, bzw in dein Alten Post reineditieren!

  • Problem mit InetGet Downloadpfad

    • Lenny
    • 1. Januar 2010 um 15:46

    Hallo!

    Dann lass doch entweder

    [autoit]

    StringStripWS ( "string", flag )

    [/autoit]

    drüber laufen, oder prüfe ob am Anfang oder am Ende ein leerzeichen steht:

    [autoit]

    If StringLeft($URL, 1) = " " Then StringTrimLeft($URL, 1)
    If StringRight($URL, 1) = " " Then StringTrimRight($URL,1)

    [/autoit]

    Oder versuch dich an StringRegExpReplace, damit kannst du prüfen ob am Anfang oder Ende mehrere Leerzeichen stehen, und diese ersetzen.

    Wenn ich gleich Zeit hab kann ich dir die Exp auch machen (Ich muss grade mal Mittag essen :P)

    lG,
    Lenny

  • inetget() und bplaced.de

    • Lenny
    • 31. Dezember 2009 um 12:19

    Hallo!

    Ich denke

    [autoit]

    HttpSetUserAgent

    [/autoit]


    könnte dir helfen.

    Wenn nicht, guck einfach mal hier:
    https://autoit.de/index.php?page…aced#post129258

    lG,
    Lenny

  • Problem mit StringInStr

    • Lenny
    • 31. Dezember 2009 um 00:02
    [autoit]

    $test = "test | http://www.autoit.de| lol | xD"
    ;~ $test = " haha xD| lol | xD"

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

    $string = StringInStr($test, "www.")

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

    _button($test, 2)

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

    Func _button($text, $zeile)
    $string = StringSplit($text, "|")
    ConsoleWrite($string[$zeile])
    $instr = StringInStr($string[$zeile], "www.")
    ConsoleWrite($instr)
    If Not $instr Then
    MsgBox(0, "", $string[$zeile])
    Else
    ShellExecute(StringStripWS($string[$zeile], 8))
    EndIf
    EndFunc ;==>_button

    [/autoit]
  • StringRegEx ^

    • Lenny
    • 25. Dezember 2009 um 15:56

    Okay, vielen Dank :)

    Hilft mir wirlkich sehr, auch vielen Dank für die Links

    lG, Lenny

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™