Du kannst dir die Handles der 'Feld-Buttons' und auch den TimeStamp in deinem Array mit abspeichern. Wenn du dir dann noch den GuiOnEventMode anschaust, lässt sich das ziemlich einfach lösen indem du alle Buttons auf eine Funktion registrierst. Immer wenn dann auf einen Button geklickt wird, wird diese Funktion dann aufgerufen. In dieser hast du dann ein Makro zur Verfügung das das Handle des geklickten Buttons enthält. Nun musst du nur noch das Array durchgehen und nachschauen zu welchem Feld das Handle gehört, denn du hast dir ja zu beginn alle entsprechenden Handles in das Array schreiben lassen...
Beiträge von BinDannMalWeg
-
-
Zeig uns doch mal die beiden Scripte, dann könnten wir Fehler auf seiten deiner Scripts schon mal ausschließen...
Möglicher weise besitzt der Server auch einen Schutzmechanismus der vom aktuellen Computer abhängt. Hast du das ganze auf verschiedenen Rechnern getestet? Wurde das Script schon mal im Netzwerk getestet? Also nicht über Localhost sonder mit zwei verschiedenen Rechnern im Netzwerk...
-
So was macht man mit einem 2-dimensionalen Array.
[autoit]Und wenn du diesem dann noch eine '3te' Dimension gönnst, kannst du für jedes Feld auf der Map auch gleich noch mehrere Werte ablegen...
Dim $Map[10][10] ; <-- 2D-Array $Map[x-koordinate][y-koordinate]
[/autoit]
Dim $Map[10][10][3] ; <-- 3D-Array $Map[x-koordinate][y-koordinate][hier-hast-du-dann-noch-3-slots]Edit: Okay BadBunny war schneller...
-
PS: Wird es mit Chrome jemals möglich sein vernünftig formatierte Beiträge zu verfassen? Ich muss jedesmal den Browser wechseln, hat jemand da mal ne Lösung gefunden?
Ich benutze Chrome und habe keinerlei Probleme... Du musst nur in den Quellcode-Tab des Editors wechseln, wenn du Autoit-Code einfügen willst.
-
Zitat
"if already clickt, do nothing"
Du schreibst die besuchten Links mit FileWrite() in eine Datei und dann machst du einfach eine Abfrage alla
Und für die 'Liste' in Form einer Text-Datei machst du etwas wie:
Code%counter% = 0 While 1=1 %counter% += 1 %Link% = FileReadLine( Liste.txt , %counter% ) IF @error THEN EXITLOOP _MachWasMitDemLink( %Link% ) Wend
-
Nich dein Erst oder?
[autoit]If _IsMonday() Then ; Mach was!
[/autoit]
Func _IsMonday ()
Return (@WDAY = 2) And ((@HOUR = 17 AND @MIN = 0) OR (@HOUR >= 12 And @HOUR <= 16))
EndFunc -
_DateToDayOfWeek()
-
Ich hab mich deinem Script jetzt mal angenommen...
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiListBox.au3>$GUI = GUICreate('test', 800, 550, -1, -1)
[/autoit] [autoit][/autoit] [autoit]
$ListBox = GUICtrlCreateList('', 56, 208, 433, 201)
GUISetState(@SW_SHOW)Local $Readname, $Data, $Firma1, $INI = @ScriptDir & '\ini\offeneZeiten.ini'
[/autoit] [autoit][/autoit] [autoit]$Data = 'name=' & $Readname & @LF & 'tag=' & @MDAY & @LF & 'monat=' & @MON & @LF & 'firma1=' & $Firma1
[/autoit] [autoit][/autoit] [autoit]
$MonteurList = IniReadSectionNames($INI)
_ArrayDisplay($MonteurList)
_ArraySort($MonteurList, 0, 2, 0)
_ArrayDisplay($MonteurList)For $i = 1 To $MonteurList[0]
[/autoit] [autoit][/autoit] [autoit]
$Read_Name = IniRead($INI, $MonteurList[$i], 'name', '')
$Read_Tag = IniRead($INI, $MonteurList[$i], 'tag', '')
$Read_Firma1 = IniRead($INI, $MonteurList[$i], 'firma1', '')If $Read_Firma1 = '' Then _GUICtrlListBox_AddString($ListBox, $Read_Name & ':' & $Read_Tag)
[/autoit] [autoit][/autoit] [autoit]
; Hier kannst du doch mit den Werten machen, was du willst?!
NextDo
[/autoit]
Until GUIGetMsg() = -3Aber mir ist trotzdem noch nicht klar, WO denn jetzt dein Problem liegt? an der Stelle an der du die Daten aus der INI liest, kannst du doch mit ihnen machen was du möchtest? Du könntest sie zum Beispiel in ein Array schreiben, wenn du sie später wieder benötigst usw. Controls dienen fast nur der Interaktion mit dem User, daher sollten sie nicht als Daten-Ablage missbraucht werden...
-
Zitat
Wisst ihr zufällig ob man mit php den ausgehend port herausfinden kann z.b., oder wie man das sinnvoll macht?
Was glaubst du denn, warum noch nicht ein einziger Autoit-Kundiger UDP-Hole-Punching umgesetzt hat?
Naja vielleicht hast du Glück und irgend Jemand hat einen Gedanken-Blitz... Möglicher Weise lässt sich mit Hilfe einer DLL wirklich abfragen, über welchen Port eine Anwendung kommuniziert. -
Ist doch oben beschrieben.
Naja was du denn jetzt genau möchtest ist zumindest mir noch nicht ersichtlich... Ich weis das du irgendwo ein ListBox Control hast, in dem irgendwie "Hallo,08" und
"Hallo,21" stehen und ich weis das du in einer Schleife etwas aus einer INI-Datei auslesen willst und selbiges dann mit wieder etwas Anderem vergleichen willst.Sorry aber ohne ein Beispiel Script lässt sich da nur Raten und dabei kommt dann sicher nicht das heraus, was du gerne hättest...
-
Das lässt sich sicher mit den String-Befehlen (alla StringSplit, StringTrimLeft, StringRight...) oder eben mit einem StringRegExp lösen... Du kannst dir ja mal die Hilfe zu diesen Befehlen anschauen.
Aber mal eine ganz andere Frage: Worum geht es denn genau?, denn es gibt bestimmt eine bessere Lösung als im Text 'herumzufrickeln'...
-
Euch ist aber schon klar, dass ihr dem anderen Client mit eurer IP auch den ausgehenden Port weiterreichen müsst? Und genau da liegt das Problem: Mit Autoit ist es, so viel ich weis, nicht möglich diesen Port zu ermitteln...
-
Zitat
Genau aus den gleichen Gründen, warum ich vorher auch Dos genutzt habe.
Ich kenne nichts anderes und kann aber damit umgehen was ich kenne
Finde zu den beiden Funktionen aber auch kein gescheites Tutorial oder ne Anleitung die ich verseheIch weiß, dass du diesen Thread nun schon auf gelöst gesetzt hast, aber ich möchte dich trotzdem noch einmal darauf hinweisen, dass in der Hilfe zu JEDEM Befehl eine sehr ausführliche Funktions-Beschreibung und auch ein spezielles Beispiel-Script beiliegt...
-
Warum machst du das nicht einfach mit TimerInit() und TimerDiiff()
Dann sparst du dir das Gefrickel mit dem Umrechnen usw.
-
Ohne dein Script auch nur anzusehen, muss ich dir leider sagen, dass du beim UDP-Hole-Punching wohl was falsch verstanden hast... Du benötigst nämlich gerade dafür einen Server MIT PortForwarding über den dann die Verbindung 'entsteht'!
Hier ist das eigentlich ganz gut erklärt... -
-
Wie wärs denn mit einer INI-Datei in der du einfach den Timestamp ablegst?
-
Ich hab auch kurz gebraucht...
Denk an das große W und den Punkt musst du weglassen. -
Okay beginnen wir, nach Post 25, mal damit dein eigentliches Problem anzugehen...
Am einfachsten wäre es wohl, wenn du bei Arbeitsbeginn einen Timestamp (-> TimerInit() ) anlegst und dann am Ende mit TimerDiff() die vergangene Zeit abfragst. Dazu müsstest du eben noch die Zeit der Pausen messen und diese dann von der gesamten Zeit abziehen. Um Überstunden zu berücksichtigen könntest du in dein GUI ja eine Überstunden-CheckBox einfügen, die dann ein separates Aufzeichnen/Loggen einschaltet...
-
Das problem war, dass ich das /-Zeichen als Trennzeichen für das Datum benutzt hatte... Es reicht in der Deklaration von $Date die / durch zum Beispiel Punkte zu ersetzen.