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

Beiträge von bernd670

  • Drag & Drop von Datei in TreeView

    • bernd670
    • 4. Juni 2015 um 10:36

    Ja!

    AutoIt
    $aCGP = ControlGetPos($Gui, "", $idTreeView)
    $iXRand = _WinAPI_GetMousePosX(true, $Gui) - $aCGP[0]  ; Startposition TreeView (links)
    $iYRand = _WinAPI_GetMousePosY(true, $Gui) - $aCGP[1]  ; Startposition Treeview (oben)
  • Drag & Drop von Datei in TreeView

    • bernd670
    • 4. Juni 2015 um 09:41

    Hallo,

    die Mauskoordinaten noch auf die TreeView-Koordinaten umgerechnet werden und der Aufruf von _GUICtrlTreeView_GetText ist falsch.

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <GuiTreeView.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>
    
    
    Global $g_hImage, $g_hStateImage
    
    
    Example()
    
    
    Func Example()
    	Local $ahItem[10], $aidChildItem[30], $iYRandItem = 0, $iYRand, $iXRand, $idTreeView
    	Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)
    
    
    	Local $Gui = GUICreate("TreeView Hit Test Item", 400, 300)
    
    
    	$idTreeView = GUICtrlCreateTreeView(80, 40, 200, 200, $iStyle, $WS_EX_CLIENTEDGE)
    	GUISetState(@SW_SHOW)
    
    
    	_CreateNormalImageList()
    	_GUICtrlTreeView_SetNormalImageList($idTreeView, $g_hImage)
    
    
    	_CreateStateImageList()
    	_GUICtrlTreeView_SetStateImageList($idTreeView, $g_hStateImage)
    
    
    	_GUICtrlTreeView_BeginUpdate($idTreeView)
    	For $x = 0 To 9
    		$ahItem[$x] = _GUICtrlTreeView_Add($idTreeView, 0, StringFormat("[%02d] New Item", $x), 4, 5)
    		_GUICtrlTreeView_SetStateImageIndex($idTreeView, $ahItem[$x], 1)
    
    
    		For $y = 1 To 3
    			$aidChildItem[$iYRandItem] = _GUICtrlTreeView_AddChild($idTreeView, $ahItem[$x], StringFormat("[%02d] New Child", $y), 0, 3)
    			_GUICtrlTreeView_SetStateImageIndex($idTreeView, $aidChildItem[$iYRandItem], 1)
    			$iYRandItem += 1
    		Next
    	Next
    	_GUICtrlTreeView_EndUpdate($idTreeView)
    
    
    	_GUICtrlTreeView_SelectItem($idTreeView, $ahItem[0])
    	_GUICtrlTreeView_SetStateImageIndex($idTreeView, $ahItem[0], 2)
    
    
    
    
    	Local $idButton = GUICtrlCreateButton("show", 140, 272, 85, 25, $BS_DEFPUSHBUTTON)
    
    
    	; Loop until the user exits.
    	Local $action
    
    
    	While(1)
    
    
    		$action = GUIGetMsg()
    
    
    		If $action = $idButton Then
    			$iXRand = _WinAPI_GetMousePosX(true, $Gui) - 80  ; Startposition TreeView (links)
    			$iYRand = _WinAPI_GetMousePosY(true, $Gui) - 40  ; Startposition Treeview (oben)
    
    
    			Local $handle = _GUICtrlTreeView_HitTestItem($idTreeView, $iXRand, $iYRand)
    			Local $text = _GUICtrlTreeView_GetText($idTreeView, $handle)
    			MsgBox($MB_SYSTEMMODAL, "Information", StringFormat("Hit Test Item (%d, %d): Handle: %s / Text: %s", $iXRand, $iYRand, $handle, $text))
    		EndIf
    
    
    		If $action = $GUI_EVENT_CLOSE Then
    			Exit
    		EndIf
    	WEnd
    
    
    EndFunc   ;==>Example
    
    
    Func _GetHitString($iResult)
    	If $iResult = 0 Then
    		Return "No Item in Hit area"
    	Else
    		Return "Item Handle: " & $iResult
    	EndIf
    EndFunc   ;==>_GetHitString
    
    
    Func _CreateNormalImageList()
    	$g_hImage = _GUIImageList_Create(16, 16, 5, 3)
    	_GUIImageList_AddIcon($g_hImage, "shell32.dll", 110)
    	_GUIImageList_AddIcon($g_hImage, "shell32.dll", 131)
    	_GUIImageList_AddIcon($g_hImage, "shell32.dll", 165)
    	_GUIImageList_AddIcon($g_hImage, "shell32.dll", 168)
    	_GUIImageList_AddIcon($g_hImage, "shell32.dll", 137)
    	_GUIImageList_AddIcon($g_hImage, "shell32.dll", 146)
    EndFunc   ;==>_CreateNormalImageList
    
    
    Func _CreateStateImageList()
    	$g_hStateImage = _GUIImageList_Create(16, 16, 5, 3)
    	_GUIImageList_AddIcon($g_hStateImage, "shell32.dll", 3)
    	_GUIImageList_AddIcon($g_hStateImage, "shell32.dll", 4)
    EndFunc   ;==>_CreateStateImageList
    Alles anzeigen
  • RegEx?

    • bernd670
    • 4. Juni 2015 um 08:44

    Hallo,

    so sollte es gehen!

    AutoIt
    StringRegExp($source, '(?s)<td><a\shref="index\.php\?id=(\d+).*?>([^<]+)<.+?<td>(\d+)<\/td>.*?<td>(\d+\/\d+)<\/td>', 4)
  • Frage zu vergleichende Operatoren

    • bernd670
    • 4. Juni 2015 um 08:12

    Hallo,

    nur noch mal für @alpines ;) , der Datentyp in dem alles gespeichert wird der heißt Variant. Der heißt so, weil er unterschiedliche Datentypen aufnehmen kann, wie das folgende Beipiel zeigt.

    AutoIt
    Local $array[] = [ "String", 0xFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 12.45, Binary("test"), Ptr(0x12341234) ]
    
    
    For $i = 0 to UBound($array) -1
    	ConsoleWrite("Type of $array[" & $i & "] = " & VarGetType($array[$i]) & @CRLF)
    Next

    Das macht es auf der einen Seite einfach, da man sich keine Gedanken darüber machen muss welche Daten in den Variablen gespeichert werden. Auf der anderen Seite ist man aber auch selbst verantwortlich die richtigen Operationen mit den Daten durchzuführen.

  • Drag & Drop von Datei in TreeView

    • bernd670
    • 3. Juni 2015 um 16:46

    Hallo,

    poste uns deinen Beispielcode und wir schauen was falsch ist!

  • Dateinamen auf Duplikate überprüfen

    • bernd670
    • 2. Juni 2015 um 20:12

    Hier mal ein Beipiel!

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    
    
    Global $datum, $name, $Neuername, $Dateiname
    
    
    $hGUI = GUICreate(" My GUI input acceptfile", 320, 120, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45, -1, $WS_EX_ACCEPTFILES)
    Local $idFile = GUICtrlCreateInput("", 10, 5, 300, 20)
    Local $idBtn = GUICtrlCreateButton("Ok", 40, 75, 60, 20)
    
    
    GUISetState(@SW_SHOW)
    
    
    ; Loop until the user exits.
    While 1
    	Switch GUIGetMsg()
    		Case $GUI_EVENT_CLOSE
    			ExitLoop
    		Case $idBtn
    			If $Dateiname = "" Then
    				MsgBox(262144,"Fehler", "Bitte Dateiname eingeben")
    				ControlFocus($hGUI, "", $idFile)
    				ContinueLoop
    			EndIf
    			ExitLoop
    
    
    		Case $idFile
    			$Dateiname = GUICtrlRead($idFile)
    			If FileExists("I:\AIS_" & $datum & $Dateiname) Or FileExists("I:\AIS_" & $Dateiname) Then
    				MsgBox(262144, "Namenskonflikt!", "Dieser Dateiname existiert bereits!")
    				GUICtrlSetData($idFile, "")
    				$Dateiname = ""
    				ControlFocus($hGUI, "", $idFile)
    			EndIf
    
    
    	EndSwitch
    WEnd
    Alles anzeigen
  • Dateinamen auf Duplikate überprüfen

    • bernd670
    • 2. Juni 2015 um 19:53

    Wenn der Dateiname in der GUI in einem Inputfeld steht kann auch direkt nach der Eingabe prüfen ob der Dateiname schon existiert.

  • Dateinamen auf Duplikate überprüfen

    • bernd670
    • 2. Juni 2015 um 19:12

    Das mit Do ... Until üben wir aber nochmal!!!

    AutoIt
    Global $datum, $name, $Neuername, $Dateiname
    
    
    Do
    	$name = -1
    	If FileExists("I:\AIS_" & $datum & $Dateiname) Or FileExists("I:\AIS_" & $Dateiname) Then
    		$name = MsgBox(262144, "Namenskonflikt!", "Dieser Dateiname existiert bereits!")
    	EndIf
    	If $name = 1 Then
    		$Neuername = InputBox("Name", "Bitte korrigieren Sie den Namen:", $Dateiname)
    		$Dateiname = $Neuername
    	EndIf
    Until $name = -1
    Alles anzeigen

    @Spike_2015, prüfen ob eine Datei vorhanden ist geht mit FileExists

  • PING mit Mailversand (Server Überwachen)

    • bernd670
    • 2. Juni 2015 um 14:23

    Hallo,

    3 Fehler sind mir aufgefallen.

    • $Importance = "Hight" gibt es nicht, sondern $Importance = "High"
    • der Port für mail.gmx.net ist 587 Edit: geht doch mit Port 465 ?(
    • Bei dem Aufruf von _INetSmtpMailCom fehlen 3 Parameter, muss so aufgerufen werden
      _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)

    Noch ein paar Tipps!

    Ich würde mich nie auf ein einzelnen Ping verlassen. Es kann nämlich passieren das der erste Ping fehlschlägt, das hängt mit dem ARP Cache zusammen!
    Besser ist ein Ping in einer Schleife mit Timeout z.B. so

    AutoIt
    Const $TimeOut = 250
    
    
    $TimeoutTimer = TimerInit()
    Do
    	$PingDc = Ping($IPDC, 50)
    Until TimerDiff($TimeoutTimer >= $TimeOut) Or $PingDc > 0

    Für einen ersten Check ist Ping in Ordnung, aber wenn der Rechner per Ping erreichbar ist heißt das noch lange nicht das die Dienste auch laufen.
    Man sollte evtl. zusätzlich noch eine Überprüfung der Dienste z. B. via WMI-Abfrage einbauen.

  • vgl. StringRegExp() StringReplace() StringInStr()

    • bernd670
    • 31. Mai 2015 um 19:19

    3.3.6.1 hab ich auch noch!

    Brainfuck
    Stringlänge     StringInstr   StringRegExp    Stringreplace     Flag     Version
    
    
    52428651       7191.63656     459.650437      7276.70624          0      3.3.6.1
    52428651        299.095816    447.887331       478.197996         1      3.3.6.1
    52428651       4060.91742     387.314237       388.969682         2      3.3.6.1     (bei StringReplace fehlerhaft)
  • vgl. StringRegExp() StringReplace() StringInStr()

    • bernd670
    • 31. Mai 2015 um 18:23

    Hier mal meine Ergebnis, man muss aber dazu sagen das das Flag 2 bei StringReplace in v. 3.3.8.1 nicht korrekt funktioniert!

    Brainfuck
    Stringlänge     StringInstr   StringRegExp    Stringreplace     Flag     Version
    
    
    52428651       7099.82039     392.227718      7231.45757          0      3.3.8.1
    52428651        257.615768    381.800361       348.708896         1      3.3.8.1
    52428651       4040.75187     431.941479       356.893755         2      3.3.8.1     (bei StringReplace fehlerhaft)
    
    
    52428651       7105.72067     131.085533       7292.08044         0      3.3.12.0
    52428651        250.236052    103.219036        414.398682        1      3.3.12.0
    52428651       3993.45621     134.123424       4167.97025         2      3.3.12.0
    Alles anzeigen

    Edit: Flag 2 bringt in der v. 3.3.8.1, bei StringReplace, die gleichen Ergebnisse wie Flag 1. Arbeitet also case sensitive.

  • GUICtrlSetState

    • bernd670
    • 31. Mai 2015 um 17:08
    Zitat von xWerter

    welchen befehl nehme ich her dass wenn auf no gedrückt wird einfach die aktion abgebrochen wird und nicht das ganze skript endet?

    wohl eher so!

    AutoIt
    if MsgBox(262196,"Sicher?","Wollen Sie diese Datei wirklich löschen?") = 6 then
            MsgBox(0, "ok", "datei wird gelöscht...")
    endif


    Bei Ja wird die Msg ausgegeben ansonsten einfach weitergemacht

    Zitat von xWerter

    Den code habe ich schon geschrieben jedoch weiß ich nicht an welche stelle ich ihn schreiben muss.

    Der Code kommt in die While-Schleife. Aber der Button muss auch wieder aktivert werden wenn ein Dateiname in der Zeile steht!

    Hier schematisch dargestellt!

    AutoIt
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    		Case <....>
    			<.....>
    
    	EndSwitch
    
    	; hier Button deaktivieren, wenn kein Dateiname und Button aktiviert
    	; -- TODO --
    
    	; hier Button aktivieren, wenn Dateiname und Button deaktiviert
    	; -- TODO --
    
    WEnd
    Alles anzeigen
  • NotizErsteller

    • bernd670
    • 31. Mai 2015 um 14:05

    Ein paar Tipps!

    zum Code:

    • vor FileDelete solltest du noch eine Sicherheitsabfrage à la "Sind sie sicher?" einbauen
    • FileDelete und FileRead sollten nur aufgerufen werden, wenn auch eine Datei ausgewählt wurde
      und nicht wenn man z. B. auf Abbrechen drückt.

    zum Style:

    • schwarze Schrift auf dunkelrotem Hintergrund kann man nur schwer lesen
    • die Controls sollten so groß sein das der Text auch hineinpasst
    • Label zu den Controls, damit man auch weiss was das Control beinhaltet
  • Wie benutzt man IE?

    • bernd670
    • 31. Mai 2015 um 10:48

    Hallo,

    hast schon mal die SuFu hier im Forum benutzt, bei den vielen Beispielen ist bestimmt was für dich dabei!

    _IEGetObjByID
    _IEGetObjByName

    Noch eine Empfehlung von mir -> http://www.tty1.net/smart-questions_de.html#before

  • DateDiff bestimmter Monat innerhalb eines Zeitraums

    • bernd670
    • 30. Mai 2015 um 22:22

    Ich habe mal dein Code etwas bereinigt!

    Die Funktion FormatEuro schreibt die Zahl Formatiert in die Controls.

    AutoIt
    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    
    
    ; Summe 1, Summe 2 und Anzahl der Tage vorgeben. Anschließend Leistung61berechnen oder Leistung62berechnen anklicken; oder einfach ENTER
    
    
    
    
    $hGUI = GUICreate(@ScriptName, 400, 250, 150, 150)
    
    
    
    
    $Arbeitsentgelt = GUICtrlCreateInput("Summe1", 20, 20, 100, 20, $SS_CENTER)
    $Entgeltersatz = GUICtrlCreateInput("Summe2", 150, 20, 100, 20, $SS_CENTER)
    $diffausgabe = GUICtrlCreateInput("Tage", 280, 20, 100, 20, $SS_CENTER)
    $LeistungNach6 = GUICtrlCreateLabel("", 95, 150, 100, 20, $SS_CENTER)
    GUICtrlCreateLabel("Ergebnis:", 95, 130, 100, 20, $SS_CENTER)
    $hoechstsatzinput = GUICtrlCreateLabel("", 200, 150, 100, 20, $SS_CENTER)
    GUICtrlCreateLabel("Höchstsatz:", 200, 130, 100, 20, $SS_CENTER)
    $Leistung61berechnen = GUICtrlCreateButton("Leistung61berechnen", 20, 200, 180, 20, $SS_CENTER)
    $Leistung62berechnen = GUICtrlCreateButton("Leistung62berechnen", 200, 200, 180, 20, $SS_CENTER)
    $hoechsttext11 = GUICtrlCreateLabel("", 10, 80, 380, 20, $SS_CENTER)
    
    
    GUISetState(@SW_SHOW)
    
    
    
    
    Dim $multi[3] = [0, 215, 258]
    
    
    Func _Leistung6($iSatz)
    	$Summe6 = Number(GUICtrlRead($Arbeitsentgelt)) + Number(GUICtrlRead($Entgeltersatz))
    	$days = Int(GUICtrlRead($diffausgabe))
    	$hoechstsatzoutput = $days * $multi[$iSatz]
    	ConsoleWrite($Summe6 & ", " & $days & ", " & $hoechstsatzoutput & @CRLF)
    	GUICtrlSetData($hoechstsatzinput, $hoechstsatzoutput)
    	FormatEuro($hoechstsatzinput)
    	If $Summe6 > $hoechstsatzoutput Then
    		GUICtrlSetData($LeistungNach6, $hoechstsatzoutput)
    	Else
    		GUICtrlSetData($LeistungNach6, $Summe6)
    	EndIf
    	FormatEuro($LeistungNach6)
    	GUICtrlSetData($hoechsttext11, "Höchsttagessatz " & $multi[$iSatz] & " € multiplitziert mit den Tagen")
    	TrayTip("###-####", "Leistung nach  § 6 ###, Höchstsatz " & $multi[$iSatz] & " €", 5)
    EndFunc   ;==>_Leistung6
    
    
    
    
    While 1
    	$msg = GUIGetMsg(1)
    	Switch $msg[0]
    		Case $Arbeitsentgelt
    			FormatEuro($Arbeitsentgelt)
    		Case $Entgeltersatz
    			FormatEuro($Entgeltersatz)
    		Case $Leistung61berechnen
    			_Leistung6(1)
    		Case $Leistung62berechnen
    			_Leistung6(2)
    		Case $GUI_EVENT_CLOSE
    			Exit
    	EndSwitch
    WEnd
    
    
    Func FormatEuro($hHandle)
    	$szValue = StringReplace(GUICtrlRead($hHandle), ",", ".")
    
    
    	GUICtrlSetData($hHandle, StringFormat("%.2f €", Number($szValue))) ; mit €
    ;~ 	GUICtrlSetData($hHandle, StringFormat("%.2f", Number($szValue))) ; ohne €
    
    
    EndFunc   ;==>FormatEuro
    Alles anzeigen
  • DateDiff bestimmter Monat innerhalb eines Zeitraums

    • bernd670
    • 30. Mai 2015 um 21:09

    Bitte nicht immer den kompletten vorherigen Beitrag zitieren, wir wissen auch so um was es geht. Zitiern ist nur für einzelne Textpassagen gedacht!

    So sollte es gehen:

    AutoIt
    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    
    
    ; Summe 1, Summe 2 und Anzahl der Tage vorgeben. Anschließend Leistung61berechnen oder Leistung62berechnen anklicken; oder einfach ENTER
    
    
    
    
    $hGUI = GUICreate(@ScriptName, 400, 250, 150, 150)
    
    
    
    
    $Arbeitsentgelt = GUICtrlCreateInput("Summe1", 20, 20, 100, 20, $SS_CENTER)
    $Entgeltersatz = GUICtrlCreateInput("Summe2", 150, 20, 100, 20, $SS_CENTER)
    $diffausgabe = GUICtrlCreateInput("Tage", 280, 20, 100, 20, $SS_CENTER)
    $LeistungNach6 = GUICtrlCreateLabel("", 95, 150, 100, 20, $SS_CENTER)
    GUICtrlCreateLabel("Ergebnis:", 95, 130, 100, 20, $SS_CENTER)
    $hoechstsatzinput = GUICtrlCreateLabel("", 200, 150, 100, 20, $SS_CENTER)
    GUICtrlCreateLabel("Höchstsatz:", 200, 130, 100, 20, $SS_CENTER)
    $Leistung61berechnen = GUICtrlCreateButton("Leistung61berechnen", 20, 200, 180, 20, $SS_CENTER)
    $Leistung62berechnen = GUICtrlCreateButton("Leistung62berechnen", 200, 200, 180, 20, $SS_CENTER)
    $hoechsttext11 = GUICtrlCreateLabel("", 10, 80, 380, 20, $SS_CENTER)
    
    
    GUISetState(@SW_SHOW)
    
    
    
    
    Dim $multi[3] = [0, 215, 258]
    
    
    Func _Leistung61()
    	Opt("GUIOnEventMode", 1)
    	$Summe6 = Number(GUICtrlRead($Arbeitsentgelt)) + Number(GUICtrlRead($Entgeltersatz))
    	$days = Int(GUICtrlRead($diffausgabe))
    	$hoechstsatzoutput = $days * $multi[1]
    	ConsoleWrite($Summe6 & ", " & $days & ", " & $hoechstsatzoutput & @CRLF)
    	GUICtrlSetData($hoechstsatzinput, $hoechstsatzoutput)
    	If $Summe6 > $hoechstsatzoutput Then
    		GUICtrlSetData($LeistungNach6, $hoechstsatzoutput)
    	Else
    		GUICtrlSetData($LeistungNach6, $Summe6)
    	EndIf
    	GUICtrlSetData($hoechsttext11, "Höchsttagessatz 215 € multiplitziert mit den Tagen")
    	TrayTip("###-####", "Leistung nach  § 6 ###, Höchstsatz 215 €", 5)
    	Opt("GUIOnEventMode", 0)
    EndFunc   ;==>_Leistung61
    
    
    Func _Leistung62()
    	Opt("GUIOnEventMode", 1)
    	$Summe6 = Number(GUICtrlRead($Arbeitsentgelt)) + Number(GUICtrlRead($Entgeltersatz))
    	$days = Int(GUICtrlRead($diffausgabe))
    	$hoechstsatzoutput = $days * $multi[2]
    	ConsoleWrite($Summe6 & ", " & $days & ", " & $hoechstsatzoutput & @CRLF)
    	GUICtrlSetData($hoechstsatzinput, $hoechstsatzoutput)
    	If $Summe6 > $hoechstsatzoutput Then
    		GUICtrlSetData($LeistungNach6, $hoechstsatzoutput)
    	Else
    		GUICtrlSetData($LeistungNach6, $Summe6)
    	EndIf
    	GUICtrlSetData($hoechsttext11, "Höchsttagessatz 258 € multiplitziert mit den Tagen")
    	TrayTip("###-####", "Leistung nach  § 6 ###, Höchstsatz 258 €", 5)
    	Opt("GUIOnEventMode", 0)
    EndFunc   ;==>_Leistung62
    
    
    Func _convert6()
    	GUICtrlSetData($Arbeitsentgelt, StringReplace(GUICtrlRead($Arbeitsentgelt), ",", "."))
    	GUICtrlSetData($Entgeltersatz, StringReplace(GUICtrlRead($Entgeltersatz), ",", "."))
    EndFunc   ;==>_convert6
    
    
    While 1
    	$msg = GUIGetMsg(1)
    	Switch $msg[0]
    		Case $Leistung61berechnen
    			_convert6()
    			_Leistung61()
    		Case $Leistung62berechnen
    			_convert6()
    			_Leistung62()
    		Case $GUI_EVENT_CLOSE
    			Exit
    	EndSwitch
    WEnd
    Alles anzeigen
  • DateDiff bestimmter Monat innerhalb eines Zeitraums

    • bernd670
    • 30. Mai 2015 um 19:05

    GUICtrlRead gibt einen String zurück, wenn man Strings vergleicht ist "30" größer als "200". Der Grund ist das Strings zeichenweise verglichen werden und die 3 ja größer ist als die 2. Um die Werte korrekt zu vergleichen musst du sie in eine Zahl umwandeln also einfach Int(GUICtrlRead(...)) benutzen dann sollte es gehen.


    Sollte das nicht die Lösung sein dann bitte einen lauffähigen BeispielCode posten damit man es auch nachvollziehen kann.

    PS: Bitte Doppelposts vermeiden. Einfach den letzten Beitrag editieren, wenn es noch keinen neuen gibt.

  • Forum Problemsammlung

    • bernd670
    • 30. Mai 2015 um 12:54
    Zitat von Oscar

    Alle Beiträge sind doppelt vorhanden (einmal mit Text und den Antworten und einmal ohne Text)!
    Einige Beiträge habe ich gelöscht, weil ich dachte, dass es sich um fehlerhafte Beiträge handelt, aber das ist bei allen Beiträgen so.

    Die doppelten Themen ohne Beiträge sind jetzt wieder weg!

  • Child Window& GUICTRL

    • bernd670
    • 26. Mai 2015 um 19:52

    Hallo,

    lass $WS_CHILD weg und schon gehts!

  • Struktur wird aus Pointer fehlerhaft befüllt

    • bernd670
    • 26. Mai 2015 um 18:31

    Hallo,

    du weißt aber schon das du so nur eine Zeitangabe speichern kannst?

    AutoIt
    $tRet1 = _SomeFunc()
    Sleep(5000)
    $tRet2 = _SomeFunc()
    
    
    $tRetTime1 = DllStructCreate($tRet1.tagTime, $tRet1.Time)
    $tRetTime2 = DllStructCreate($tRet2.tagTime, $tRet2.Time)
    
    
    For $i = 1 To 6
    	ConsoleWrite('Return1 ' & $i & ': ' & DllStructGetData($tRetTime1, $i) & @CRLF)
    	ConsoleWrite('Return2 ' & $i & ': ' & DllStructGetData($tRetTime2, $i) & @CRLF)
    Next
    
    
    Func _SomeFunc()
    	Local $tagTime = 'char Year[4];char Month[2];char Day[2];char Hour[2];char Min[2];char Sec[2]'
    	Local Static $tTime = DllStructCreate($tagTime)
    	DllStructSetData($tTime, 'Year',  @YEAR)
    	DllStructSetData($tTime, 'Month', @MON)
    	DllStructSetData($tTime, 'Day',   @MDAY)
    	DllStructSetData($tTime, 'Hour',  @HOUR)
    	DllStructSetData($tTime, 'Min',   @MIN)
    	DllStructSetData($tTime, 'Sec',   @SEC)
    	Local $t = DllStructCreate('struct;ptr Time;char tagTime[75];endstruct')
    	DllStructSetData($t, 'Time', DllStructGetPtr($tTime))
    	DllStructSetData($t, 'tagTime', $tagTime)
    	; prüfen ob Struktur gefüllt und auslesbar
    	Local $tCheck = DllStructCreate($t.tagTime, $t.Time)
    	For $i = 1 To 6
    		ConsoleWrite('Check Feld ' & $i & ': ' & DllStructGetData($tCheck, $i) & @CRLF)
    	Next
    	Return $t
    EndFunc
    Alles anzeigen

    Im obigen Beispiel sollte ja die Differenz zwischen Ret1 und Ret2 5 Sekunden betragen. Wie du aber in der Ausgabe siehst wird immer nur der letzte Zeitwert ausgeben, das liegt daran das du ja immer in den gleichen Speicherbereich schreibst.

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™