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

Beiträge von Fresapore

  • Case abfrage bei unbekannten vielen controls

    • Fresapore
    • 13. Oktober 2011 um 20:23

    Also da könnte man den OnEventModus benutzen. Alternativ machst du eine Abfrage ähnlich wie du sie gemacht hast ohne Switche:

    [autoit]


    $nMsg = GUIGetMsg()
    For $i = 1 to $ini[0] Step +1
    If $nMsg = $pic[$i] Then run (IniRead ( "progs.ini", $ini[$i], "pfad", default )
    Next

    [/autoit]
  • Edit automatisch nach unten scrollen lassen.

    • Fresapore
    • 15. September 2011 um 23:05

    Das sollte hiermit machbar sein:

    [autoit]

    _GUICtrlEdit_LineScroll($hControl, 1, 0xfffffff)

    [/autoit]

    MfG,
    Fresapore

  • RapIt hat Geburtstag!

    • Fresapore
    • 15. September 2011 um 20:07

    Alles gute zum 16., und viel Spaß mit dem neuen Rechner ;) :party:

  • Input mit grauem Infotext - auch wenn Fokus auf Input

    • Fresapore
    • 15. September 2011 um 15:12

    Mit den von Autobert genannten Includes funktioniert es bei mir Problemlos. (Win 7 Pro 64-Bit)
    Allerdings ist bei mir ein komischer Effekt aufgetreten.
    Wenn man etwas eingibt, und man dann die eingegebenen Zeichen löscht, und neues eingibt, erscheinen beim mehrmaligen wiederholen zuvor eingegebene Zeichen, wenn man Backslash drückt..
    Sonst aber durchaus zu gebrauchen ;)

    MfG,
    Fresapore

  • skript mit einfachem input output feld verknüpfen

    • Fresapore
    • 14. September 2011 um 17:31

    Hab dir mal einen Ganz einfachen "Verschlüssler" gemacht, und ihn kommentiert.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 505, 192, 124)
    $Edit1 = GUICtrlCreateEdit("", 0, 24, 249, 265)
    $Label1 = GUICtrlCreateLabel("Klartext", 0, 0, 39, 17)
    $Edit2 = GUICtrlCreateEdit("", 256, 24, 249, 265)
    $Label2 = GUICtrlCreateLabel("Verschlüsselt", 256, 0, 66, 17)
    $Button1 = GUICtrlCreateButton("Verschlüsseln", 0, 288, 75, 25)
    $Button2 = GUICtrlCreateButton("Entschlüsseln", 256, 288, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1 ;Wenn Button1 gedrückt, dann
    $sText = GuiCtrlRead($Edit1) ;Inhalt des ersten Edits in $sText einlesen
    $sNewText = ''
    For $i = 0 to StringLen($sText) - 1 ;Von ersten bis zum letzten Zeichen
    $Chr = StringMid($sText, $i + 1, 1) ;Extrahiere den Buchstabe an der Position des Zählers
    $sNewText &= Chr(asc($chr)+ 1) ;Hänge am neuen String einen Buchstaben an, welcher dem Ascii-Zeichen des Alten + 1 entspricht
    GuiCtrlSetData($edit2, $sNewText) ;Setze $Edit2 auf den Inhalt des neu erstellten Strings
    Next
    Case $Button2 ;Das selbe für das Entschlüsseln
    $sText = GuiCtrlRead($Edit2)
    $sNewText = ''
    For $i = 0 to StringLen($sText) - 1
    $Chr = StringMid($sText, $i + 1, 1)
    $sNewText &= Chr(asc($chr)- 1)
    GuiCtrlSetData($edit1, $sNewText)
    Next
    EndSwitch
    Sleep(40)
    WEnd

    [/autoit]

    Wenn du fragen hast, einfach stellen. Ich denke, GuiCtrlSetData() und GuiCtrlRead() werden daran deutlich ;)
    Viel Spaß,

    Fresapore

  • skript mit einfachem input output feld verknüpfen

    • Fresapore
    • 14. September 2011 um 14:36

    In der While schleife musst du das Button-klicken abfangen.
    das geht in deinem Fall mit

    [autoit]

    Case $Button1

    [/autoit]


    vor dem

    [autoit]

    EndSwitch

    [/autoit]


    Des Weiteren brauchst du

    [autoit]

    GuiCtrlRead()

    [/autoit]


    und

    [autoit]

    GuiCtrlSetData()

    [/autoit]


    .
    Schau dir dazu mal die Hilfe-Beispiele an ;)

    MfG,
    Fresapore

  • Herausfinden wie viele Zeilen ein Textdokument hat

    • Fresapore
    • 13. September 2011 um 16:53

    Schau dir mal den Befehl

    [autoit]

    _FileCountLines()

    [/autoit]


    an.

    MfG,
    Fresapore

  • Fragen zum Einstieg

    • Fresapore
    • 12. September 2011 um 14:13

    Ich habe mich zwar noch nie mit der FF.au3 beschäftigt, aber:

    [autoit]

    _FFStart([$sURL = "about:blank"[, $sProfile = "default"[, $iMode = 1[, $bHide = False]]]])

    [/autoit]


    ist fast richtig:

    [autoit]

    _FFStart($sURL = "about:blank", $sProfile = "default", $iMode = 1, $bHide = False)

    [/autoit]


    Wenn in der Hilfe eine eckige Klammer vor einen Parameter gesetzt wird, bedeutet dies, das der Parameter optional ist.

    Bei dem ersten Versuch brauchst du das include gar nicht ;)
    Ausserdem muss der Pfad zur *.exe nicht in seperaten ' ' stehen.
    Viel Spaß beim Rumprobieren :)

    MfG,
    Fresapore

  • Mausklicklänge bestimmen

    • Fresapore
    • 10. September 2011 um 22:02

    name22: Stimmt, das würde funktionieren, aber dadurch ist es schwierig, die Klicklänge auf ein Event anzupassen...

  • Mausklicklänge bestimmen

    • Fresapore
    • 10. September 2011 um 20:10

    Meinst du

    [autoit]

    MouseDown()

    [/autoit]


    und

    [autoit]

    MouseUp()

    [/autoit]

    Wofür brauchst du das?

    Edit: Nicht genau genug gelesen. Mit Controlclick geht das afaik nicht, du müsstest die Position des Controls rausfinden und dann eben mit mousedown arbeiten..
    MfG,
    Fresapore

  • Funktionen in guictrlcreateTab starten?

    • Fresapore
    • 8. September 2011 um 22:46

    Du musst zuerst opt('GUIOnEventMode', 1) schreiben.
    Ausserdem verträgt sich dieser Modus nicht mit dem GuiGetMsg()...
    Mit Arrays könnte man den Code erheblich übersichtlicher und kürzer machen ;)

    MfG,
    Fresapore

  • Tastenkombination !?

    • Fresapore
    • 28. August 2011 um 19:31

    Macht mein letztes doch, ausser dass du die Buchstaben nicht in ne Inputbox schreiben kannst, sondern in ner Combo auswählen kannst. ?(
    Das sollte aber ja nicht so schwer zu verändern sein.

  • Tastenkombination !?

    • Fresapore
    • 28. August 2011 um 15:56

    Ist jetzt nur so hingeklatscht, aber vllt ist ess das was du meinst:

    Spoiler anzeigen
    [autoit]

    #include <ComboConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <misc.au3>

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

    Global $hex = "", $hex2 = ""
    Guicreate("Tastenkombination", 200, 100)
    $Combo1 = GuiCtrlCreateCombo("a", 0, 0, 50, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, "b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z")
    GuiCtrlCreateLabel("+", 100, 0)
    $Combo2 = GuiCtrlCreateCombo(" ", 150, 0, 50, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z")
    $Button1 = GuiCtrlCreateButton("Übernehmen", 0, 50, 200, 50)
    Guisetstate()

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

    While 1
    sleep(40)
    $msg = GuiGetMsg()
    Switch $msg
    Case -3
    Exit

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

    Case $Button1
    _SetHk()
    EndSwitch
    If Not $hex = "" Then
    If _Ispressed($hex) Then
    If Not $hex2 = "" Then
    If _IsPressed($hex2) Then _test()
    Else
    _test()
    EndIf
    EndIf
    EndIf
    WEnd

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

    Func _SetHk()
    $let = GuiCtrlRead($Combo1)
    $asc = Asc($let) - 32
    $hex = Hex($asc)
    $let = GuiCtrlRead($Combo2)
    If $let = " " Then
    $hex2 = ""
    Return
    EndIf
    $asc = Asc($let) - 32
    $hex2 = Hex($asc)
    EndFunc

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

    Func _test()
    MsgBox(0, "test", "test")
    EndFunc

    [/autoit]

    Ich glaub ich seh den Wald vor lauter Bäumen nicht..:D

  • Tastenkombination !?

    • Fresapore
    • 28. August 2011 um 15:34

    Hm, normale Tastenkombinationen basieren eigentlich auf einer Kombination aus {Shift;Alt;Win;Strg} + belibige Taste.
    Und solche Kombinationen lassen sich recht einfach mit Hotkeyset übersetzen:

    Spoiler anzeigen
    [autoit]

    #include <ComboConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Global $hk = ""
    Guicreate("Tastenkombination", 200, 100)
    $Check1 = GUICtrlCreateCheckbox("Shift", 0, 0, 100, 25)
    $Check2 = GUICtrlCreateCheckbox("Strg", 0, 25, 100, 25)
    $Check3 = GUICtrlCreateCheckbox("Win", 0, 50, 100, 25)
    $Check4 = GUICtrlCreateCheckbox("Alt", 0, 75, 100, 25)
    GuiCtrlCreateLabel("+", 100, 0)
    $Combo1 = GuiCtrlCreateCombo("a", 150, 0, 50, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL))
    GUICtrlSetData(-1, "b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|1|2|3|4|5|6|7|8|9|0")
    $Button1 = GuiCtrlCreateButton("Übernehmen", 100, 50, 100, 50)
    Guisetstate()

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

    While 1
    sleep(40)
    $msg = GuiGetMsg()
    Switch $msg
    Case -3
    Exit

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

    Case $Button1
    _SetHk()
    EndSwitch
    WEnd

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

    Func _SetHk()
    HotkeySet($hk)
    $hk = ""
    If GUICtrlRead($Check1) = $GUI_CHECKED Then $hk &= "+"
    If GUICtrlRead($Check2) = $GUI_CHECKED Then $hk &= "^"
    If GUICtrlRead($Check3) = $GUI_CHECKED Then $hk &= "#"
    If GUICtrlRead($Check4) = $GUI_CHECKED Then $hk &= "!"
    $hk &= GuiCtrlRead($Combo1)
    HotkeySet($hk, "_test")
    EndFunc

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

    Func _test()
    MsgBox(0, "test", "test")
    EndFunc

    [/autoit]

    MfG,
    Fresapore

    Edit: Letzten Post übersehen :pinch:
    Aber ich sehe den Sinn auch nicht so ganz..

    Edit2:
    Wenn es sich nur um Buchstaben handelt: Man kann dann aber mit asc() den Ascii-Wert jedes Buchstabens erhalten, den mittels Hex() umrechnen, welcher dem "_Ispressed"-Code entspricht.

  • Binary & Filewrite

    • Fresapore
    • 28. August 2011 um 01:45
    [autoit]

    $i=1
    $data=0
    $ori=fileread("NormalerTextt.txt")
    $bin=String(Binary($ori))
    $data=$bin
    filewrite("BinaryText"&$i&".txt", $data)
    msgbox(0,"",$data)
    $i=$i+1

    [/autoit]

    Binary bleibt Binary, daher in String umwandeln ;)

    MfG,
    Fresapore

  • Bilder mit schwarzen Kreisen darstellen

    • Fresapore
    • 19. August 2011 um 16:52

    hi,
    Danke für das Lob und die positive Kritik! :)
    UEZ: auch sehr geiles kleines prog ;)
    @BB: um unseres mit rechtecken zu machen muss man auch nur eine zeile ändern ;)
    Könnten wir bei einer evtl.nächsten Version einbauen..

    MfG;
    Fresapore

  • Bilder mit schwarzen Kreisen darstellen

    • Fresapore
    • 18. August 2011 um 03:14

    Hallo @all,
    RapIt und ich haben heute mal die Idee gehabt, beliebige Bilder zu nehmen, und sie nur durch verschieden große, schwarze Kreise darzustellen.
    Das Ergebnis ist unserer Meinung nach sehr interessant geworden, da es nur schwarz/weiß ist:
    [Blockierte Grafik: http://dl.dropbox.com/u/24291173/monalisa.bmp][Blockierte Grafik: http://dl.dropbox.com/u/24291173/monalisa_low.bmp][Blockierte Grafik: http://dl.dropbox.com/u/24291173/monalisa_mid.bmp][Blockierte Grafik: http://dl.dropbox.com/u/24291173/monalisa_high.bmp][Blockierte Grafik: http://dl.dropbox.com/u/24291173/monalisa_veryhigh.bmp]

    [Blockierte Grafik: http://dl.dropbox.com/u/24291173/auge.bmp][Blockierte Grafik: http://dl.dropbox.com/u/24291173/auge_new2.bmp]

    Man kann zwischen verschieden Präzisionen wählen,
    aber probiert es selbst aus!

    Code
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstants.au3>
    #include <GDIP.au3>
    #include <ComboConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $hBitmap, $Precision = 5, $hBrush, $hGraphic, $hBitmap2, $hBuffer
    _GDIPlus_Startup()

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

    $hGui = GUICreate("Bild-Wandler", 400, 100, 192, 124)
    $hLoad = GUICtrlCreateButton("Lade Bild", 0, 0, 100, 50)
    $hConvert = GUICtrlCreateButton("Konvertiere", 100, 0, 100, 50)
    $hSave = GUICtrlCreateButton("Speichern", 200, 0, 100, 50)
    GUICtrlCreateLabel("Präzision:", 300, 0, 100, 25)
    $hCombo = GuiCtrlCreateCombo("Mittel", 300, 25, 100, 25, $CBS_DROPDOWNLIST)
    GuiCtrlSetData(-1, "Niedrig|Genau|Sehr Genau")
    $hProgress = GuiCtrlCreateProgress(0, 50, 400, 50)
    GUISetState(@SW_SHOW)

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

    GuiCtrlSetState($hConvert, $GUI_DISABLE)
    GuiCtrlSetState($hSave, $GUI_DISABLE)
    $hGui2 = GuiCreate("Anzeige", 100, 100, -1, -1, $WS_BORDER, -1, $hGui)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000)

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

    While 1
    $nMsg = GuiGetMsg($hGui)
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BitmapDispose($hBitmap2)
    _GDIPlus_BrushDispose($hBrush)
    Exit
    Case $hLoad
    $sOpen = FileOpenDialog("Wähle Bild", @ScriptDir, "Bild (*.bmp)")
    $hBitmap = _GDIPlus_BitmapCreateFromFile($sOpen)
    GuiCtrlSetState($hSave, $GUI_DISABLE)
    If $hBitmap = 0 Then
    MsgBox(0, "Fehler", "Fehler beim Laden des Bilds")
    GuiCtrlSetState($hConvert, $GUI_DISABLE)
    Else
    $iHeight = _GDIPlus_ImageGetHeight($hBitmap)
    $iWidth = _GDIPlus_ImageGetWidth($hBitmap)
    WinMove("Anzeige", "", Default, Default, $iWidth, $iHeight)
    GuiSetState(@SW_SHOW, $hGui2)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui2)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
    GuiCtrlSetState($hConvert, $GUI_ENABLE)
    EndIf
    Case $hConvert
    _GDIPlus_GraphicsClear($hGraphic, 0xFFFFFFFF)
    $hBitmap2 = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap2)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    _GDIPlus_GraphicsClear($hBuffer, 0xFFFFFFFF)
    GuiCtrlSetstate($hProgress, 0)
    Switch GuiCtrlRead($hCombo)
    Case "Niedrig"
    $Precision = 18
    Case "Mittel"
    $Precision = 12
    Case "Genau"
    $Precision = 8
    Case "Sehr Genau"
    $Precision = 5
    EndSwitch
    For $i = 0 to $iWidth/$Precision - 1
    For $j = 0 to $iHeight/$Precision - 1
    $Grey = _GetGrey($i * $Precision, $j * $Precision, $Precision, $Precision)
    _GDIPlus_GraphicsFillEllipse($hBuffer, $i * $Precision + 0.5 * ($precision - ((255 - $Grey) / (255 / $Precision))), $j * $precision + 0.5 * ($precision - ((255 - $Grey) / (255 / $Precision))), (255 - $Grey) / (255 / $Precision), (255 - $Grey) / (255 / $Precision), $hBrush)
    Next
    GuiCtrlSetData($hProgress, ($i+1) * 100 / ($iWidth/$Precision))
    Next
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap2, 0, 0, $iWidth, $iHeight)
    GuiCtrlSetData($hProgress, 100)
    GuiCtrlSetState($hSave, $GUI_ENABLE)
    Case $hSave
    $sSave = FileSaveDialog("Speichern", @ScriptDir, "Bild (*.bmp)")
    If Not $sSave = "" Then
    If StringRight($sSave, 4) <> ".bmp" Then $sSave &= ".bmp"
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap2, 0, 0, $iWidth, $iHeight)
    If _GDIPlus_ImageSaveToFile($hBitmap2, $sSave) Then
    MsgBox(0, "Speichern", "Erfolgreich gespeichert!")
    Else
    MsgBox(0, "Speichern", "Speichern fehlgeschlagen!")
    Endif
    EndIf
    EndSwitch
    WEnd

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

    Func _GetGrey($iX, $iY, $Width, $Height)
    Local $PixCol, $Count = 0
    For $i = $iX to $Width + $iX - 1
    For $j = $iY to $Height + $iY - 1
    $PixCol = StringTrimLeft(Hex(_GDIPlus_BitmapGetPixel($hBitmap, $i, $j)), 2)
    $Count += Dec(StringLeft($PixCol, 2)) + Dec(StringMid($PixCol, 3, 2)) + Dec(StringRight($PixCol, 2))
    Next
    Next
    Return $Count / ($Width*$Height) / 3
    EndFunc

    [/autoit]


    Die GDIP.au3 wird benötigt!

    Weitere Beispiele und der Source im Anhang!

    Viel Spaß damit,
    RapIt&Fresapore

  • Bubble Blast, v 0.1

    • Fresapore
    • 16. August 2011 um 01:11

    Ja danke stimmt, mit der Kantenglättung werde ich einbauen.
    Oh, den Speicher für die Brushes freizugeben hab ich übersehen :rolleyes:
    Um Grafik kümmer ich mich später, wenn der Rest fertig ist...
    Danke für den Report!

    MfG,
    Fresapore

  • Bubble Blast, v 0.1

    • Fresapore
    • 15. August 2011 um 23:07

    Ja natürlich Ôo
    jeder darf das verwenden/kopieren wie er will :)
    (Ist ja im Endeffekt auch nachgemacht ;)

  • Bubble Blast, v 0.1

    • Fresapore
    • 15. August 2011 um 22:18

    Wenn du Levels schreiben möchtest, immer gerne, vllt mache ich dann ein Levelpack, welches man dann so durchspielen kann ;)
    Das Coden kann ich machen, wenn ich wieder n bisschen Zeit & Lust habe ;)

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™