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

Beiträge von Eugen

  • GUIOnEventMode

    • Eugen
    • 27. September 2015 um 16:47

    hallo chip


    Bitte keine Vorurteile.

    Wenn es den Anschein hatte das es ein Bot wird so tut es mir leid und war nicht meine Absicht.
    Es wird kein Bot und hat auch nichts mit irgendeinem Spiel zu tun.


    Sinn der Sache ist eine geplante Navigation auf einer später eingescannten Straßenkarte, um den besten Weg zum Ziel zu finden.
    Daher auch der Vergleich mit der Maus und dem Labyrinth.

    Die Maus ist im real ein Quadrocopter mit Kamera.
    Am Ziel angelangt soll die Kamera Fotos machen. (Natürlich alles im Ges. Rahmen)
    Auch während des Anfluges sollen die aufgenommen Bilder an die Gui gesendet und ausgewertet werden um Hindernisse auszuweichen. (ist noch Zukunft)

    Um weitere Ideen zu erklären würde es den Beitrag sprengen, da ich erst am Programmanfang stehe.
    „Quo vadis“ = :whistling: ...was möglich ist!
    mfg
    Eugen
    Im Übrigen hasse ich Bot- Spieler. :cursing:

  • GUIOnEventMode

    • Eugen
    • 26. September 2015 um 18:48

    Die Koordinaten geben mir nur an welcher Label angesprochen wird.
    Das Bild in der Gui ist ein Foto vom meinen zweiten Bildschirm
    Über meinen zweiten Bildschirm läuft eine Maus im einem Labyrinth.
    Von dem Labyrinth- Fenster mache ich ein Foto und lade dieses in die Gui.
    Durch die Überlagerung mit den durchsichtigen Labeln, sehe ich in welchem Planquadrat sich die Maus befindet und in welche Richtung frei ist.(Sollte dann automatisch den Weg finden)
    Dazu brauche ich Imagesearch.
    Anbei schicke ich ein Foto von dem zweiten Bildschirm der runde Punkt ist die Maus.

    Bilder

    • temp.jpg
      • 10,11 kB
      • 140 × 89
  • GUIOnEventMode

    • Eugen
    • 26. September 2015 um 17:35

    Hallo Raupi
    Genau so dachte ich mir das.
    In diesem Falle bis I
    Waagrecht bis 14
    Senkrech bis A-I
    Der Klick liefert einen Rückgabewert, der weiter verarbeitet wird und dann einen Bezug auf die Position am Bildschirm darstellt.
    Ausgelöst wird der Klick durch Imagesearch im Guibereich.
    Maus im Labyrinth den Weg finden kommt dem Projekt sehr nahe.
    Liebe Grüsse
    Eugen
    PS:Die Functionen "_Image_laden" und "_Image_sichern" dienen nur zu testen.

  • GUIOnEventMode

    • Eugen
    • 26. September 2015 um 15:58

    Hallo Kanashius
    Zu besserem Verständnis einen Programmausschnitt zum testen.
    Habe es auch versucht etwas zu Auskommentieren :rolleyes:

    C
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ColorConstants.au3>
    #include <GDIPlus.au3>
    #Include <Array.au3>
    #include <ScreenCapture.au3>
    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("asd",281, 180, 1, 1)
    $Pic1 = GUICtrlCreatePic("", 0, 0, 0, 0, $WS_EX_LAYERED)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    WinSetOnTop($Form1, "",1)
    ;---------------------
    Dim $aWerte[10][15]
    Dim $Adresse[129][3]
    dim $ww
    Dim $F
    Dim	$Zeile="ABCDEFGHI"
    $ss=0
    _Labelgitter()
    _ArrayDisplay($aWerte)
    ;---------------------
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    	EndSwitch
    WEnd
    ;-----------------------
    Func _Labelgitter()
    	Local $i=0
    	Local $y=0
    _Image_sichern();SPEICHERT EINE STELLE VOM BILDSCHIRM
    $ww=ControlGetPos("","",$Pic1)
    _Image_laden($ww);HOLT DEN GESPEICHERTEN AUSSCHNITT IN $PIC1
    
    
    $FeldH=Round(($ww[3]/9),0)*2 ;Label Aufteilung Senkrecht
    $FeldB=Round(($ww[2]/14),0)*2 ;Label Aufteilung waagrecht
    
    
    ;------- LABEL ERSTELLEN --------
    	For $z=1 To 9;$FeldAnz Senkrecht
    		For $x=1 To 14;$FeldAnz Waagrecht
    ;DA WIRD DER LABELNAME ERSTELLT
    			 $F= GUICtrlCreateLabel("", $i, $y, $FeldB, $FeldH, $SS_SUNKEN)
    				GUICtrlSetBkColor(-1,  $GUI_BKCOLOR_TRANSPARENT)
    ;BEI KLICK AUF EIN LABEL KOMMT DIE RÜCKMELDUNG
    				GUICtrlSetOnEvent($F,"_Pos_melden" ) 
    				$aWerte[$z][$x]=$F
    		$i=$i+$FeldB
    		Next
    		$i=0
    		$y=$y+$FeldB
    	Next
    ;------- LABEL ERSTELLEN ENDE --------
    EndFunc
    ;--------------
    Func _Pos_melden()
    	;$Bereich_X="284,389,487,589,687,785,890"
    	;$Bereich_Y="394,494,594,694"
    	;$aZeile= StringSplit($Zeile,"")
    	$rr=(@GUI_CtrlId)
    	ToolTip("Klick auf Label " &$rr )
    EndFunc
    ;--------------
    Func _Image_laden($ww)
    	GUICtrlSetImage ($Pic1, @Scriptdir&"\temp.jpg","",0)
    	GUICtrlSetPos($Pic1,0,0,$ww[2]*2, $ww[3]*2);BILD WIRD 2X VERGÖSSERT
    EndFunc
    ;-----------------------
    Func _Image_sichern()
    	$hBMP = _ScreenCapture_Capture("",  977, 120,1116,208)
    	_ScreenCapture_SaveImage (@Scriptdir & "\temp.jpg", $hBMP,True)
    	GUICtrlSetImage ($Pic1, @Scriptdir&"\temp.jpg","",0)
    _WinAPI_DeleteObject ($hBMP)
    EndFunc
    ;-----------------------------
    Alles anzeigen


    Es wird eine Matrix mit 126 Label erstellt, welche über ein Bild ($Pic1) liegt.
    Mit anklicken eines Label bekomme ich die Rückmeldung welches Planquadrat gemeint ist.
    Im Moment bekomme sich nur die Nummer 4 bis 129

    Die Bezeichnung ist aber nicht praktikabel da es nichts über die Zeilenposition aussagt.
    Ideal währe zB. A5 , G 93 , …usw.
    Daher meine Frage ob beim erstellen der Label in der Laufzeit, man einen eigenen Namen vergeben kann.
    Grüsse Eugen

    Ach ja die Label sollten sich mit der neuen Variable auch ansprechen lassen.
    So wie jetzt mit:
    GUICtrlSetBkColor(8, $COLOR_RED)

  • GUIOnEventMode

    • Eugen
    • 26. September 2015 um 06:40

    hallo autoBert
    Danke dir, hat gepasst :thumbup:
    Eugen


    Noch eine Frage
    Kann man Control’s (Label) während der Laufzeit umbenennen? ?(

    Edit Raupi: Alten Beitrag wieder hergestellt. Eugen, es ist nicht besonders nett, wenn du einen Teil der Frage wegeditierst.
    Der nächste Post ist die Antwort auf deine Frage hat.

  • GUIOnEventMode

    • Eugen
    • 25. September 2015 um 16:55

    Hallo Forum
    Wie kann ich abfragen ob die „GUIOnEventMode“ aktiviert ist ?
    Danke für Eure Hilfe
    Eugen

  • events mit parameter?

    • Eugen
    • 17. September 2015 um 21:43

    Danke, Danke :thumbup:
    Das war das Richtige
    jetzt ist es perfekt :party:

  • events mit parameter?

    • Eugen
    • 17. September 2015 um 20:03

    Zu früh gefreut.
    Es hat zwar geklappt aber doch nicht. :S
    Nach dem ich ein Bild.bmp in den Picture (Pic1) als Hintergrund eingefügt hatte konnte ich das Label-Event nicht mehr ausführen.
    Wisst Ihr vielleicht dazu einen Tip?

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ColorConstants.au3>
    #include <GDIPlus.au3>
    #Include <Array.au3>
    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("",250, 250, 100, 100)
    $Pic1 = GUICtrlCreatePic("", 0, 0, 0, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Dim $aWerte[10][15]
    	$FeldAnzW= 14
    	$FeldAnzS=9
    	$FeldB=15
    	$F=0
    	$GuiX=$FeldB*$FeldAnzW
    	$GuiY=$FeldB*$FeldAnzS
    	WinMove ($Form1,"",10,20,$GuiX+8,$GuiY+26)
    _Labelgitter()
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    	EndSwitch
    WEnd
    ;-----------------------
    Func _Labelgitter()
    	Local $i=0
    	Local $y=0
    
    	GUICtrlSetImage ($Pic1, @Scriptdir&"\temp.bmp","",0)
    	GUICtrlSetPos($Pic1,0.2,0.2,$GuiX+2,$Guiy+2)
    	For $z=1 To $FeldAnzS
    		For $x=1 To $FeldAnzW
    			$F= GUICtrlCreateLabel("", $i, $y, $FeldB, $FeldB, $SS_SUNKEN)
    				GUICtrlSetBkColor(-1,  $GUI_BKCOLOR_TRANSPARENT)
    				GUICtrlSetOnEvent($F,"_Pos_melden" )
    				$aWerte[$z][$x]=$F
    		$i=$i+$FeldB
    		Next
    		$i=0
    		$y=$y+$FeldB
    	Next
    	;GUICtrlSetBkColor ( 44, $COLOR_RED )
    _ArrayDisplay($aWerte)
    EndFunc
    ;-----------------------
    Func _Pos_melden()
    	ToolTip("...")
    	ToolTip(@GUI_CtrlId)
    EndFunc
    Alles anzeigen

    Nach Grafik setzen in Zeile 34-35, ist der Label-Evend nicht erreichbar. :huh:

    Zum testen sende ich auch die besagte Grafik im Anhang

    Dateien

    temp.bmp 39 kB – 275 Downloads
  • events mit parameter?

    • Eugen
    • 17. September 2015 um 15:35

    Einen großen Dank an chip und Mars
    Das war genau das richtige! :klatschen:
    Ich sollte die Hilfe genauer durchlesen, da ist es auch unter „GUICtrlSetOnEvent“ beschrieben.
    Zum Glück gibt es da ein tolles Forum mit super Mitglieder :thumbup:
    Danke euch beiden
    Eugen

  • events mit parameter?

    • Eugen
    • 17. September 2015 um 10:32

    Hallo Forum

    Ich habe 124 Label’s welche alle ein Klick-Event hat.

    Frage; ist es möglich dem Event-Verweis, Parameter mit zu geben? ?(
    Also zb:

    Code
    GUICtrlSetOnEvent($F,_Pos_melden($F))
    ;---------------------------------
    Func _Pos_melden($F)
    ToolTip($F)
    EndFunc

    Das es mit einem jeweils einzelnen Verweis auf die dafür definierte Function klappt ist mir bekannt.

    Dafür erscheinen mir aber Verweise für 124 Label’s zu aufwendig, da ich nur den Namen bzw. Position von dem angeklickten Label bräuchte.
    Info: Name = Position s. “ _ArrayDisplay($aWerte)“


    Danke für eure Hilfe
    Eugen


    Zum Testen:

    Spoiler anzeigen


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ColorConstants.au3>
    #include <GDIPlus.au3>
    #Include <Array.au3>
    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1",250, 250, 100, 100)
    ;$Pic1 = GUICtrlCreatePic("", 0, 0, 0, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Dim $aWerte[10][15]
    $FeldAnzW= 14
    $FeldAnzS=9
    $FeldB=15
    $GuiX=$FeldB*$FeldAnzW
    $GuiY=$FeldB*$FeldAnzS
    WinMove ($Form1,"",10,20,$GuiX+8,$GuiY+26)


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


    EndSwitch
    WEnd
    ;-----------------------
    Func _Labelgitter()
    Local $i=0
    Local $y=0
    ;GUICtrlSetImage ($Pic1, @Scriptdir&"\temp.bmp","",0)
    ;GUICtrlSetPos($Pic1,0.2,0.2,$GuiX+2,$Guiy+2)
    For $z=1 To $FeldAnzS
    For $x=1 To $FeldAnzW
    $F= GUICtrlCreateLabel("", $i, $y, $FeldB, $FeldB, $SS_SUNKEN)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetOnEvent($F,"_Pos_melden") ;DAS SOLLTE NOCH EIN PARAMETER MITTGEGEBEN WERDEN
    $aWerte[$z][$x]=$F
    $i=$i+$FeldB
    Next
    $i=0
    $y=$y+$FeldB
    Next
    ;GUICtrlSetBkColor ( 23, $COLOR_RED )
    _ArrayDisplay($aWerte)


    EndFunc
    ;-----------------------
    Func _Pos_melden()
    ToolTip("...")
    EndFunc

  • _ScreenCapture_Capture in Zwischenablage

    • Eugen
    • 26. März 2015 um 20:24
    Zitat von Andy

    PushTheButton, ermöglicht Mausklick auf sonst nicht erreichbare Grafiken UPDATE 1.36

    hallo
    gefunden
    Da hast du ein tolles Programm erstellt, super auskommentiert. :thumbup:
    Darf ich einige Teile rauskopieren und bei mir verwenden? Dein Autoren Name bleibt natürlich erhalten.
    An dem werde ich eine Weile zu beißen haben da ich es auch verstehen will. <X
    Danke dir :P
    Eugen

  • _ScreenCapture_Capture in Zwischenablage

    • Eugen
    • 26. März 2015 um 13:06
    Zitat von Andy

    Zeig mal dein Script, damit klar wird, was du überhaupt vorhast.


    Hallo Andy
    Hat etwas gedauert da ich das Skript erst etwas aufbereiten musste damit es andere auch lesen können.

    Also das ganze soll ein Werkzeug für Bild - Positionierung werden, welche Bildausschnitte und Positionen in einer Liste abspeichert.
    Diese Liste kann dann mit PixelSearch od. ImageSearch weiter verwendet werden
    Auch Verarbeitung mit Kadmos (OCR) von IrfanView ist irgendwo in meinem Hinterkopf. :whistling:
    Der Skript - Bereich Bildausschnitte habe ich raus genommen da diese einwandfrei funktionieren.
    Nach Fertigstellung werde ich selbst verständlich für alle das ges. Skript ins Forum stellen.
    Bitte um Nachsicht bei meinem Programmierstiel da ich Anfänger bin.
    Ich habe so weit wie möglich es dokumentiert.

    So jetzt aber zu meinem Problem.
    Siehe Skript „Func _maus_Pos_Bild()“ ?(

    Ich habe ein Picurebox welche ich als Lupe benutze um die Maus auf einen Pixel genau zu positionieren. (Pic1)
    Das Bild bekomme ich aus der Zwischenablage ($bak) über „_ScreenCapture_Capture“
    Das Problem dabei, dieses Bild flackert und auch das Fadenkreuz verschwindet. (Bedingt durch die Schleife)
    Die Lösung denke ich, ist eine Kopie von dem Bildausschnitt wo man das Fadenkreuz direkt reinzeichnet und dann erst in der Picturebox anzeigt.
    Das ist aber um einige Nummern zu groß für einen Anfänger wie mich.


    C
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #Include <Array.au3>
    #include <Misc.au3>
    #include <GuiEdit.au3>
    #include <GUIListBox.au3>
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <GUIListBox.au3>
    #include <File.au3>
    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>
    #include <ClipBoard.au3>
    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 409, 212, 710, 5)
    ;
    $Group1 = GUICtrlCreateGroup("", 1, 0, 156, 107,$ES_NUMBER)
    $_LS = GUICtrlCreateInput("", 87, 13, 60, 21)
    ;GUICtrlSetOnEvent($_LS,"_Fenster_endern")
    $_OS = GUICtrlCreateInput("", 87, 33, 60, 21)
    ;GUICtrlSetOnEvent($_OS,"_Fenster_endern")
    $_B= GUICtrlCreateInput("", 87, 53, 60, 21)
    ;GUICtrlSetOnEvent($_B,"_Fenster_endern")
    $_H = GUICtrlCreateInput("", 87, 73, 60, 21)
    ;GUICtrlSetOnEvent($_H ,"_Fenster_endern")
    ;
    $Label1 = GUICtrlCreateLabel("Linke Kante", 3, 15, 84, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Oberkante", 10, 34, 75, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("Breite", 41, 55, 41, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Höhe", 44, 76, 41, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Innere Lichte", 161, 6, 92, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $labtxt = GUICtrlCreateLabel("", 161, 24, 51, 40)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    ;
    ;
    $List1 = GUICtrlCreateList("", 290, 20,100, 145,BitOR($LBS_NOTIFY,$WS_HSCROLL,$WS_VSCROLL,$WS_BORDER))
    GUICtrlSetOnEvent($List1,"_Pos_aus_zuruckschreiben")
    ;
    $Button1 = GUICtrlCreateButton("Übernehmen =>", 180, 60, 91, 23)
    GUICtrlSetOnEvent($Button1, "_Pos_aus_input_ubernehmen")
    $Button2 = GUICtrlCreateButton("löschen", 219, 85, 52, 23)
    GUICtrlSetOnEvent($Button2, "_Makierung_loschen")
    $Button3 = GUICtrlCreateButton("Speichern", 292, 160, 100, 23)
    GUICtrlSetOnEvent($Button3, "Datei_speichern")
    $Button4 = GUICtrlCreateButton("Laden", 292, 185, 100, 23)
    GUICtrlSetOnEvent($Button4, "Datei_laden")
    $Button5 = GUICtrlCreateButton("Alles", 180, 85, 40, 23)
    GUICtrlSetOnEvent($Button5, "_Alles_Loeschen")
    $Button6 = GUICtrlCreateButton("Bild Koordinaten", 290, 2,100, 18)
    ;GUICtrlSetOnEvent($Button6, "_Maus_Bild")
    ;
    
    
    $Pic1 = GUICtrlCreatePic("", 1, 110, 70, 70,BitOR( $GUI_DOCKSIZE,$WS_BORDER, $WS_EX_CLIENTEDGE))
    $Graphic1 = GUICtrlCreateGraphic(1, 110, 70, 70);Fadenkreuz
    GUICtrlSetState ( $Graphic1,$GUI_ONTOP )
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 34, 12)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 34, 30)
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 14, 32)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 32, 32)
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 36, 32)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 54, 32)
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 34, 35)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 34, 53)
    
    
    ;$Farbe = GUICtrlCreateGraphic(163, 110, 23, 21, BitOR($GUI_SS_DEFAULT_GRAPHIC,$SS_SUNKEN))
    ;
    ;$Sicherung = GUICtrlCreateLabel("", 1, 1, 36, 10)
    GUICtrlSetColor(-1, 0xC0C0C0)
    
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;===========================
    HotKeySet ("!a","_Pos_ubernehmen");schreibt von Input in die Listbox
    HotKeySet("!{-}", "_wert_vermindern") ;Inhalt des Input wird um 1 vermindern
    HotKeySet("!{+}", "_wert_erhohen");Inhalt des Input wird um 1 erhöhen
    HotKeySet("q", "_exit")
    _maus_Pos_Bild();=========================== Start ===========================
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
    
        EndSwitch
    WEnd
    
    
    ;-------------------------
    Func _maus_Pos_Bild(); UND DAS IST MEIN PROPLEM
    
    
    ClipPut("")
    _ClipBoard_GetData ($CF_BITMAP)
    $bak=ClipPut(1)
    While 1
        $M_pos=MouseGetPos()
    
    
        _GUICtrlEdit_SetText($_LS,$M_pos[0]);schreibt in Inbutbox $_LS
        _GUICtrlEdit_SetText($_OS,$M_pos[1]);schreibt in Inbutbox $_OS
        _ScreenCapture_Capture($bak, $M_pos[0],$M_pos[1], $M_pos[0]+10,$M_pos[1]+10,0);Bildauschnitt +10
        ;_WinAPI_RedrawWindow($Graphic1)
        GUICtrlSetImage ( $Pic1,ClipGet() ,"")
        _WinAPI_DeleteObject ( $bak )
    WEnd
    EndFunc
    ;-------------------------
    Func _Pos_aus_input_ubernehmen(); über Button1 "Übernehmen =>" -schreibt von Input in die Listbox
        WinWaitActive($Form1)
        Local $txt=GuiCtrlRead($_LS)& "," & GuiCtrlRead($_OS)
        GuiCtrlSetData($List1,$txt)
    EndFunc
    ;--------------------------
    Func _Pos_ubernehmen();HotKeySet ("!a","_Pos_ubernehmen");schreibt von Input in die Listbox
        $pos = MouseGetPos()
        Local $txt=$pos[0]& "," &$pos[1]
        GuiCtrlSetData($List1,$txt)
    
    
    EndFunc
    ;-------------------------
    Func _wert_vermindern();HotKeySet("!{-}", "_wert_vermindern") ;Inhalt des Input wird um 1 vermindern
        ; zuerst Input auswahl und dann Maus auf position
    Local $a,$b
    $b = ControlGetFocus($form1)
    $a = ControlCommand($form1,"","","GetLine","")
    $a=$a-1
    If $a< 0 Then $a = 0
    ControlSetText("", "", $b,$a)
    _Fenster_endern()
    EndFunc
    ;------------------------
    Func _wert_erhohen();HotKeySet "!{+}", "_wert_erhohen"-Inhalt des Input wird um 1 erhöhen
        ; zuerst Input auswahl und dann Maus auf position
    $b = ControlGetFocus($form1)
    $a = ControlCommand($form1,"","","GetLine","")
    $a=$a+1
    ControlSetText("", "", $b,$a)
    _Fenster_endern()
    EndFunc
    ;-------------------------
    Func _Fenster_endern()
    
    
        $txt1=GuiCtrlRead($_LS)
        $txt2=GuiCtrlRead($_OS)
        ;$txt3=GuiCtrlRead($_B)
        ;$txt4=GuiCtrlRead($_H)
        ;WinMove($fenster,"",$txt1,$txt2,$txt3,$txt4)
        MouseMove($txt1,$txt2)
    
    
    EndFunc
    ;--------------------------
    Func _Pos_aus_zuruckschreiben(); schreibt von der Listbox in Inputbox
        WinWaitActive($Form1)
         Local $txt=_GUICtrlListBox_GetText($List1, _GUICtrlListBox_GetCurSel($List1))
        If $txt <>0 Then
            $txt = StringSplit($txt , ",")
            _GUICtrlEdit_SetText($_LS,$txt[1])
            _GUICtrlEdit_SetText($_OS,$txt[2])
            $txt=""
        EndIf
        _Fenster_endern()
    EndFunc
    ;--------------------------
    Func _Makierung_loschen(); löscht ausgewählte Zeile aus der Listbox
        $iSel = _GUICtrlListBox_GetCurSel($List1)
        _GUICtrlListBox_DeleteString($List1, $iSel)
    EndFunc
    ;--------------------------
    Func _Alles_Loeschen(); über Button5 "Alles" -Löscht Inhalt von Listbox
        _GUICtrlListBox_ResetContent($List1)
    EndFunc
    ;-----------------------------
    
    
    ;--------------------------
    ;--------------------------
    Func Datei_speichern(); schreibt von Listbox in  Textdatei.txt
    Local $x= _GUICtrlListBox_GetCount($list1)-1
    Local $txt
        For $i = 0 To $x
            $txt =   _GUICtrlListBox_GetText($List1,$i)& @CRLF & $txt
        Next
        Local $var = FileSaveDialog("", "C:\", "Textdateien (*.txt)", 2)
        FileOpen($var,2)
        FileWrite($var, $txt)
        FileClose($var)
    EndFunc
    ;--------------------------
    Func Datei_laden() ; schreibt aus Textdatei.txt in Listbox
    Local $sFilePath,$Daten
        _GUICtrlListBox_ResetContent($List1)
    
    
    Local $sFilePath= FileOpenDialog("", "C:\", "Textdateien (*.txt)", 2)
        _FileReadToArray($sFilePath, $Daten)
    For $x = 1 To $Daten[0]
        GuiCtrlSetData($List1,$Daten[$x])
    Next
    EndFunc
    ;-----------------------------
    Func _exit()
        Exit
        EndFunc
    Alles anzeigen

    Grüsse Eugen

  • _ScreenCapture_Capture in Zwischenablage

    • Eugen
    • 25. März 2015 um 00:45

    nun mit Anfänger meinte ich Autoit, Vorbelastet bin ich seid der Zeit von Commandore 64 mit basic und danach etwas Visual Basic 6. Beim 64er war ASM noch einfach. :)

  • _ScreenCapture_Capture in Zwischenablage

    • Eugen
    • 24. März 2015 um 21:25

    hallo Andy
    danke für deinen Tipp.
    dein Skript gefällt mir gut , nur wie bekomme ich das in eine Picturebox? ?(
    Ich habe in der Gui einige Listenfelder und Inputboxen.
    Eugen
    ach ja muss zugeben das ich anfänger bin.

  • _ScreenCapture_Capture in Zwischenablage

    • Eugen
    • 24. März 2015 um 14:58

    Hallo Forum
    Mit

    Code
    _ScreenCapture_Capture("C:\ Destop\Image.bmp", $X, $Y, $x1,$y1)



    kann ich den Bildausschnitt gespeichert, aber wie, bekomme ich den Ausschnitt direkt in die Zwischenablage bzw. in die Picturebox da eine Zwischenspeicherung zu langsam ist.
    Ob das Bild ein .bmp oder .jpg ist, ist mir egal.
    Was ich machen möchte ist ein vergrößerten Bildausschnitt von der momentanen Mausposition.
    Also eine Art Lupe.
    Mir fehlt komplett der Plan ?(
    Danke für eure Hilfe

  • Verschieben der Controll's verhindern

    • Eugen
    • 19. März 2015 um 15:15

    Einen Dank an Raupi :rock:
    Dank deiner Erklärung verstehe ich nun auch die Zahlenerklärung in GUIResizeMode ein wenig.
    Danke Eugen

  • Verschieben der Controll's verhindern

    • Eugen
    • 18. März 2015 um 21:08

    Danke dir für den Hinweis, die AutoSize-Optionen sind mir bekannt.
    Die Wirkung der einzelnen Optionen kenne ich jedoch nicht, da die Help- Datei von Koda ist auf Englisch ist.
    Da ich nicht Englisch kann frage ich aus diesem Grund im Forum nach.

  • Verschieben der Controll's verhindern

    • Eugen
    • 18. März 2015 um 16:12

    Hallo Forum

    Wenn ich während der Laufzeit die Größe der Form1 mit Winmove() ändere verschieben sich auch die Controll's.
    Diese sollten aber auf ihren Platz bleiben.
    Frage: wie kann ich das Verschieben der Controll's verhindern?
    Danke für eure Hilfe
    Eugen

  • Event auf Form1 mit Label

    • Eugen
    • 16. Februar 2015 um 16:31

    ups... brauche eine neue Brille.
    danke dir :rock:

  • Event auf Form1 mit Label

    • Eugen
    • 16. Februar 2015 um 16:12

    Anfänger
    XP (SP3)

    Hallo Forum
    Im Internet fand ich eine Beschreibung

    http://www.ps-blnkd.de/Control_Events_AutoIt.pdf
    (Seite 4)
    wie man ein Event auslöst wenn man auf die Form1 mit einem Label klickt.
    Nur ich bekomme das nicht gebacken. ?(

    C
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode", 1)
    
    
    #Region ### START Koda GUI section ###
    $Form1 = GUICreate("", 268,50, 201, 133)
    $Label1 = GUICtrlCreateLabel("", 0, 0, 201, 133)
    GUISetOnEvent(-1, "test")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
    Sleep(1000)
    WEnd
    
    
    Func test()
        MsgBox(0, "GUI Event", "Du hast auf Label1 geklickt!")
    EndFunc
    Alles anzeigen

    Was ist daran falsch?
    Ich würde ein Event brauchen, das wenn die Maus über der Form ist od. auf diese klicke.

    Danke für eure Hilfe
    Eugen

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™