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

Beiträge von AutoTim

  • GuiCtrlCreate / GuiCtrlSetData programmatisch erstellen / beschreiben

    • AutoTim
    • 13. Juni 2017 um 11:10

    Geht klar, vielen Dank!
    Problem gelöst :thumbup:

  • GuiCtrlCreate / GuiCtrlSetData programmatisch erstellen / beschreiben

    • AutoTim
    • 13. Juni 2017 um 10:37

    Vielen Dank BugFix!

    Dein Script ist gefuchst, ich verstehe auch das du in $aInput[0] die Anzahl der Controls speicherst, aber folgender Ausdruck ist mir nicht verständlich. Was bedeutet es, wenn man ein eindimensionales Array mit drei elementen 0,1,2 erstellt, und dem letzten (2) den Wert [1] zuweist?

    AutoIt
    Global $aInput[2] = [1]
  • GuiCtrlCreate / GuiCtrlSetData programmatisch erstellen / beschreiben

    • AutoTim
    • 13. Juni 2017 um 10:17

    Hallo Autoit Forum und deren Mitgleider ;),

    gibt es eine Möglichkeit eine, oder sogar beide, oben genannten Funktionen in einer for Schleife auszuführen?
    Hier ein einfaches Beispiel um zu erklären um was es mir geht:

    AutoIt
    for $i = 0 to 5
       GuiCtrlSetData("$test"&$i,"Beispiel")
    next
    
    
    oder
    
    
    for $i = 0 to 5
    "$Label"&$i = GuiCtrlCreateLabel("Beispiel")
    next
    Alles anzeigen


    Grüße
    Tim

  • JavaScript als Desktop Widget

    • AutoTim
    • 9. Juni 2017 um 13:58

    Ok, vielen Dank. Nun klappt es soweit!

    Möge deine Geduld auf ewig vorhanden bleiben :thumbup:

  • JavaScript als Desktop Widget

    • AutoTim
    • 9. Juni 2017 um 11:21

    Das habe ich so schon versucht. Das Problem dabei ist, das es das Handle cleart. Also in dem Fall meine ganze GUI.
    Schut bei mir nun so aus die Stelle:

    AutoIt
    $hImage = _GDIPlus_ImageLoadFromFile("png\"&$aNames[$i]&".png")
    	  $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Altcoin)
    	  _GDIPlus_GraphicsClear($hGraphic, 0xff0f8f8f8)
    	  Sleep(1000)
    	  _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 16, 21+($i*80))
    	  _GDIPlus_GraphicsDispose($hGraphic)
    	  _GDIPlus_ImageDispose($hImage)


    Ich programmiere nun schon lange in Autoit und ich habe keine Ahnung von GDI++.. Schnde über mein Haupt :Face:

    Die 1Sek Pause habe ich nur drinnen, damit ich sehen kann wie das Bild verschwindet und dann wieder erscheint.

  • JavaScript als Desktop Widget

    • AutoTim
    • 9. Juni 2017 um 09:50
    Zitat von alpines

    Ich bezweifle, dass man sowieso mehr als 2x die Minute die API ansprechen sollte.

    Damit wirst du recht haben, da die Daten sowieso 'nur' alle 5 min aktualisiert werden.

    Du bist einer von wie vielen?

    Jap, von gang ganz vielen ;)


    Ich würde aber gerne noch wissen (4 Post von mir), wie ich das Bild mit GDI wieder löschen kann ;)

    Danke für eure Zeit!

  • JavaScript als Desktop Widget

    • AutoTim
    • 9. Juni 2017 um 07:41
    Zitat von chip

    Man kann es auch umständlich machen @alpines @AutoTim. Einfach auf der Seite http://coinmarketcap.com nach unten gehen, dort ist ein Link "Api" und man landet auf dieser Seite: http://coinmarketcap.com/api/

    Zusätzlich steht auch dort die Info:

    • Please limit requests to no more than 10 per minute.
    • Endpoints update every 5 minutes.

    Sprich die IP, welche das Script so ausführt wird ziemlich schnell gesperrt werden.

    Danke für den Hinweis auf die Seite. Diese hatte ich nicht gesehen.

    Aber wie kommst du denn darauf, dass die IP schnell gesperrt werden würde? Ich frage 12x die Minute ab. Das ist keine Menge, die die Server übermäßig belasten.
    Dennoch danke, ich werde meine Requests auf 10x/min reduzieren um save zu sein.

    Grüe Tim

  • JavaScript als Desktop Widget

    • AutoTim
    • 9. Juni 2017 um 07:05

    Vielen Dank Alpines. Ich werde noch etwas an Nutzerfreundlichkeit hinzufügen.
    Da habe ich noch ein kleines Problem zu lösen ;). Dann setzte ich den Haken gerne ;)

    Ich zeichne am Anfang meine Bildchen auf die GUI und dann aktualisiere ich nur noch die Werte. Aber ab und an sind die Bildchen weg. Dann sehe ich dort wo die Bildchen waren nurnoch Backgound meiner GUI.
    Wenn ich die Bilder aber alle 5 Sekunden zeichne, dann wird das Bild irgendwann grieselig am Rand. Dann sieht es nicht mehr so aus wie beim ersten mal zeichnen.
    Leider kenne ich mich mit GDI noch nicht so gut aus. Wie kann ich den ein Bild welches ich mit _GDIPlus_GraphicsDrawImage erstellt habe wieder löschen?


    Grüße

    PS: Hier mal meine aktuelle Version mit allen Files: Altcoin.rar

  • JavaScript als Desktop Widget

    • AutoTim
    • 8. Juni 2017 um 15:18

    Danke dir! Sehr schönes Beispiel.
    Ich habe gestern schon viel Zeit reingesteckt. Schaut mitlerweile so aus:

    Spoiler anzeigen
    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=altcoin.ico
    #AutoIt3Wrapper_Outfile=Altcoin.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include <GDIPlus.au3>
    #include <WinHttp.au3>
    #include <array.au3>
    #include <Date.au3>
    
    
    Opt("TrayMenuMode", 3)
    
    
    dim $AnzahlElemente = UBound(StringSplit(IniRead("altcoin.ini","coins","name",""),",",2))
    dim $monitor = IniRead("altcoin.ini","settings","monitor","1")
    dim $aData[5][25]
    dim $aNames[5]
    Global $hGUI, $hImage, $hGraphic
    $guibreite = 204
    $guihoehe = 15 + $AnzahlElemente*80
    $guiposlinks = @DesktopWidth*$monitor - ($guibreite+2)
    $guiposoben = 2
    
    
    ;GUI
    $Altcoin = GUICreate("Altcoin", $guibreite, $guihoehe, $guiposlinks, $guiposoben, BitOR($WS_SYSMENU,$WS_POPUP), $WS_EX_TOOLWINDOW)
    GUISetBkColor(0xf8f8f8,$Altcoin)
    $Update = GUICtrlCreateLabel("", 0, 1, $guibreite, 17, $SS_CENTER)
    ;Rechtsklick Menü
    Local $contextmenu = GUICtrlCreateContextMenu()
    Local $submenuexit = GUICtrlCreateMenuItem("Beenden", $contextmenu)
    ;TrayIconMenü
    Local $iTrayBeenden = TrayCreateItem("Beenden")
    
    
    
    
    $LabelName1 = GUICtrlCreateLabel("TESTTEST1", 88, 19, 115, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT")
    $LabelEUR1 = GUICtrlCreateLabel("0.000000 EUR", 88, 53, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelBTC1 = GUICtrlCreateLabel("0.000000 BTC", 88, 69, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelRang1 = GUICtrlCreateLabel("00", 88, 36, 115, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT")
    
    
    $LabelName2 = GUICtrlCreateLabel("TESTTEST2", 88, 99, 115, 23)	;80 Offset
    GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT")
    $LabelEUR2 = GUICtrlCreateLabel("0.000000 EUR", 88, 133, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelBTC2 = GUICtrlCreateLabel("0.000000 BTC", 88, 149, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelRang2 = GUICtrlCreateLabel("00", 88, 116, 115, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT")
    
    
    $LabelName3 = GUICtrlCreateLabel("TESTTEST3", 88, 179, 115, 23)	;160 Offset
    GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT")
    $LabelEUR3 = GUICtrlCreateLabel("0.000000 EUR", 88, 213, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelBTC3 = GUICtrlCreateLabel("0.000000 BTC", 88, 229, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelRang3 = GUICtrlCreateLabel("00", 88, 196, 115, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT")
    
    
    $LabelName4 = GUICtrlCreateLabel("TESTTEST4", 88, 259, 115, 23)	;240 Offset
    GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT")
    $LabelEUR4 = GUICtrlCreateLabel("0.000000 EUR", 88, 293, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelBTC4 = GUICtrlCreateLabel("0.000000 BTC", 88, 309, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelRang4 = GUICtrlCreateLabel("00", 88, 276, 115, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT")
    
    
    $LabelName5 = GUICtrlCreateLabel("TESTTEST5", 88, 339, 115, 23)	;320 Offset
    GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT")
    $LabelEUR5 = GUICtrlCreateLabel("0.000000 EUR", 88, 373, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelBTC5 = GUICtrlCreateLabel("0.000000 BTC", 88, 389, 115, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
    $LabelRang5 = GUICtrlCreateLabel("00", 88, 356, 115, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT")
    
    
    _GUICreateRoundRect($Altcoin,25,25)
    GUISetState(@SW_SHOW)
    
    
    _GDIPlus_StartUp()
    GetPNG()
    SetPic()
    
    
    dim $maincounter = 500
    
    
    While 1
    
    
       $nMsg = GUIGetMsg()
       Switch $nMsg
    	  Case $GUI_EVENT_CLOSE
    		 _GDIPlus_ShutDown()
    		 Exit
    	  Case $submenuexit
    		 _GDIPlus_Shutdown()
    		 Exit
    	  EndSwitch
       Switch TrayGetMsg()
    	  Case $iTrayBeenden
    		 _GDIPlus_Shutdown()
    		 Exit
       EndSwitch
    
    
    
    
    	  Sleep(10)
    	  If $maincounter = 500 Then
    		 GetData()
    		 SetData($aData)
    		 $maincounter = 0
    	  EndIf
    
    
    	  $maincounter = $maincounter + 1
    
    
    WEnd
    
    
    Func SetPic()
       ;Bilder anzeigen
       for $i = 0 to UBound($aNames)-1
    	  $hImage = _GDIPlus_ImageLoadFromFile("png\"&$aNames[$i]&".png")
    	  $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Altcoin)
    	  _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 16, 21+($i*80))
    	  _GDIPlus_GraphicsDispose($hGraphic)
    	  _GDIPlus_ImageDispose($hImage)
       next
    EndFunc
    
    
    Func SetData($aData)
    
    
    ;1
       GUICtrlSetData($LabelName1,$aData[0][0])
       GUICtrlSetData($LabelRang1,$aData[1][0])
       GUICtrlSetData($LabelBTC1,$aData[2][0])
       GUICtrlSetData($LabelEUR1,$aData[3][0])
    ;2
       GUICtrlSetData($LabelName2,$aData[0][1])
       GUICtrlSetData($LabelRang2,$aData[1][1])
       GUICtrlSetData($LabelBTC2,$aData[2][1])
       GUICtrlSetData($LabelEUR2,$aData[3][1])
    ;3
       GUICtrlSetData($LabelName3,$aData[0][2])
       GUICtrlSetData($LabelRang3,$aData[1][2])
       GUICtrlSetData($LabelBTC3,$aData[2][2])
       GUICtrlSetData($LabelEUR3,$aData[3][2])
    ;4
       GUICtrlSetData($LabelName4,$aData[0][3])
       GUICtrlSetData($LabelRang4,$aData[1][3])
       GUICtrlSetData($LabelBTC4,$aData[2][3])
       GUICtrlSetData($LabelEUR4,$aData[3][3])
    ;5
       GUICtrlSetData($LabelName5,$aData[0][4])
       GUICtrlSetData($LabelRang5,$aData[1][4])
       GUICtrlSetData($LabelBTC5,$aData[2][4])
       GUICtrlSetData($LabelEUR5,$aData[3][4])
    
    
    ;Infos für die Zeiteinstellungen
       $aTimeInfo = _Date_Time_GetTimeZoneInformation()
    ;~    _ArrayDisplay($aTimeInfo)
       If $aTimeInfo[0] = "2" Then
    	  $winDate = _DateTimeFormat(_DateAdd('s', $aData[4][0], "1970/01/01 02:00:00"), 0) ;2 Stunden wegen Sommerzeit
       Else
    	  $winDate = _DateTimeFormat(_DateAdd('s', $aData[4][0], "1970/01/01 01:00:00"), 0) ;1 Stunden wegen Winterzeit
       EndIf
    ;~    MsgBox(0,"",$winDate)
       GUICtrlSetData($Update,"Aktualisierung: "&$winDate)
    
    
    EndFunc
    
    
    Func GetData()
    
    
       For $i = 0 To UBound($aNames)-1
    	  $hSession = _WinHttpOpen(Default)
    	  $hConnect = _WinHttpConnect($hSession, "api.coinmarketcap.com", 443)
    	  $sHTML = _WinHttpSimpleSSLRequest($hConnect, "GET", "v1/ticker/"&$aNames[$i]&"/?ref=widget&convert=EUR")
    	  _WinHttpCloseHandle($hConnect)
    	  _WinHttpCloseHandle($hSession)
    	  If IsString($sHTML) Then ;Wenn Daten geladen werden, dann führe aus
    		 Filter($sHTML,$i)
    	  Else
    		 MsgBox(0,"Achtung","Es besteht keine Internetverbindung zu coinmarketcap.com")
    		 ExitLoop
    	  EndIf
       Next
    
    
    EndFunc
    
    
    Func Filter($API,$ArrayEbene) ;Wird von GetData aufgerufen
    ;~ MsgBox(0,$ArrayEbene,$API)
    
    
    ;Name der Währung
       $aArray = StringRegExp($API, '(?<="name": ")[a-zA-Z-\s]{1,20}(?=")',1)
       $aData[0][$ArrayEbene] = $aArray[0]
    ;Platz
       $aArray = StringRegExp($API, '(?<="rank": ")[0-9]{1,3}(?=")',1)
       $aData[1][$ArrayEbene] = $aArray[0]
    ;Preis in BTC
       $aArray = StringRegExp($API, '(?<="price_btc": ")[0-9\.]{1,15}(?=")',1)
       $aData[2][$ArrayEbene] = $aArray[0] & " BTC"
    ;Preis in Euro
       $aArray = StringRegExp($API, '(?<="price_eur": ")[0-9\.]{1,15}(?=")',1)
       $aData[3][$ArrayEbene] = StringLeft($aArray[0],10) & " EUR"
    ;Timestamp
       $aArray = StringRegExp($API, '(?<="last_updated": ")[0-9]{1,15}(?=")',1)
       $aData[4][$ArrayEbene] = $aArray[0]
    EndFunc
    
    
    Func GetPNG()
    	;Ini auswerten
       $aNames = StringSplit(IniRead("altcoin.ini","coins","name",""),",",2)
    
    
    
    
       For $i = 0 To UBound($aNames)-1
       ;Wenn ein Bild nicht existiert, dann wird es geladen
    	  If not FileExists("png\"&$aNames[$i]&".png") Then
    		 InetGet( "https://files.coinmarketcap.com/static/img/coins/64x64/"&$aNames[$i]&".png" ,"png\"&$aNames[$i]&".png")
    		 If @error then MsgBox(16,"Error","Es ist ein Fehler beim download der Icons aufgetreten. Bitte vergewissern Sie sich, dass die altcoin.ini Werte stimmen!")
    	   EndIf
       Next
    EndFunc
    
    
    Func _GUICreateRoundRect($hwnd, $radx=15,$rady=15)
        $pos = WinGetPos($hwnd)
        $1 = 0
        $2 = 0
        $3 = $pos[2]
        $4 = $pos[3]
        $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $1, "long", $2, "long", $3, "long", $4,"long",$radx,"long",$rady)
        DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $hwnd, "long", $ret[0], "int", 1)
    EndFunc   ;==>_GUICreateRoundRect
    Func _end()
        Exit(0)
    EndFunc
    Alles anzeigen

    Schöne Grüße

  • JavaScript als Desktop Widget

    • AutoTim
    • 7. Juni 2017 um 08:41

    Vielen Dank :thumbup:
    Im ersten Moment war ich etwas verwundert woher du die Infos der API hast.
    Aber dann bin ich drauf gekommen einfach mal das .js zu zerlegen :) Und da steht ja alles drinnen.

    Nochmals vielen Dank für deine kreative Idee!

  • JavaScript als Desktop Widget

    • AutoTim
    • 7. Juni 2017 um 07:38

    Guten morgen Forum,

    ich würde gerne die Antwort meines Firefoxes auf folgendes Script in einer GUI anzeigen.

    JavaScript
    <script type="text/javascript" src="https://files.coinmarketcap.com/static/widget/currency.js"></script>
    <div class="coinmarketcap-currency-widget" data-currency="nem" data-base="EUR" data-secondary="BTC" data-ticker="true" data-rank="true" data-marketcap="true" data-volume="true" data-stats="EUR" data-statsticker="true"></div>


    Ich habe das Java-Script schon in eine HTML Datei gespeichert und mit dem _IE Object versucht zu öffnen. Bekomme aber nur ein weißes Fenster.
    Kann mit jemand helfen wie ich die HTML Antwort von coinmarketcap.com anzeige?

    Meine Idee war es, mit HTTP Get und dem Script die HTML Daten anzufordern, dann als File abzuspeichern und dann mit dem _Ie Object anzeigen zu lassen.
    Klingt für mich aber um den heißen Brei herum geredet.

    PS: Das Script holt Informationen über den aktuellen Kurs einer Cryptowährung ab ;)

    Grüße
    Tim

  • Hilfe beim umgang mit zwei Parent und Child GUI

    • AutoTim
    • 6. Februar 2017 um 20:35

    Geht klar. Werde ich mir werden. Danke für den Hinweis ;)

  • Hilfe beim umgang mit zwei Parent und Child GUI

    • AutoTim
    • 6. Februar 2017 um 18:08

    Vielen Dank für deine schnelle und konkrete Antwort! Super!

  • Hilfe beim umgang mit zwei Parent und Child GUI

    • AutoTim
    • 6. Februar 2017 um 17:30

    Ein einsammes Hallöchen seit langer Zeit,

    ich habe ein Problem mit dem Umgang zwischen Parent und Child GUI.
    Wenn folgendes Script gestartet wird, dann kann man die Child GUI über Position 1 & 2 aufrufen, und bekommt sie auch geschlossen.
    Sollte die Child GUI aber über das Menü "Einstellungen" geöffnet werden, kann man es nicht mehr schließen.

    Kann mir jemand bitte erklären warum?

    Grüße
    Tim

    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <GuiStatusBar.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <Array.au3>
    #include <Misc.au3>
    
    
    
    
    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
    
    
    Global $Form = GUICreate("L", 280, 386)
    
    
    $menu_einstellungen = GUICtrlCreateMenu("Einstellungen")
    $menu_einstellungen_offnen = GUICtrlCreateMenuItem("Öffnen", $menu_einstellungen)
    GUICtrlSetOnEvent($menu_einstellungen_offnen, "Einstellungen_GUI")
    
    
    
    
    GUISetState(@SW_SHOW,$Form)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    
    
    
    
    ;Position 1
    ;~ Einstellungen_GUI()
    
    
    While 1
    
    
    ;Position 2
    ;~ Einstellungen_GUI()
    
    
    WEnd
    
    
    
    
    
    
    Func Einstellungen_GUI()
    
    
    Global 	$hEinstellungen = GUICreate("Einstellungen", 442, 461, -1, -1,-1,$WS_EX_MDICHILD, $Form)
    		GUISetOnEvent($GUI_EVENT_CLOSE,"_exit")
    		$btn_schliessen = GUICtrlCreateButton("Schließen", 224, 430, 81, 25, $WS_GROUP)
    		GUICtrlSetOnEvent($btn_schliessen,"_exit")
    
    
    		GUICtrlCreateGroup("", -99, -99, 1, 1)
    		GUISetState(@SW_SHOW)
    
    
    	While 1
    	Sleep(100)
    	WEnd
    
    
    EndFunc
    
    
    Func _exit()
    	Switch @GUI_WinHandle
    		Case $Form
    			Exit
    		Case $hEinstellungen
    			GUIDelete($hEinstellungen);Einstellungen schließen
    	EndSwitch
    EndFunc
    Alles anzeigen
  • Mittels FF.au3 drag and drop simulieren

    • AutoTim
    • 8. April 2016 um 14:22

    Hallo Gurus ;)

    Ich scheitere daran mittels FF.au3 eine drag and drop Aktion zu simulieren.

    Mein Ziel ist es dies auf "http://convertico.com/" mit einer Bild Datei auf dem "
    Drop your .png or .ico files here, or click to select them manually!" Feld zu machen.


    Könnt Ihr mir bitte einen Tipp geben?

    Vielen Dank


    PS: Ich habe mich zum ersten Testen an eines der Beispielscripte gehängt:

    AutoIt
    #include <FF.au3>; Muss immer da sein
    
    
    _FFStart("http://convertico.com/") ; oder _FFConnect() wenn FireFox bereits offen sein sollte! Startet den FireFox mit der Seite "www.web.de" und wartet mit Fortführung des Scripts, bis geladen
    If _FFIsConnected() Then ; Wenn FireFox nun verbunden ist, dann...
    	Sleep(1000) ; 1 Sekunde zum Verdeutlichen
    	;HIER DIE AKTION
    Else ;  Wenn FF nicht verbunden ist...
    	MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf
  • WinGetHandle als .dll Aufruf

    • AutoTim
    • 4. Februar 2016 um 18:35

    Danke für eure Antworten und Hinweise..
    Ich möchte natürlich nicht gegen die Richtlinien vestoßen. Daher möchte ich auch icht weiter kramen wie es AutoIt macht.

    Evt. kennt sich ja jemand mit der FindWindow Funktion aus.
    Es scheint nähmlich mit dieser zu funktionieren, siehe hier:

    http://forums.winamp.com/archive/index.php/t-227327.html

    Ich suche expliziet das Handle von Winamp.

    LG Tim

    PS: Ich bin kein Mitglied in dem Forum und mache auch keine Werbung. Das war einer der ersten Treffer meiner suche.

  • WinGetHandle als .dll Aufruf

    • AutoTim
    • 4. Februar 2016 um 17:12

    Hallo Ihr Lieben,

    ich würde gerne wissen wie der .dll Call hinter WinGetHandle aussieht.
    Das Problem ist, dass ich ihn scheinbar falsch nutze und nur dann ein Handle bekomme, wenn ich den exakten Titel kenne.
    WinGetHandle geht aber auch wenn ich nur einen Teil des Titel kenne.

    Ich versuche zurzeit die FindWindowA der user32.dll. Mein Funktionsaufruf ist folgender:
    uint32_t FindWindowA(int32_t lpszClassName, const CStr lpszWindowName);
    const CStr lpszWindowName = "Editor"

    Ja, ist kein Autoit, aber darum geht es mir ja :)
    Wenn ich das mit WinGetHandle("Editor") versuche, dann klappt das. In C aber nicht. Da geht das nur mit "Unbenannt - Editor".

    Wie rufe ich die FindWindowA richtig auf, damit diese etwas "flexibler" ist?

    LG Tim

  • GUI Resize - aber nur vertikal

    • AutoTim
    • 16. November 2015 um 15:50

    @Bioshade: Tolle Band, Tolles Lied, Ich teile deinen Musik Geschmack :klatschen:

  • Systematisch mehrere Bedienelemente aus füllen

    • AutoTim
    • 16. November 2015 um 15:48

    Hallo,

    ich möchte gerne für einen Sudoko Löser eine Oberfläche gestalten und alle Zahlen in einem Array [9][9] lagern, dass meiner Anzeige entspricht.
    Mein Test-Programm sieht wie folgt aus:

    Spoiler anzeigen
    AutoIt
    ;Hier stehen Konstanten die verwendet werden damit die Bedienoberfläche (GUI) Funktioniert und angezeigt werden kann
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    #Region ### Hier wird die GUI erstellt
    $Form1 = GUICreate("Sudoku Test", 269, 307, 605, 320)
    $Input0_0 = GUICtrlCreateInput("", 60, 40, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input0_1 = GUICtrlCreateInput("", 110, 40, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input0_2 = GUICtrlCreateInput("", 160, 40, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input1_0 = GUICtrlCreateInput("", 60, 90, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input1_1 = GUICtrlCreateInput("", 110, 90, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input1_2 = GUICtrlCreateInput("", 160, 90, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input2_0 = GUICtrlCreateInput("", 60, 140, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input2_1 = GUICtrlCreateInput("", 110, 140, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Input2_2 = GUICtrlCreateInput("", 160, 140, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow")
    $Button1 = GUICtrlCreateButton("Füllen", 90, 220, 91, 31)
    GUICtrlSetState(-1,$GUI_FOCUS)
    GUISetState(@SW_SHOW)
    #EndRegion ### Hier ist es zuende
    
    
    Global $ZahlenArray[3][3] = [[1,2,3],[4,5,6],[7,8,9]] ;Hier stehenh meine Zaheln, die ich in die Anzeige Einfügen möchte
    
    
    While 1
    
    
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE	;Wenn das Rote X gedrückt wird, wird das Programm beendet
    			Exit
    		Case $Button1		;Wenn der Füllen Button gedrückt wird, wird die Funktion ausgeführt
    			_ZahlenFuellen()
    	EndSwitch
    
    
    WEnd
    
    
    
    
    Func _ZahlenFuellen() ; Wenn diese Funktion ausgeführt wird, dann wird die Anzeige mit dem Array geladen - Muss nur einmal geschreiben werden und immer wieder verwendet werden
    
    
    	GUICtrlSetData($Input0_0, $ZahlenArray[0][0])
    	GUICtrlSetData($Input0_1, $ZahlenArray[0][1])
    	GUICtrlSetData($Input0_2, $ZahlenArray[0][2])
    
    
    	GUICtrlSetData($Input1_0, $ZahlenArray[1][0])
    	GUICtrlSetData($Input1_1, $ZahlenArray[1][1])
    	GUICtrlSetData($Input1_2, $ZahlenArray[1][2])
    
    
    	GUICtrlSetData($Input2_0, $ZahlenArray[2][0])
    	GUICtrlSetData($Input2_1, $ZahlenArray[2][1])
    	GUICtrlSetData($Input2_2, $ZahlenArray[2][2])
    
    
    EndFunc
    Alles anzeigen

    Kann ich dass Array einfacher in meine Bedienelemente laden? Ich habe es mit zwei ineinander verschachtelten Schleifen für Zeile und Spalte versucht, aber so kann ich die Inputs nicht ansprechen.
    Im Prinzip, funktioniert dass ja was ich möchte, aber evt. kann mir jemand zeigen wie es eleganter geht :)

    Vielen Dank

  • GUI Resize - aber nur vertikal

    • AutoTim
    • 6. November 2015 um 12:37

    Vielen Dank Bioshade und Oscar. Habe erst gedacht, dass die

    AutoIt
    GUIRegisterMsg()

    den GuiEventMode 1 braucht. Aber da dies nun nicht der Fall ist, macht das einiges einfacher.
    Danke an der Stelle nocheinmal für eure tolle Hilfe.

    LG Tim

    @ Bioshade: Kommodore 64 ist das richtig?

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™