Weil ich einfach eine magic number, in diesem Fall den Wert einer Konstanten (konkret 0), eingesetzt habe und dann MsgBoxConstants.au3 raus genommen haben.
Zu #include's im allgemeinen kannst du dir einfach die Hilfe anschauen.
Viele Grüße
Sven
Weil ich einfach eine magic number, in diesem Fall den Wert einer Konstanten (konkret 0), eingesetzt habe und dann MsgBoxConstants.au3 raus genommen haben.
Zu #include's im allgemeinen kannst du dir einfach die Hilfe anschauen.
Viele Grüße
Sven
Hi WhiteHorse ,
deine Verschachtelungen sind das Problem. Schaue dir mal bitte meine kleine Modifikation hier an und falls du es nicht verstehst, gebe bitte Bescheid.
Es sind nun damit alle MsgBox() erreichbar.
#include-once
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$MainCombo = GUICtrlCreateCombo("MainCombo", 16, 16, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Leer|Open Combo 2|Open Combo 3|Open Combo 4|Alle")
GUICtrlSetCursor(-1, 0)
$Combo2 = GUICtrlCreateCombo("Combo2", 16, 136, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Text von Combo2")
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetCursor(-1, 0)
$Combo3 = GUICtrlCreateCombo("Combo3", 16, 224, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Text von Combo3")
GUICtrlSetState($Combo3, $GUI_HIDE)
GUICtrlSetCursor(-1, 0)
$Combo4 = GUICtrlCreateCombo("Combo4", 16, 320, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Text von Combo4")
GUICtrlSetState($Combo4, $GUI_HIDE)
GUICtrlSetCursor(-1, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $MainCombo
$ComboReadProdukt = GUICtrlRead($MainCombo)
Switch $ComboReadProdukt
Case "Leer"
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetState($Combo3, $GUI_HIDE)
GUICtrlSetState($Combo4, $GUI_HIDE)
Case "Open Combo 2"
GUICtrlSetState($Combo2, $GUI_SHOW)
GUICtrlSetState($Combo3, $GUI_HIDE)
GUICtrlSetState($Combo4, $GUI_HIDE)
Case "Open Combo 3"
GUICtrlSetState($Combo3, $GUI_SHOW)
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetState($Combo4, $GUI_HIDE)
Case "Open Combo 4"
GUICtrlSetState($Combo4, $GUI_SHOW)
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetState($Combo3, $GUI_HIDE)
Case "Alle"
GUICtrlSetState($Combo2, $GUI_SHOW)
GUICtrlSetState($Combo3, $GUI_SHOW)
GUICtrlSetState($Combo4, $GUI_SHOW)
EndSwitch
Case $Combo2
$ComboReadProduktCombo2 = GUICtrlRead($Combo2)
Switch $ComboReadProduktCombo2
Case "Text von Combo2"
MsgBox(0, "Information", "Ich bin nur ein Test für Combo 2")
EndSwitch
Case $Combo3
$ComboReadProduktCombo3 = GUICtrlRead($Combo3)
Switch $ComboReadProduktCombo3
Case "Text von Combo3"
MsgBox(0, "Information", "Ich bin nur ein Test für Combo 3")
EndSwitch
Case $Combo4
$ComboReadProduktCombo4 = GUICtrlRead($Combo4)
Switch $ComboReadProduktCombo4
Case "Text von Combo4"
MsgBox(0, "Information", "Ich bin nur ein Test für Combo 4")
EndSwitch
EndSwitch
WEnd
Alles anzeigen
Viele Grüße
Sven
💡 Und wieder fehlt mir der "Like" button [...].
Alles klar und Danke dir AspirinJunkie 👍 .
Viele Grüße
Sven
Hi AspirinJunkie ,
meinst du nicht gerade anders herum in deinem code snippet oben? Also so:
$sInput = "é,ü,ö,ß,ä,è"
; String als ASCII kodiert in Variable speichern:
$bQuelle = StringToBinary($sInput, 1)
; String als UTF-8 interpretiert einlesen:
$sOutput = BinaryToString($bQuelle, 4)
; Ausgabe
MsgBox(0,"", $sOutput)
Oder stehe ich gerade auf dem Schlauch?
Abgesehen davon: Cool, Danke! Habe das in der Vergangenheit (wenn ich's mal gebraucht habe), also immer zu umständlich gemacht 😅 .
Viele Grüße
Sven
Hi Moombas ,
hast du das Ergebnis der API Abfrage als Datei vorliegen (also als JSON response) oder ist es direkt in einer Variable gespeichert?
Warum ich frage ist, wenn du eine Datei hast, dann Datei kannst du diese doch mit entsprechendem Encoding öffnen und neu speichern.
Dann sollten die Sonderzeichen korrekt dargestellt werden.
Kannst du den JSON response unverfälscht mal zu Verfügung stellen?
Viele Grüße
Sven
Hi Tweaky ,
vielen lieben Dank für deine Antworten und deine Erklärungen. Verstehe nun glaube recht gut, wie die Situation ist und wie es von statten geht 👍 .
Ich muss allerdings nochmal über alles drüber schauen/nochmal lesen und darüber nachdenken, bevor ich hier wieder mit einem Statement um die Ecke komme 😅 .
Viele Grüße
Sven
Hi MojoeB,
Moombas hat dein Problem ja bereits gelöst, dennoch möchte ich dir kurz zeigen, was das Problem war 😇 .
pasted-from-clipboard.png
Angenehmen Tag weiterhin 🤝 .
Update: Nur zur Vollständigkeit, ich habe vergessen die Zeile 15 zu entfernen, dies ist in der obigen Variante nicht nötig.
Viele Grüße
Sven
Entschuldigt bitte, dass ich hier ebenfalls ein kurzes off topic Statement einstreuen muss:
Mir fehlt hier wirklich der "like" button oder irgendeine Art der Zustimmungsfunktion oder sowas. Denn dann müsste man nicht immer solche Posts wie diesen hier verfassen.
Wir hatten das Thema schon mal und es gehört auch gar nicht hier her, daher nochmals sorry.
Kurz: Deiner Aussage BugFix stimme ich zu 100% zu 👍 .
Viele Grüße
Sven
Hi BugFix ,
ich mag deinen zur Hilfe gereichten Senf 🤣 .
Sehe dies genauso, allerdings ist der Lerneffekt, wie du beschreibst, eben nur dann da, wenn sich die etwas unerfahreneren Nutzer beteiligen.
Naja, genug von mir zu diesem Thema. Mal sehen ob sich Tweaky meldet und wie entschieden wird.
Angenehmen Abend, dies hier Lesenden, noch.
Viele Grüße
Sven
Hi Moombas ,
meine Stimme hast du damit auch 👍 .
Viele Grüße
Sven
Schauen wir mal, was der Mastermind (Tweaky) dazu sagt
Jap, bin ebenfalls gespannt 👍 .
Um ehrlich zu sein water, ich nutze nie die deutsche Hilfe in offline oder online Form 😳 . Bisher reichte mir die englische Hilfe (oder eben die beiden Foren) vollkommen aus. Da ich mich allerdings nicht als die breite Masse sondern als einzelner Nutzer betrachte, biete ich mich auch als Helfender/Unterstützender an (was hoffentlich aus den Posts weiter oben klar geworden ist 😅).
Mir fehlt allerdings erstmal das Statement von Tweaky und ein wenig mehr Instruktionen wie genau die Übersetzung von statten geht. Nur ein paar wenige Verständnis Fragen, mehr nicht.
Viele Grüße
Sven
Hi water ,
ja da gebe ich dir Recht. Dennoch ist trotz der Einfachheit der bisherigen Lösung oder Umsetzung die Mitarbeit dazu sehr mäßig 😔 . Ich habe mir mal die Liste der Helfenden/der Übersetzer angeschaut und festgestellt, dass bei den letzten Malen es kaum Unterstützung gab und wie du richtig schreibst, die Hauptarbeit bei Tweaky lag/liegt.
pasted-from-clipboard.png
Da Rene ( Gun-Food ) sowieso ein Repository dazu hat, ist ein Ausprobieren einer weiteren Variante vielleicht nicht so schlecht.
Ggf. kann man auch beides anbieten, je nachdem wie groß die Teilnahme überhaupt sein wird bzw. ist.
Bzgl.:
[...] Nachteil: Einarbeitung in die Funktionsweise von GitHub notwendig) [...]
Kurzes "How-to" dazu und dann sollte das funktionieren 🤞 - ich bin einfach mal optimistisch 😅 .
Viele Grüße
Sven
Hi Tweaky ,
ich muss nochmal zusammenfassen, da ich es ggf. nicht ganz richtig verstanden 🤔 habe:
Falls ich dies so richtig verstanden habe, steht meinem Beitrag (meiner Mithilfe), nicht mehr viel im Wege 😁 .
Jedoch bleiben für mich noch die folgenden Fragen:
--------------------------------------------------------------------------------
Ein anderer Vorschlag:
Wie wäre es ein GitHub repository einzurichten in dem die Dateien alle liegen (im main branch üblicherweise). Dann wird nach und nach die Hilfe aktualisiert/übersetzt, von denen die mitmachen wollen. Sogar von Leuten außerhalb des Forums, wäre dies dann auch möglich.
Mittels abgezweigter branches ("forks"), welche dann wieder in main gemerged werden (über pull requests), könnte man den erhofften finalen Stand erreichen ohne das du dies alles über die Posts verwalten musst. Außerdem kann über die pull requests theoretisch jeder nochmal drüber schauen, dass was du ansonsten wohl allein tun müsstest. Ich meine wenn dies ein Gemeinschaftsprojekt sein soll, was ich absolut nachvollziehen kann und gut heiße, dann lass uns dies doch bitte auch so behandeln 😇 .
Die Hürden für unerfahrene Git und GitHub User kann man mittels kurzem Tutorial oder How-to sicherlich schnell aus dem Weg räumen. Dies sollte aus meiner Sicht also kein Problem darstellen. Würde ich dann auch übernehmen, falls dieser Vorschlag auf Anklang trifft. Gerade im Bezug auf Nachhaltigkeit und Wiederverwendbarkeit (die nächste Hilfe-Version kommt sicherlich) finde ich dies gut.
Vielleicht gibt es bereits ein GitHub Projekt was man nutzen könnte?2 Keine Ahnung. Ansonsten kann ich auch gern einfach eines einrichten 😁 .
Viele Grüße
Sven
1 Update: Diese Frage hat sich erledigt, hast du oben (#1) beschrieben (und durchgestrichen).
2 Update: Es gibt doch bereits die Hilfe als GitHub Projekt - sorry, habe ich gerade erst entdeckt. Dann warum nicht alles einfach dort verwalten?
Hi AspirinJunkie,
großes Lob für deine Mühen, deine Erklärung für Windi und die Verbesserungen 👍 . Mir ist beim drüber schauen noch aufgefallen, dass die optionalen Parameter von _tomtom_getRouteMetrics() unnötig sind, da sie sowieso nur in dieser Funktion verwendet werden.
Wenn du diese optionalen Parameter entfernst, dann kannst du dir deine beiden globalen Variablen auch sparen und sie in der Funktion als Local verwenden.
Schreibe gerade vom Smartphone aus, ansonsten würde ich die Code-Stellen markieren, doch du wirst dies schon finden 🤞 .
Viele Grüße
Sven
Hi Swiffer ,
eigentlich war die Funktion nur zu Anschauung. Also du solltest gar kein Sleep() einbauen müssen oder sollen. Denn die eigentliche Funktion _ShowRefreshedToolTip() läuft parallel zu deinen anderen Schritten in deinem Skript. Ich hatte verstanden, du willst nur den "Countdown" angezeigt bekommen und während dessen soll putty aktiv werden. Genau dies macht die "Countdown"-Funktion. Mehr nicht. Immer wenn du Sleep() nutzt, wird die Ausführung des Skripts kurz pausiert - daher stattdessen der Ansatz mit AdlibRegister().
Wenn du deinen bisherigen Code nochmal senden möchtest und an Hand dessen deinen Stand nochmal erläuterst, dann wird sicher klarer ob noch was offen ist oder nicht.
Ansonsten, ja, ebenfalls eine gute Nacht 😀 .
Viele Grüße
Sven
Und ohne water würde es die Tutorial-Wiki-Seite wahrscheinlich gar nicht geben, also hab' Dank water 😀 .
Mal sehen ob mein Tutorial eine gute Ergänzung sein wird - ich bin guter Dinge diesbezüglich.
Viele Grüße
Sven
Hi Swiffer,
keine Ahnung wo du diesen "Countdowntimer" herausgekramt hast, kann mich nicht erinnern, ist aber auch egal. Wenn du eine visuelle Darstellung haben möchtest, dass das Skript läuft (wie du schreibst) und während dessen etwas anderes passieren soll, dann ist AdlibRegister dein Stichwort 😀 .
Hier mal ein Beispiel ohne GUI, einfach nur mit einem Tooltip:
Global Const $iDelay = 1000
Global $iCountdown = 10
AdlibRegister('_ShowRefreshedToolTip', $iDelay) ; register function (is called each second ($iDelay))
_DoSomethingDuringTheCountdownIsShown() ; for example putty will be opened during the countdown is shown
Func _ShowRefreshedToolTip()
If $iCountdown == 0 Then
ToolTip('') ; remove tooltip
AdlibUnRegister('_ShowRefreshedToolTip') ; unregister function (don't call the function again)
Return
EndIf
Local Const $sTitle = 'Der Remote-Computer startet.'
Local Const $sText = 'Bitte "' & $iCountdown & '" Sekunden warten.'
Local Const $iXPosition = 5
Local Const $iYPosition = 5
Local Const $iInfoIconFlag = 1
ToolTip($sText, $iXPosition, $iYPosition, $sTitle, $iInfoIconFlag)
$iCountdown -= 1 ; decrease countdown
EndFunc
Func _DoSomethingDuringTheCountdownIsShown()
For $i = 1 To 3 Step 1
ConsoleWrite(@HOUR & ':' & @MIN & ':' & @SEC & '.' & @MSEC & ' - do something ...' & @CRLF)
Sleep(3000)
Next
EndFunc
Alles anzeigen
Die Funktion _DoSomethingDuringTheCountdownIsShown() dient nur der Anschauung. Also es wird einfach der Tooltip aktualisiert angezeigt und während dessen kann dein Skript alles andere tun. Sobald der Countdown zu Ende ist (wenn er 0 ist), wird diese Funktion nicht mehr aufgerufen.
Viele Grüße
Sven
Alles klar BugFix 😀 , dann teile ich dies den Admins mit (dein Server-Hinweis 😂), wenn ich mit denen das Skript durchgehe.
Danke nochmal.
Viele Grüße
Sven
Hi water ,
Darf ich dazu auf das Tutorial im engl. Wiki hinweisen? https://www.autoitscript.com/wiki/WebDriver
warum fragst du? Na klar - gute Idee 👍 .
[...] Wollte halt auch mal ein Beitrag leisten, für die viele gute Hilfe hier im Forum.
Das finde ich auch super 😀 , wollte deine Anstrengung auch gar nicht mindern oder so. Wollte nur der Vollständigkeit halber, deinen Beitrag in den richtigen Kontext bringen.
Finde es toll, wenn du deine Wertschätzung durch entsprechende Hilfestellung ausdrückst, bitte weiter so 🤝 .
Viele Grüße
Sven
Hi BugFix ,
vielen Dank für die refresh'te Version 👍 .
Wird dies gleichermaßen für Windows 10, 8 ggf. sogar noch unter Win 7 und Server-Systemen funktionieren? Gebrauchen kann ich dies ehrlich gesagt nicht, doch die Admins auf Arbeit schon, daher Danke 😇 .
Viele Grüße
Sven