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

Beiträge von Bitnugger

  • Ordner/Dateien verpacken mit Progressbar

    • Bitnugger
    • 12. Mai 2017 um 20:50

    Oder so...

    _CopyWhithProgress
    AutoIt
    ;-- TIME_STAMP   2017-05-12 21:48:19
    
    
    #Region    ;************ Includes ************
    #include-once
    #Include <FileConstants.au3>
    #include <WinAPIShPath.au3>
    #EndRegion ;************ Includes ************
    
    
    Local $iCopy = Example()
    If @error Then MsgBox(262160, '_CopyWhithProgress', "$iCopy --> " & $iCopy & @CRLF & "!@ " & @TAB & "#Error: " & @error & @TAB & "#Extended: " & @extended & @CRLF)
    
    
    Func Example()
    	Local $sCopyFrom = FileOpenDialog('Was soll kopiert werden?', @DesktopDir, 'All (*.*)', $FD_PATHMUSTEXIST) ; $hWnd)
    	If @error Then Return SetError(@error +1, 1, '$sCopyFrom = ' & $sCopyFrom)
    	Local $sCopyTo   = FileSaveDialog('Wohin soll es kopiert werden?', @DesktopDir, 'All (*.*)', $FD_PATHMUSTEXIST, StringInStr(FileGetAttrib($sCopyFrom), 'D') ? $sCopyFrom : _WinAPI_PathStripPath($sCopyFrom)) ; $hWnd)
    	If @error Then Return SetError(@error +2, 2, '$sCopyTo = ' & $sCopyTo)
    
    
    	_CopyWhithProgress($sCopyFrom, $sCopyTo)
    	If @error Then Return SetError(@error +3, 3, '_FileCopy()')
    EndFunc
    
    
    ; Windows - copy with progress
    ; Author - JdeB
    
    
    ;~    4 Do not display a progress dialog box.
    ;~    8 Give the file being operated on a new name in a move, copy, or rename operation if a file with the target name already exists.
    ;~   16 Respond with "Yes to All" for any dialog box that is displayed.
    ;~   64 Preserve undo information, if possible.
    ;~  128 Perform the operation on files only if a wildcard file name (*.*) is specified.
    ;~  256 Display a progress dialog box but do not show the file names.
    ;~  512 Do not confirm the creation of a new directory if the operation requires one to be created.
    ;~ 1024 Do not display a user interface if an error occurs.
    ;~ 2048 Version 4.71. Do not copy the security attributes of the file.
    ;~ 4096 Only operate in the local directory. Don't operate recursively into subdirectories.
    ;~ 8192 Version 5.0. Do not copy connected files as a group. Only copy the specified files.
    Func _CopyWhithProgress($sCopyFrom, $sCopyTo)
        Local $FOF_RESPOND_YES = 16
        Local $FOF_SIMPLEPROGRESS = 256
        $oShell = ObjCreate("shell.application")
    	If Not IsObj($oShell) Then Return SetError(3, 3, '$oShell = ' & $oShell)
    
    
    	Local $iDirCreate, $sCopyTargetDir = StringInStr(FileGetAttrib($sCopyTo), 'D') ? $sCopyTo : _WinAPI_PathStripPath($sCopyTo)
    	If Not FileExists($sCopyTargetDir) Then $iDirCreate = DirCreate($sCopyTargetDir)
    	If $iDirCreate = 0 Then Return SetError(4, 4, '$iDirCreate = ' & $iDirCreate)
    
    
        $oShell.namespace($sCopyTo).CopyHere($sCopyFrom, $FOF_RESPOND_YES)
    
    
    	Return True
    EndFunc
    Alles anzeigen

    _CopyWhithProgress.png

  • cmd Dateien nacheinander starten

    • Bitnugger
    • 11. Mai 2017 um 13:24

    Bitte schön...

    AutoIt
    ;-- TIME_STAMP   2017-05-11 16:53:30   v 0.1
    
    
    #include <File.au3>
    
    
    Global $iError, $iMsgBoxAnswer, $aFileList = _FileListToArray(FileSelectFolder('In welchem Verzeichnis sind die CMDs?', ''), "*.cmd", $FLTA_FILES, True)
    If @error Then Exit
    
    
    _ArrayDisplay($aFileList, '$aFileList')
    
    
    For $i = 1 To $aFileList[0] Step 1
    	; Entweder so, ohne Abfrage...
    ;~ 	$iError = RunWait($aFileList[$i], '', @SW_HIDE)
    ;~ 	If $iError Then ConsoleWrite("Bei diesem Script ist ein Fehler aufgetreten!" & @CRLF & $aFileList[$i] & @CRLF & "!@ " & @TAB & "#Error: " & @error & @TAB & "#Extended: " & @extended & @CRLF)
    
    
    	; oder bei jedem Script fragen...
    	$iMsgBoxAnswer = MsgBox(262435, @ScriptName, "Willst du dieses Script starten?" & @CRLF & @CRLF & $aFileList[$i])
    	Select
    		Case $iMsgBoxAnswer = 6 ;Yes
     			$iError = RunWait($aFileList[$i], '', @SW_HIDE)
     			If $iError Then ConsoleWrite("Bei diesem Script ist ein Fehler aufgetreten!" & @CRLF & $aFileList[$i] & @CRLF & "!@ " & @TAB & "#Error: " & @error & @TAB & "#Extended: " & @extended & @CRLF)
    		Case $iMsgBoxAnswer = 7 ;No
    			Exit
    		Case $iMsgBoxAnswer = 2 ;Cancel
    			; nope ;-)
    	EndSelect
    Next
    Alles anzeigen
  • Grafische Darstellung von Messwerten

    • Bitnugger
    • 11. Mai 2017 um 10:01

    Schau mal, ob du hiermit schon was anfangen kannst... und ob die Berechnungen richtig sind.

    Progress_Demo
    AutoIt
    ;-- TIME_STAMP   2017-05-11 13:39:52   v 0.1
    
    
    #Region    ;************ Includes ************
    #include-once
    #Include <WindowsConstants.au3>
    #include <ColorConstantS.au3>
    #include<StaticConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<ProgressConstants.au3>
    #include <Array.au3>
    #include <Color.au3>
    #include <WinAPI.au3>
    #EndRegion ;************ Includes ************
    
    
    Global Const $STAP_ALLOW_NONCLIENT    =  BitShift(1, 0)
    Global Const $STAP_ALLOW_CONTROLS     =  BitShift(1, 1)
    Global Const $STAP_ALLOW_WEBCONTENT   =  BitShift(1, 2)
    Global $g_hGuiProgressbars, $g_aProgress[2][4]
    Global Enum $enGreen, $enYellow, $enRed, $enProgress, $enProgressBk, $enLabel, $enScala, $enGUI, $enStrom = 0, $enFlow = 1
    ;                    green   , yellow  , red     , Progress, ProgressBk, Labels  , Scala   , GUI_Bk
    Global $g_aColors = [0x00FF00, 0xFFFF00, 0xFF0000, 0x00FF00, 0x2888A8  , 0xDFDFDF, 0xCDADFF, $CLR_NONE]
    Global $g_iProgressWinTransparency = 254, $g_iProgressBarTransparency = 148
    
    
    Global $g_hGui = GUICreate('MainGUI', 840, 580, -1, 200)
    GUISetBkColor($g_aColors[$enGUI], $g_hGui)
    ;~ GUISetBkColor(0xCDADFF, $g_hGui)
    Global $g_aClientSize = WinGetClientSize($g_hGui)
    Global $idShowProgressbars = GUICtrlCreateButton('Hide Progressbars', 2, $g_aClientSize[1] - 26, $g_aClientSize[0] -4, 24)
    GUISetState(@SW_SHOW)
    
    
    Global $g_iDemo = 1, $g_iLoop = 0
    
    
    While True
    	Switch GUIGetMsg()
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $idShowProgressbars
    			If BitAND(WinGetState($g_hGuiProgressbars), 2) = 2 Then	; Visible?
    				AdlibUnRegister('_DoProgress')
    				WinSetState($g_hGuiProgressbars, '', @SW_HIDE)
    				GUICtrlSetData($idShowProgressbars, 'Show Progressbars')
    			Else
    				WinSetState($g_hGuiProgressbars, '', @SW_SHOW)
    				GUICtrlSetData($idShowProgressbars, 'Hide Progressbars')
    				AdlibRegister('_DoProgress', 50)
    			EndIf
    	EndSwitch
    	Select
    		Case $g_iDemo = 1 And $g_iLoop = 0
    			ConsoleWrite('Case $g_iDemo = 1 And $g_iLoop = 0' & @CRLF)
    			$g_iLoop = 1
    			_CreateProgressbars($g_hGui, 251, 72, 28, 10, True)
    			AdlibRegister('_DoProgress', 50)
    		Case $g_iDemo = 2 And $g_iLoop = 0
    			ConsoleWrite('Case $g_iDemo = 2 And $g_iLoop = 0' & @CRLF)
    			$g_iLoop = 1
    			AdlibUnRegister('_DoProgress')
    			_CreateProgressbars($g_hGui, 351, 76, 28, 110, True)
    			AdlibRegister('_DoProgress', 50)
    		Case $g_iDemo = 3 And $g_iLoop = 0
    			ConsoleWrite('Case $g_iDemo = 3 And $g_iLoop = 0' & @CRLF)
    			$g_iLoop = 1
    			AdlibUnRegister('_DoProgress')
    			_CreateProgressbars($g_hGui, 451, 96, 28, 210, True)
    			AdlibRegister('_DoProgress', 50)
    		Case $g_iDemo = 4 And $g_iLoop = 0
    			ConsoleWrite('Case $g_iDemo = 4 And $g_iLoop = 0' & @CRLF)
    			$g_iLoop = 1
    			AdlibUnRegister('_DoProgress')
    			_CreateProgressbars($g_hGui, 551, 60, 28, 310, False)
    			AdlibRegister('_DoProgress', 50)
    		Case $g_iDemo = 5 And $g_iLoop = 0
    			ConsoleWrite('Case $g_iDemo = 5 And $g_iLoop = 0' & @CRLF)
    			$g_iLoop = 1
    			AdlibUnRegister('_DoProgress')
    			_CreateProgressbars($g_hGui, 651, 60, 28, 390, False)
    			AdlibRegister('_DoProgress', 50)
    		Case $g_iDemo = 6 And $g_iLoop = 0
    			ConsoleWrite('Case $g_iDemo = 6 And $g_iLoop = 0' & @CRLF)
    			$g_iLoop = 1
    			AdlibUnRegister('_DoProgress')
    			_CreateProgressbars($g_hGui, 791, 60, 28, 480, False)
    			AdlibRegister('_DoProgress', 50)
    	EndSelect
    WEnd
    
    
    Func _DoProgress()
    	Local Static $c1, $c2, $c3, $t, $f
    	; Strom1
    	$c1 += 10
    	; Strom2
    	$c2 += 10
    	; Strom3
    	$c3 += 10
    	; Temperatur
    	$t += 10
    	; Flow
    	$f += 10
    
    
    	If $c1 > 1023 Then $c1 = 1023
    	If $c2 > 1023 Then $c2 = 1023
    	If $c3 > 1023 Then $c3 = 1023
    	If $t  > 1023 Then $t  = 1023
    	If $f  > 1023 Then $f  = 1023
    
    
    	_SetProgress($c1, $c2, $c3, $t, $f)
    
    
    	If $c1 >= 1023 Then $c1 = 0
    	If $c2 >= 1023 Then $c2 = 0
    	If $c3 >= 1023 Then $c3 = 0
    	If $t  >= 1023 Then $t  = 0
    	If $f  >= 1023 Then $f  = 0
    
    
    	If $f = 0 Then
    		$g_iDemo += 1
    		$g_iLoop = 0
    	Else
    		$g_iLoop = $f
    	EndIf
    EndFunc
    
    
    Func _SetProgress($iStromSensor1, $iStromSensor2, $iStromSensor3, $iTempSensor, $iFlowSensor)
    	If $iStromSensor1 > 1023 Or $iStromSensor1 < 0 Then Return False
    	If $iStromSensor2 > 1023 Or $iStromSensor2 < 0 Then Return False
    	If $iStromSensor3 > 1023 Or $iStromSensor3 < 0 Then Return False
    	If $iTempSensor   > 1023 Or $iTempSensor   < 0 Then Return False
    	If $iFlowSensor   > 1023 Or $iFlowSensor   < 0 Then Return False
    
    
    	Local Static $aProgressColor[2]
    	Local $iPercent, $iProgressColor, $aLabel[3]
    
    
    	For $iProgress = 0 To 1 Step 1
    		Switch $iProgress
    			Case $enStrom
    				$iPercent = Ceiling(($iStromSensor1 + $iStromSensor2 + $iStromSensor3) / 3 / 10.23)
    				GUICtrlSetData($g_aProgress[$iProgress][0], $iPercent)
    				Switch $iPercent
    					Case 0 To 75
    						$iProgressColor = $g_aColors[$enGreen]
    					Case 76 To 90
    						$iProgressColor = $g_aColors[$enYellow]
    					Case Else
    						$iProgressColor = $g_aColors[$enRed]
    				EndSwitch
    				$aLabel[0] = StringFormat('CURRENT %.2fA', ($iStromSensor1 + $iStromSensor2 + $iStromSensor3) / 613.8)			; Ampere
    				$aLabel[1] = StringRight('  ' & $iPercent & '%', 4)																; Progress
    				$aLabel[2] = 'LOAD'																								; LOAD
    			Case $enFlow
    				$iPercent = Ceiling($iFlowSensor / 10.23)
    				GUICtrlSetData($g_aProgress[$iProgress][0], $iPercent)
    				Switch $iPercent
    					Case 0 To 30
    						$iProgressColor = $g_aColors[$enRed]
    					Case 31 To 50
    						$iProgressColor = $g_aColors[$enYellow]
    					Case Else
    						$iProgressColor = $g_aColors[$enGreen]
    				EndSwitch
    				$aLabel[0] = StringFormat('TEMP %2.2f°C', $iTempSensor / 20.46)													; TEMP
    				$aLabel[1] = StringRight('  ' & $iPercent & '%', 4)																; Progress
    				$aLabel[2] = 'FLOW ' & StringRight('    ' & StringFormat('%.2f l/min', $iFlowSensor / 0.568333333333333), 13)	; FLOW
    		EndSwitch
    
    
    		GUICtrlSetData($g_aProgress[$iProgress][1], $aLabel[0])
    		GUICtrlSetData($g_aProgress[$iProgress][2], $aLabel[1])
    		GUICtrlSetData($g_aProgress[$iProgress][3], $aLabel[2])
    		If $aProgressColor[$iProgress] <> $iProgressColor Then
    			$aProgressColor[$iProgress] = $iProgressColor
    			GUICtrlSetColor($g_aProgress[$iProgress][0], $iProgressColor)
    		EndIf
    ;~ 		GUICtrlSetData($g_aProgress[$iProgress][1], $aLabel[0])
    ;~ 		GUICtrlSetData($g_aProgress[$iProgress][2], $aLabel[1])
    ;~ 		GUICtrlSetData($g_aProgress[$iProgress][3], $aLabel[2])
    	Next
    EndFunc   ;==>_SetProgress
    
    
    Func _CreateProgressbars($hWnd, $iWidth, $iHeight, $iLeft, $iTop, $bScale = True)
    	$g_hGuiProgressbars = GUICreate('Progressbars', $iWidth, $iHeight, $iLeft, $iTop, $WS_POPUP, BitOR($WS_EX_TRANSPARENT, $WS_EX_LAYERED, $WS_EX_MDICHILD), $hWnd)
    	GUISetBkColor($g_aColors[$enGUI], $g_hGuiProgressbars)
    ;~ 	GUISetBkColor($CLR_NONE, $g_hGuiProgressbars)
    ;~ 	GUISetBkColor($CLR_DEFAULT, $g_hGuiProgressbars)
    	GUISetState(@SW_SHOW)
    	WinSetTrans($g_hGuiProgressbars, '', $g_iProgressWinTransparency)
    
    
    	Local $y = 5, $h1, $aLabels = [['CURRENT 0,00A', '0%', 'LOAD'], ['TEMP  23,01°C', '0%', 'FLOW ' & StringRight('    ' & StringFormat('%.2f l/min', 0), 13)]]
    
    
    	Switch $iWidth
    		Case 0 To 250
    			Return SetError(1)
    		Case 251 To 350
    			Local $iFontSize = 5, $iFontSize1 = 7, $iFontSize2 = 6
    			$h1 = 10
    			ConsoleWrite('$iWidth = ' & $iWidth & '  $iFontSize = 5' & @CRLF)
    		Case 351 To 450
    			Local $iFontSize = 6, $iFontSize1 = 7, $iFontSize2 = 6
    			$h1 = 14
    			ConsoleWrite('$iWidth = ' & $iWidth & '  $iFontSize = 6' & @CRLF)
    		Case 451 To 550
    			Local $iFontSize = 7, $iFontSize1 = 8, $iFontSize2 = 7
    			$h1 = 16
    			ConsoleWrite('$iWidth = ' & $iWidth & '  $iFontSize = 7' & @CRLF)
    		Case 551 To 650
    			Local $iFontSize = 8, $iFontSize1 = 8, $iFontSize2 = 7
    			$h1 = 18
    			ConsoleWrite('$iWidth = ' & $iWidth & '  $iFontSize = 8' & @CRLF)
    		Case 651 To 750
    			Local $iFontSize = 9, $iFontSize1 = 9, $iFontSize2 = 8
    			$h1 = 20
    			ConsoleWrite('$iWidth = ' & $iWidth & '  $iFontSize = 9' & @CRLF)
    		Case Else
    			Local $iFontSize = 10, $iFontSize1 = 9, $iFontSize2 = 8
    			$h1 = 22
    			ConsoleWrite('$iWidth = ' & $iWidth & '  $iFontSize = 10' & @CRLF)
    	EndSwitch
    
    
    	For $l = 0 To 1 Step 1
    		$g_aProgress[$l][0] = GUICtrlCreateProgress(20, $y, $iWidth -40, $h1, $PBS_SMOOTH)
    		DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", "Explorer", "wstr", $STAP_ALLOW_CONTROLS)
    		WinSetTrans(GUICtrlGetHandle($g_aProgress[$l][0]), '', $g_iProgressBarTransparency)
    		GUICtrlSetColor(-1, $g_aColors[$enProgress])
    		GUICtrlSetBkColor(-1, $g_aColors[$enProgressBk])
    
    
    		Local $aPos = ControlGetPos($g_hGuiProgressbars, '', $g_aProgress[$l][0]), $w = $aPos[2] / 3
    		$g_aProgress[$l][1] = GUICtrlCreateLabel($aLabels[$l][0], $aPos[0] + 5, $aPos[1] + 2, $w, $aPos[3] - 4)
    		GUICtrlSetFont(-1, $iFontSize, 900, 0, 'Courier New')
    		GUICtrlSetColor(-1, $g_aColors[$enLabel])
    		GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    
    
    		$g_aProgress[$l][2] = GUICtrlCreateLabel($aLabels[$l][1], $aPos[0] + ($aPos[2] / 3), $aPos[1] + 2, $w, $aPos[3] - 4, BitOR($GUI_SS_DEFAULT_LABEL, $SS_CENTER))
    		GUICtrlSetFont(-1, $iFontSize, 900, 0, 'Courier New')
    		GUICtrlSetColor(-1, $g_aColors[$enLabel])
    		GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    
    
    		$g_aProgress[$l][3] = GUICtrlCreateLabel($aLabels[$l][2], $aPos[0] -5 + $aPos[2] - $w * 1.5, $aPos[1] + 2, $w * 1.5, $aPos[3] - 4, BitOR($GUI_SS_DEFAULT_LABEL, $SS_RIGHT))
    		GUICtrlSetFont(-1, $iFontSize, 900, 0, 'Courier New')
    		GUICtrlSetColor(-1, $g_aColors[$enLabel])
    		GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    
    
    		If $bScale = True Then
    			Local $x = $aPos[0] - ($iFontSize1 -1) * 2, $x1 = $x, $y = $aPos[1], $w = $iFontSize1 +2, $h = $iFontSize1 +2, $n = Round($aPos[2] / 10), $m = 1, $o = 0
    			For $i = 100 To 0 Step -10
    				GUICtrlSetFont(GUICtrlCreateLabel(' ' & Chr(241) & ' ', $x + $o, $y + $aPos[3], $w * 2.4, $h, BitOR($GUI_SS_DEFAULT_LABEL, $SS_CENTER)), $iFontSize1, 100, 0, 'Wingdings')
    				GUICtrlSetColor(-1, $g_aColors[$enScala])
    				GUICtrlSetFont(GUICtrlCreateLabel(StringFormat(' %3i%%', 100 - $i), $x + $o, $y + $aPos[3] + $iFontSize1, $w * 2.8, $h, BitOR($GUI_SS_DEFAULT_LABEL, $SS_CENTER)), $iFontSize2)
    				GUICtrlSetColor(-1, $g_aColors[$enScala])
    
    
    				If $i = 10 Then $o = -1
    				If $i = 60 Then $m = -1
    				$x += Round($n + $m)
    			Next
    		EndIf
    		$y = ($bScale = True) ? $iFontSize1 * 5.5 : $iFontSize1 * 3.5
    	Next
    EndFunc
    Alles anzeigen
  • Grafische Darstellung von Messwerten

    • Bitnugger
    • 5. Mai 2017 um 20:06

    Ok, habe verstanden, dann ist es halt eine Strommessuung... was aber eh keinen Unterschied für die Progressbar macht. :D

    Einen Fehler habe ich in deinem ersten Beitrag aber noch gefunden... und zwar bei den Farbwerten! :)

    Hier überschneiden sich die Bereiche...

    Zitat von Frost0071

    wobei der Balken von 0%bis 75% grün sein soll von 75% bis 90% gelb und von 90% bis 100% rot.

    Zitat von Frost0071

    jedoch hier sollen 0% bis 30 % rot, 30% bis 50% gelb und 50% bis 100% sollen grün sein

    Richtig wäre z. B.:
    a) 0% - 75% grün, 76% - 90% gelb, 91% - 100% rot
    b) 0% - 30% rot, 31% - 50% gelb, 51% - 100% grün


    Zitat von Frost0071

    Also muss hier die Nichtlinearität nicht berücksichtigt werden oder?

    Bei einer nicht linearen Kennlinie müssen die gelieferten Messerwerte korrigiert werden. Wann, wo und ob dies geschehen muss, ist abhängig von der Schaltung und der Frage, ob du mit dem Fehler leben kannst...

    Wo sollen die Progressbars angezeigt werden?
    - innerhalb deiner GUI
    - relative Position zu deiner GUI

  • _Excel_RangeDelete bricht mit ErrorCode 2 ab?

    • Bitnugger
    • 5. Mai 2017 um 08:44
    Zitat von autoiter

    Der einzige Fall ist glaube ich beim Bauen eines Befehls, den man an die Konsole übergeben will.

    Dies ist der Fall, wenn Parameter Leerzeichen oder Sonderzeichen enthalten, die anderfalls von der Konsole interpretiert werden. Bei SQLite ist es auch oft nötig...

    Hier einer dieser klassischen Fälle, welcher mir damals viel Kopfschmerzen bereitet hatte. :D

    Quotes.png

  • Grafische Darstellung von Messwerten

    • Bitnugger
    • 4. Mai 2017 um 23:41
    Zitat von Frost0071

    Reicht das?

    Ich denke schon... wobei... wie @Oscar schon dazu schrieb:

    Zitat von Oscar

    Die Umrechnung in Grad ist bei den Dingern recht aufwendig, weil die Kennlinie nicht linear ist.

    Für eine genaue Berechnung müssen nicht lineare Kennlinien mit einbezogen werden - die bräuchte ich dann in auswertbarer/tabellarischer Form. (Temperatur, StromSpannung und Durchfluss)
    Die Frage ist also: Mit welcher Formel sollen die Werte berechnet werden?

    Zitat von Frost0071

    Als Input habe ich folgende Signale zur Verfügung:
    3x 0-5V als Strommessung vom Externen Messwandler

    3x 0-5V als StromSpannungsmessung... du bekommst Volt, in deiner ersten Abbildung wird aber der Strom angezeigt... Current 5,00A - das verstehe ich nicht so recht - soll hier Volt in Ampere umgerechnet werden?!


    __
    PT100 Kennlinie in Tabellenform

  • Grafische Darstellung von Messwerten

    • Bitnugger
    • 3. Mai 2017 um 22:57

    Sagte ich doch bereits, dass ich es gerne übernehmen würde. ;)

    Zitat von Frost0071

    Das Signal von den Stromsensoren und dem PT100 sind Anlaogwerte

    Hihi, gefundenes Fressen für @Micha_he... :D

    PT100 = 821 ? (Knöpfe, Bananen, Volt, oder Ohm?) :rolleyes:

  • Ich mag erkennen in welcher Zeile "If" zuspricht

    • Bitnugger
    • 29. April 2017 um 19:41
    Demo ;-)
    AutoIt
    ;-- TIME_STAMP   2017-04-29 22:59:06   v 0.1
    
    
    #Region ;************ Includes ************
    #include <GUIConstantsEx.au3>
    #include <ScrollBarsConstants.au3>
    
    
    #include <Array.au3>
    #include <GuiEdit.au3>
    #EndRegion ;************ Includes ************
    
    
    Global $g_sSpacer = '------------------------------------------------------------------------' & @CRLF
    
    
    Global $g_idEdit_aData, $g_idButton_OK, $g_idButton_ArrayDisplay, $g_idButton_Demo1, $g_idButton_Demo2, $g_idButton_EXIT
    
    
    Global $g_sData = 'Test' ; Der gesuchte String
    Global $g_aData = ['Probe', 'Test', 'Demo', 'Versuch'] ; Das zu durchsuchende Array
    
    
    _ShowData()
    
    
    Func _ShowData()
    	#Region - GUI Create
    	Local $hGUI = GUICreate(@ScriptName, 800, 400)
    	GUISetBkColor(0x2F2F2F, $hGUI)
    	GUISetState()
    	$g_idEdit_aData = GUICtrlCreateEdit('', 0, 0, 800, 350)
    	GUICtrlSetColor($g_idEdit_aData, 0x00FF00)
    	GUICtrlSetFont($g_idEdit_aData, 9, 800, 0, 'Courier New')
    	GUICtrlSetState($g_idEdit_aData, $GUI_HIDE)
    	$g_idButton_ArrayDisplay = GUICtrlCreateButton('_ArrayDisplay($g_aData, "$g_aData")', 0, 350, 400, 50)
    	GUICtrlSetState($g_idButton_ArrayDisplay, $GUI_HIDE)
    	$g_idButton_OK = GUICtrlCreateButton('OK', 400, 350, 400, 50)
    	GUICtrlSetState($g_idButton_OK, $GUI_HIDE)
    	$g_idButton_Demo1 = GUICtrlCreateButton('Demo 1 - Suche "Test"', 0, 0, 400, 350)
    	$g_idButton_Demo2 = GUICtrlCreateButton('Demo 2 - Suche "Func"', 400, 0, 400, 350)
    	$g_idButton_EXIT = GUICtrlCreateButton('EXIT', 0, 350, 800, 50)
    	#EndRegion - GUI Create
    
    
    	#Region - GUI SelectLoop
    	While 1
    		$msg = GUIGetMsg()
    		Select
    			Case $msg = $GUI_EVENT_CLOSE Or $msg = $g_idButton_EXIT
    				GUIDelete()
    				ExitLoop
    			Case $msg = $g_idButton_Demo1
    				GUICtrlSetState($g_idButton_Demo1, $GUI_HIDE)
    				GUICtrlSetState($g_idButton_Demo2, $GUI_HIDE)
    				GUICtrlSetState($g_idButton_EXIT, $GUI_HIDE)
    				GUICtrlSetState($g_idEdit_aData, $GUI_SHOW)
    				_Demo1()
    			Case $msg = $g_idButton_Demo2
    				GUICtrlSetState($g_idButton_Demo1, $GUI_HIDE)
    				GUICtrlSetState($g_idButton_Demo2, $GUI_HIDE)
    				GUICtrlSetState($g_idButton_EXIT, $GUI_HIDE)
    				GUICtrlSetState($g_idEdit_aData, $GUI_SHOW)
    				Local $sData = $g_sData, $aData = $g_aData
    				_Demo2()
    				$g_sData = $sData
    				$g_aData = $aData
    			Case $msg = $g_idButton_ArrayDisplay
    				_ArrayDisplay($g_aData, '$g_aData')
    			Case $msg = $g_idButton_OK
    				GUICtrlSetData($g_idEdit_aData, '')
    				GUICtrlSetState($g_idButton_Demo1, $GUI_SHOW)
    				GUICtrlSetState($g_idButton_Demo2, $GUI_SHOW)
    				GUICtrlSetState($g_idButton_EXIT, $GUI_SHOW)
    				GUICtrlSetState($g_idButton_ArrayDisplay, $GUI_HIDE)
    				GUICtrlSetState($g_idButton_OK, $GUI_HIDE)
    				GUICtrlSetState($g_idEdit_aData, $GUI_HIDE)
    		EndSelect
    	WEnd
    	#EndRegion - GUI SelectLoop
    EndFunc   ;==>_ShowData
    
    
    Func _Demo1()
    	Local $iBINGO = 1
    	For $i = 0 To UBound($g_aData) - 1
    		If StringInStr($g_aData[$i], $g_sData) Then
    			GUICtrlSetData($g_idEdit_aData, 'Bingo (' & $iBINGO & ') - der String "' & $g_sData & '" wurde in $aData[$i] gefunden! ;-)' & @CRLF & @CRLF & _
    					' $i         = ' & $i & @CRLF & @CRLF & _
    					' $aData[$i] = "' & $g_aData[$i] & '"' & @CRLF & @CRLF & _
    					' $aData[ 0] = "' & $g_aData[0] & '"' & @CRLF & _
    					' $aData[ 1] = "' & $g_aData[1] & '"' & @CRLF & _
    					' $aData[ 2] = "' & $g_aData[2] & '"' & @CRLF & _
    					' $aData[ n] = "..."' & @CRLF & $g_sSpacer, 1)
    			$iBINGO += 1
    		EndIf
    	Next
    	_GUICtrlEdit_ScrollToTop($g_idEdit_aData)
    	GUICtrlSetState($g_idButton_ArrayDisplay, $GUI_SHOW)
    	GUICtrlSetState($g_idButton_OK, $GUI_SHOW)
    EndFunc   ;==>_Demo1
    
    
    Func _Demo2()
    	Local $iBINGO = 1, $a, $z
    	$g_sData = 'Func'
    	$g_aData = FileRead(@ScriptFullPath)
    
    
    ;~ 	ConsoleWrite($g_sSpacer & $g_aData & @CRLF & $g_sSpacer)
    
    
    	$g_aData = StringSplit($g_aData, @CRLF, 3) ; 1 = entire delimiter string is needed to mark the split, 2 = disable the return count
    
    
    	For $i = 0 To UBound($g_aData) - 1
    		If StringInStr($g_aData[$i], $g_sData) Then
    			$a = ($i > 0) ? $i - 1 : 0
    			$z = ($i + 3 < UBound($g_aData) - 1) ? $i + 3 : $i
    			GUICtrlSetData($g_idEdit_aData, 'Bingo (' & $iBINGO & ') - der String "' & $g_sData & '" wurde in $aData[$i] gefunden! ;-)' & @CRLF & @CRLF & _
    					' $i           = ' & $i & @CRLF & @CRLF & _
    					' $aData[ $i]  = "' & $g_aData[$i] & '"' & @CRLF & @CRLF, 1)
    			For $n = $a To $z
    				GUICtrlSetData($g_idEdit_aData, ' $aData[' & _FO($n) & ']  = "' & $g_aData[$n] & '"' & @CRLF, 1)
    			Next
    			GUICtrlSetData($g_idEdit_aData, $g_sSpacer, 1)
    			$iBINGO += 1
    		EndIf
    	Next
    	_GUICtrlEdit_ScrollToTop($g_idEdit_aData)
    	GUICtrlSetState($g_idButton_ArrayDisplay, $GUI_SHOW)
    	GUICtrlSetState($g_idButton_OK, $GUI_SHOW)
    EndFunc   ;==>_Demo2
    
    
    Func _FO($vNum)
    	Return StringRight('  ' & $vNum, 3)
    EndFunc   ;==>_FO
    
    
    Func _GUICtrlEdit_ScrollToTop($idEdit)
    	_GUICtrlEdit_LineScroll($idEdit, 0, - _GUICtrlEdit_GetLineCount($idEdit))
    EndFunc   ;==>_ScrollToTop
    Alles anzeigen
  • Grafische Darstellung von Messwerten

    • Bitnugger
    • 29. April 2017 um 09:28

    Hast du die Hardware denn schon einsatzbereit?

    Ich habe mir mal die Infos des Herstellers angeschaut... ja, das wäre eine nette Aufgabe. :)

  • Excel - Formaterkennung für Daten

    • Bitnugger
    • 28. April 2017 um 17:54
    Zitat von BugFix

    vielleicht kennt ihr das

    Ja, das kenne ich.. ^^

    Sehr schön!

    Du sag mal, machst du das Lua-Script (OHK) mit den SciTE-Variablen noch irgendwann fertig? (eg. "props['SciteDirectoryHome']")

  • Alt Gr-Tastenkombination mit HotkeySet abfangen

    • Bitnugger
    • 28. April 2017 um 17:46

    Gut zu wissen...

  • Software incl. Abfrage beenden

    • Bitnugger
    • 28. April 2017 um 17:33
    Zitat von thomasaausr

    Im ganzen "Exit"-Fenster zeigt der Finder die gleichen Daten an, egal ob ich auf die Überschrift zeige oder den "Confirm"-Button

    Nur mal der Richtigkeit halber... wenn du dir die Daten für ein Control angezeigen lassen willst, musst du auch den entsprechenden Tab in dem AutoIt Info-Tool aktivieren!

    Bei "QWidget" ist das jedoch nicht von Bedeutung, weil... allgemein verständlich ausgedrückt... du da eh keine Infos bekommst, da AutoIt mit QWidget nichts anfangen kann.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

  • Das aktuelle Wetter aus dem Internet raussuchen

    • Bitnugger
    • 25. April 2017 um 01:38

    Ich habe kein AutoIT-Script für openweathermap... die API nutze ich normal nur mit Kodi und auf meinem Tablet (beides via Python).

    Hier aber mal ein paar Zeilen mit AutoIt, die ich dir auf die Schnelle getippt habe, damit du in etwa sehen kannst, wie die APIs angesprochen werden.

    Bevor du das Script startest, musst du dir bei openweathermap einen Account erstellen und ein API-Key generieren!

    openweathermap_demo
    AutoIt
    ;-- TIME_STAMP   2017-04-25 01:30:50   v 0.1
    
    
    #include <Array.au3>
    ; Diese UDF habe ich einfach mal vorsorglich mit beigelegt, weil die Response von openweathermap im JSON-Format vorliegt.
    ;~ #Include <Json.au3>
    
    
    Global $g_sOWM_APIKEY = '' ; sollte etwa so aussehen --> 'b5662e7a0509215413bc03dafa0af87c'
    
    
    Global $g_sOWM_APICWD = 'http://api.openweathermap.org/data/2.5/weather?'
    Global $g_sOWM_APICWG = 'http://api.openweathermap.org/data/2.5/group?'
    
    
    ; api.openweathermap.org/data/2.5/weather?q={city name}
    ; api.openweathermap.org/data/2.5/weather?q={city name},{country code}
    ; api.openweathermap.org/data/2.5/weather?id=2172797
    
    
    ; City-IDs: http://bulk.openweathermap.org/sample/city.list.json.gz
    
    
    ; Bis zu 10 IDs pro Query!
    Global $g_sCITY_IDs = '2884509,2934691,2886242' ; Krefeld,Duisburg,Koeln,...
    Global $g_aCITY_IDs = [2824841,2855047,2925177]	; Sulzbach,Peine,Freiburg
    Global $g_aCITY_2Ds = [[2824841, 'Sulzbach'],[2855047, 'Peine'],[2925177, 'Freiburg']]
    
    
    Example()
    
    
    Func Example()
    	Local $vResult
    
    
    	; Ludwigshafen am Rhein
    	$vResult = _Get_Current_weather('2875376')
    	_ArrayDisplay($vResult, '$vResult - Ludwigshafen am Rhein')
    
    
    	; Krefeld,Duisburg,Koeln
    	$vResult = _Get_Current_weather($g_sCITY_IDs)
    	_ArrayDisplay($vResult, '$vResult - Krefeld,Duisburg,Koeln')
    
    
    	; Sulzbach,Peine,Freiburg
    	For $i = 0 To UBound($g_aCITY_IDs) -1 Step 1
    		$vResult = _Get_Current_weather($g_aCITY_2Ds[$i][0])
    		_ArrayDisplay($vResult, '$vResult - ' & $g_aCITY_2Ds[$i][1])
    	Next
    EndFunc
    
    
    Func _Get_Current_weather($vIDs)
    	If $g_sOWM_APIKEY = '' Then Return SetError(1)
    	If $g_sOWM_APICWD = '' Then Return SetError(2)
    
    
    	If IsArray($vIDs) Then $vIDs = _ArrayToString($vIDs, ',')
    
    
    	Local $sAPIURL
    	If StringInStr($vIDs, ',') Then
    		$sAPIURL = StringFormat('%sid=%s&units=metric&APPID=%s', $g_sOWM_APICWG, $vIDs, $g_sOWM_APIKEY)
    	Else
    		$sAPIURL = StringFormat('%sid=%s&APPID=%s', $g_sOWM_APICWD, $vIDs, $g_sOWM_APIKEY)
    	EndIf
    
    
    	Local $oHttp = ObjCreate("winHttp.winHttpRequest.5.1")
    	If Not IsObj($oHttp) Then Return SetError(3)
    
    
    	$oHttp.open("GET", $sAPIURL)
    	$oHttp.send()
    
    
    	Local $aResponse = StringSplit($oHttp.ResponseText, ',')
    
    
    	Return $aResponse
    EndFunc
    Alles anzeigen

    openweathermap - Ludwigshafen am Rhein.png

    Dateien

    Json UDF (2015.01.08).zip 23,78 kB – 267 Downloads
  • FTPEx.au3

    • Bitnugger
    • 23. April 2017 um 23:56
    Zitat von alpines

    Du kannst ja im Browser auch ftp:// verwenden, aber du musst es nicht angeben, weil der Standard nun mal (im Browser zumindest) http/s ist.

    Den Satz solltest du dir aber noch mal genüsslich auf der Zunge zergehen lassen... :D

    Nichtsdestotrotz ist das Protokoll ein erforderlicher Bestandteil einer URL. Wenn NICHT http/s verwendet werden soll, musst du es auch im Browser angeben - oder wenn ein Server sowohl unter https:// als auch unter http:// zu erreichen ist, muss auch hier das http:// angeben werden, wenn du dich mit http:// verbinnden willst, anderfalls wird https:// verwendet.

  • und nochmals RunWait @ComSpec

    • Bitnugger
    • 23. April 2017 um 22:31
    Zitat von AspirinJunkie

    Vor allem benötigst du kein @compspec da du keine Shell-eigenen Befehle verwendest sondern lediglich ein externes Programm.

    Das hatte ich ihm gestern schon gesagt... :D
    Und mein Script startet ein weiteres Dos fenster ?!

    Deine Hilfsfunktion... ich mache das lieber mit StringFormat!
    RunWait(StringFormat('"%s" %s "%s" "%s"', $7, $x, $all, $de), '', @SW_SHOW)

  • FTPEx.au3

    • Bitnugger
    • 23. April 2017 um 21:59
    Zitat von alpines

    Sicher das du beim Servernamen das Protokoll mitangeben musst? Streng genommen gehört er nicht dazu und muss weggelassen werden.

    Deiner Aussage nach dürfte ich dann auch kein https:// vor autoit.de schreiben. ^^
    Das Protokoll musst du sogar angeben, wenn du den Link z. B. in der Adresszeile des Browser oder in der Eingabeaufforderung eingibst, da anderfalls nur nach http und https, aber nicht nach sftp gesucht wird. Wenn noch keine Anwendung mit dem angegebenen Protokoll verknüpft wurde, wird der User dazu aufgefordert eine anzugeben - in seinem Anwendungsfall wäre dies im übertragenen Sinne dann die "psftp.exe".

    Die psftp.exe erwartet als Parameter jedoch nur eine IP oder den Namen eines Servers - ohne Angabe des Protokolls - wer dies mit angibt, der sagt auch seinem Eismann, dass er Eis verkauft... :D
    Anderfalls wird der Aufruf mit ein Fehlermeldung quittiert:
    #~> psftp.exe sftp://8.8.8.8
    ssh_init: Host does not exist
    Richtig ist also, wie @alpines es bereits sagte:
    psftp.exe server.example.com

    Zitat von yoschga

    bekomme immer nur 0 als rückwert ...

    In deinem Script lässt du dir nur den Rückgabewert von _SFTP_FilePut() anzeigen, überprüfst aber aus mir unverständlichen Gründen nicht die Rückgabewerte von _SFTP_Open() und _SFTP_Connect()!

    $sServerName = "sftp://****.de"
    $sServerName = "****.de"
    $sUsername = "root"
    $sPassword = "****"
    $iServerPort = 22 ; Port 22 ist der Default-Port und muss deshalb nicht mit angegeben werden
    $sPath = 'psftp.exe'
    $sPath = 'c:\Putty\psftp.exe' ; Wie hier gezeigt den kompletten Pfad zu der EXE angeben! Anderfalls müsste die psftp.exe im @ScriptDir liegen!
    $hSession = _SFTP_Open($sPath)
    If $hSession = 0 Then Exit 1 + MsgBox(0, '', 'Error: _SFTP_Open - Pfad zur psftp.exe nicht korrekt angegeben?')
    $con = _SFTP_Connect($hSession, $sServerName, $sUsername , $sPassword, $iServerPort)
    $con = _SFTP_Connect($hSession, $sServerName, $sUsername , $sPassword)
    If $con = 0 Then Exit 2 + MsgBox(0, '', 'Error: _SFTP_Connect - IP oder Name des Servers falsch angegeben?')

    PS: Willst du auch in Zukunft Antworten von mir, dann arbeite an deiner Rechtschreibung.

  • Standartgerät erkennen und setzten (Wiedergabegeräte / Audioeinstellung)

    • Bitnugger
    • 22. April 2017 um 21:01

    Das könnte dich auch interessieren:

    .\nircmd.exe setdefaultsounddevice "Line 1"
    http://www.nirsoft.net/utils/nircmd.html

    https://www.cnet.com/how-to/easily-…ces-on-windows/

    https://www.autoitscript.com/forum/topic/16…layback-device/

  • Und mein Script startet ein weiteres Dos fenster ?!

    • Bitnugger
    • 22. April 2017 um 06:09

    Das erste Fenster geht auf, weil du RunWait() mit dem Makro @ComSpec startest.
    Das zweite Fenster geht auf, weil du RunWait() mit dem Makro @SW_SHOW startest.

    Beides ist übrigens unnötig!

    Dein RunWait() hätte so aussehen müssen...

    AutoIt
    RunWait(@ComSpec & ' /c "' & @SystemDir & "\7za.exe" & '" a "' & $destin & '" "' & $source & '"', '', @SW_SHOW)

    Mit StringFormat wird diese Zeile aber leichter zu händeln und auch übersichtlicher...

    AutoIt
    RunWait(StringFormat('"%s" /c "%s" a "%s" "%s"', @ComSpec, @SystemDir & "\7za.exe", $destin, $source), '', @SW_SHOW)

    @ComSpec brauchst du nur, wenn du einen Befehl ausführen willst, der nicht als eigenständige Exe vorhanden ist, sondern in der CMD enthalten ist - z. B. Set, Copy oder Echo. Deshalb kann man das so viel kürzer machen...

    AutoIt
    RunWait(StringFormat('"%s" a "%s" "%s"', @SystemDir & "\7za.exe", $destin, $source), '', @SW_SHOW)


    Schau einfach hier, wie ich es gemacht habe...

    7za
    AutoIt
    ;-- TIME_STAMP   2017-04-22 06:34:34
    
    
    Example()
    
    
    Func Example()
    	Local $sArchiv, $sSource
    	$sSource = "f:\Progdir\CrystalDiskInfo\Smart\HGST HTS541010A9E680JA100A1F30URKM\*.csv"
    	$sArchiv = 'm:\temp\' & @MDAY & "_" & @MON & "_" & @YEAR & "-StocksCVSBackup.zip"
    
    
    	_7za($sArchiv, $sSource)
    EndFunc   ;==>Example
    
    
    Func _7za($sArchiv, $sSource)
    	Local $iErr
    	Local Static $aSevenZa = ['f:\Progdir\7-Zip-Extra\7za.exe', 'f:\Progdir\7-Zip-Extra\x64\7za.exe'], $sSevenZa = (@OSArch = 'X86') ? $aSevenZa[0] : $aSevenZa[1]
    
    
    	; ---------------
    	; Archiv erzeugen
    	; ---------------
    	; Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...]
    	$iErr = RunWait(StringFormat('"%s" a "%s" "%s"', $sSevenZa, $sArchiv, $sSource), '', @SW_HIDE)
    	; --> m:\Temp\22_04_2017-StocksCVSBackup.zip	5,7 k	22.04.2017 05:58	-a--
    	If @error Then
    		MsgBox(262192, @ScriptName, 'Error: 7za wurde mit folgendem Fehlercode beendet: ' & $iErr)
    	Else
    		; ---------------
    		; Quelldateien löschen, wenn das Archiv erstellt werden konnte
    		; ---------------
    ;~ 		FileDelete($sSource)
    	EndIf
    EndFunc   ;==>_7za
    Alles anzeigen
  • Das aktuelle Wetter aus dem Internet raussuchen

    • Bitnugger
    • 22. April 2017 um 00:23

    https://openweathermap.org/api

  • [gelöst] SQL - Positionsabfrage von rechts?

    • Bitnugger
    • 22. April 2017 um 00:10

    Hinweis: http://newsolutions.de/forum-systemi-…orname-Nachname

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™