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

  • Pfad zur Verknüpfung - worüber wurde das Script gestartet

    • Bitnugger
    • 19. Dezember 2017 um 08:11
    Zitat von Sonderbaar

    Wie kannst du das alles nachhalten?

    Bestimmt nicht besser als Du oder andere User... aber ich bin recht gut darin, Sachen zu finden, insofern sie existieren. Zudem wär es sehr erstaunlich, wenn diese Frage nicht bereits in ähnlicher Form gestellt wurde... also auch ein wenig Intuition. ;)

    Hier mal als Inspiration: Übersicht aller Suchparameter für Google

    Bsp: allinurl:Verknüpfung site:autoit.de

  • Meldetext mit automatischen Zeilenumbruch

    • Bitnugger
    • 18. Dezember 2017 um 22:19
    Zitat von sstuercke

    Kennt einer solch ein Skript bzw. einen Lösungsansatz?

    Hm, ja, hier habe ich mal vor einiger Zeit was gebastelt... ist aber noch Pre-Beta... 8)

    _ReSizeCtrl.au3
    AutoIt
    ;-- TIME_STAMP   2017-12-18 22:26:00   v 0.1
    
    #Region    ;************ Includes ************
    #Include <WinAPISys.au3>
    #Include <GuiEdit.au3>
    #Include <GuiScrollBars.au3>
    #Include <WinAPIDiag.au3>
    #Include <StaticConstants.au3>
    #Include <WindowsConstants.au3>
    #Include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #Include <WinAPIGdi.au3>
    #Include <Array.au3>
    #EndRegion ;************ Includes ************
    
    ; Primary display native resolution
    ; https://technet.microsoft.com/en-us/library/dn528846.aspx
    Global Const $iAppliedDPI = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics', 'AppliedDPI')
    Global Const $fScale = Round(96 / $iAppliedDPI, 2)
    ; DPI     Scale factor
    ;  96    100
    ; 120    125
    ; 144    150
    ; 192    200
    
    Global $bDEBUG; = True
    
    Example()
    
    Func Example()
        Local $hGUI = GUICreate("String height & width.", -1, -1, -1, -1, $WS_POPUP)
        GUISetState(@SW_SHOWMAXIMIZED, $hGUI)
        GUISetBkColor(0x000000, $hGUI)
    
        Local $aPos = WinGetPos($hGUI)
    
        ; The text we want to find the height & width of.
        Local $sSomeText = "<Text> Ich soll einen Alarmmonitor für meine Freiwillige Feuerwehr aufbauen. Der Meldetext ist dabei immer sehr lang (mehr als 100 Zeichen). Jetzt suche ich ein Skript das den Text Bildschirmfüllend und mit automatischen Zeilenumbruch und automatischen anpassen der Textgröße. Kennt einer solch ein Skript bzw. einen Lösungsansatz? </Text>"
    
        Local $iStyleEdit  = BitOR($GUI_SS_DEFAULT_Edit, $ES_MULTILINE, $ES_CENTER)
        Local $iStyleLABEL = BitOR($GUI_SS_DEFAULT_LABEL, $WS_BORDER, $SS_LEFT)
    
        ; So (as shown in the AutoIt help) does not!
    ;~     Local $aStringDimension = GetStringDimensions($hGUI, $sSomeText) ; Retrieve a 1 dimensional array: $aStringDimension[0] = width & $aStringDimension[1] = height.
    ;~     _ArrayDisplay($aStringDimension, '$aStringDimension')
    
        Local $iFontSize = 100 * $fScale
    
        Local $idEdit = _CreateEdit($sSomeText, 0, 0, $aPos[2], $aPos[3], $iStyleEdit, 0x0F8FFF, 0x1F1F2F, $iFontSize, 600, 8, 'Comic Sans MS')
    ;~     Local $idLABEL = _CreateLabel($sSomeText, 0, 0, $aPos[2], $aPos[3], $iStyleLABEL, 0x0F8FFF, 0x1F1F2F, $iFontSize, 600, 8, 'Comic Sans MS')
    
        _ReSizeCtrl($idEdit, $sSomeText, $iFontSize)
    ;~     _ReSizeCtrl($idLABEL, $sSomeText, $iFontSize)
    
        Local $msg
        While 1
            $msg = GUIGetMsg()
            Switch $msg
                Case $GUI_EVENT_CLOSE
                    ExitLoop
            EndSwitch
        WEnd
    EndFunc   ;==>Example
    
    Func _ReSizeCtrl($hCtrl, $sText = '', $iFontSize = 8)
    
        If Not IsHWnd($hCtrl) Then $hCtrl = GUICtrlGetHandle($hCtrl)
        If $sText = '' Then $sText = ControlGetText($hCtrl, '', '')
    
        Local $hParent = _WinAPI_GetParent($hCtrl)
        Local $idCtrl = _WinAPI_GetDlgCtrlID($hCtrl)
        Local $aPos = (IsHWnd($hParent) = 1) ? ControlGetPos($hCtrl, '', '') : WinGetHandle($hCtrl)
        Local $w = $aPos[2], $h = $aPos[3]
    
        ConsoleWrite('! $aPos             = ' & _ArrayToString($aPos, ', ') & @CRLF)
        ConsoleWrite('! Old $iFontSize    = ' & $iFontSize & @CRLF & @CRLF)
    
        Local $aStringDimension
    
        GUICtrlSetState($idCtrl, $GUI_HIDE)
    
        Local $iLoop = 0
        While $iLoop < 100
            If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
    
            If $iLoop Then
                ConsoleWrite('> New $iFontSize    = ' & $iFontSize & @CRLF)
                ConsoleWrite('- $aStringDimension = ' & _ArrayToString($aStringDimension, ', ') & @CRLF)
            EndIf
    
            $iLoop += 1
    
            ; Tatda...
            $aStringDimension = GetStringDimensions($hCtrl, $sText)
    
            If $aStringDimension[0] <= $w And $aStringDimension[1] <= $h Then ExitLoop
    
            Select
    ;~             Case $aStringDimension[0] < $w
    ;~                 ConsoleWrite('- Case $aStringDimension[0] < $w' & @CRLF)
    ;~                 $iFontSize += 1
                Case $aStringDimension[0] > $w
                    ConsoleWrite('! Case $aStringDimension[0] > $w' & @CRLF)
                    $iFontSize -= 1
                    GUICtrlSetFont($idCtrl, $iFontSize)
                    ContinueLoop
            EndSelect
            Select
    ;~             Case $aStringDimension[1] < $h
    ;~                 ConsoleWrite('+ Case $aStringDimension[1] < $h' & @CRLF)
    ;~                 $iFontSize += 1
                Case $aStringDimension[1] > $h
                    ConsoleWrite('> Case $aStringDimension[1] > $h' & @CRLF)
                    $iFontSize -= 1
                    GUICtrlSetFont($idCtrl, $iFontSize)
                    ContinueLoop
            EndSelect
    
    ;~         Sleep(25)
        WEnd
    
        GUICtrlSetState($idCtrl, $GUI_SHOW)
    EndFunc   ;==>_ReSizeCtrl
    
    Func _CreateEdit($sText, $x, $y, $w, $h, $iStyle, $iColor = '', $iBkColor = '', $iSize = '', $iWeight = '', $iAttribute = '', $sFontname = '')
        Local $idControl = GUICtrlCreateEdit($sText, $x, $y, $w, $h, $iStyle)
        If @error Then Exit 1
        If $iColor <> '' Then GUICtrlSetColor($idControl, $iColor)
        If @error Then Exit 2
        If $iBkColor <> '' Then GUICtrlSetBkColor($idControl, $iBkColor)
        If @error Then Exit 3
        If $sFontname <> '' Then GUICtrlSetFont($idControl, $iSize, $iWeight, $iAttribute, $sFontname)
        If @error Then Exit 4
        Return $idControl
    EndFunc
    
    Func _CreateLabel($sText, $x, $y, $w, $h, $iStyle, $iColor = '', $iBkColor = '', $iSize = '', $iWeight = '', $iAttribute = '', $sFontname = '')
        Local $idControl = GUICtrlCreateLabel($sText, $x, $y, $w, $h, $iStyle)
        If @error Then Exit 1
        If $iColor <> '' Then GUICtrlSetColor($idControl, $iColor)
        If @error Then Exit 2
        If $iBkColor <> '' Then GUICtrlSetBkColor($idControl, $iBkColor)
        If @error Then Exit 3
        If $sFontname <> '' Then GUICtrlSetFont($idControl, $iSize, $iWeight, $iAttribute, $sFontname)
        If @error Then Exit 4
        Return $idControl
    EndFunc
    
    Func GetStringDimensions($hWnd, $sText)
        Local $hDC = _WinAPI_GetDC($hWnd) ; Get the device context handle of the current window.
        Local $hFont = _SendMessage($hWnd, $WM_GETFONT) ; Retrieve the font with which the control is currently drawing its text.
        Local $hSelectObject = _WinAPI_SelectObject($hDC, $hFont) ; Select the object of the context device.
    
        ; The total extra space, in logical units, to be added to the line of text and the number of break characters in the line.
        Local $iBreakExtra = 1, $iBreakCount = 1
        Local $bAPI = _WinAPI_SetTextJustification($hDC, $iBreakExtra, $iBreakCount)
    
        Local $aMargins[2] = [0, 0], $iLineCount = 1, $iFinalReturn = StringRegExp($sText, '.+\R$'), $sClassName = _WinAPI_GetClassName($hWnd), $hParent = _WinAPI_GetParent($hWnd)
    
        ; Margins ermitteln - funktioniert nicht immer!
        Local $iMargins = _SendMessage($hWnd, $EM_GETMARGINS)
        $aMargins[0] = _WinAPI_LoWord($iMargins) ; Left Margin
        $aMargins[1] = _WinAPI_HiWord($iMargins) ; Right Margin
    ;~     ConsoleWrite('- $aMargins     = ' & _ArrayToString($aMargins, ', ') & @CRLF)
    
        ; Input/Edit?
        If $sClassName = 'Edit' Then
            $iLineCount = _SendMessage($hWnd, $EM_GETLINECOUNT)
    ;~         ConsoleWrite('- $iLineCount   = ' & $iLineCount & @CRLF)
    
            ; mehrzeiliges Edit?
            If $iLineCount > 1 Then
                ; längste Zeile ermitteln
                Local $aLine = [0, 0], $iLength
                For $i = 0 To $iLineCount -1 Step 1
                    $iLength = _SendMessage($hWnd, $EM_LINELENGTH, _SendMessage($hWnd, $EM_LINEINDEX, $i))
                    If $iLength > $aLine[0] Then
                        $aLine[0] = $iLength
                        $aLine[1] = $i
                    EndIf
                Next
    ;~             ConsoleWrite('- $aLine        = ' & _ArrayToString($aLine, ', ') & @CRLF)
                $sText = _GUICtrlEdit_GetLine($hWnd, $aLine[1])
    ;~             ConsoleWrite('! $sText        = ' & $sText & @CRLF)
    
                ; Breite/Höhe der Scrollbars ermitteln
                Local $aRectH = _GUIScrollBars_GetScrollBarRect($hWnd, $OBJID_HSCROLL)
                Local $aRectV = _GUIScrollBars_GetScrollBarRect($hWnd, $OBJID_VSCROLL)
    ;~             ConsoleWrite('- $aRectH       = ' & _ArrayToString($aRectH, ', ') & ' (+' & ($aRectV[2] - $aRectV[0]) +1 & ' +1)' & @CRLF)
    ;~             ConsoleWrite('- $aRectV       = ' & _ArrayToString($aRectV, ', ') & ' (+' & ($aRectH[3] - $aRectH[1]) +1 & ' +1)' & @CRLF)
            EndIf
        EndIf
    
        Local $sClassNameNN, $iEditNN, $iInputNN, $iCN, $iNH, $iNN, $aAll, $aChildWindows = _WinAPI_EnumChildWindows($hParent), $iStyles, $aTopWindows = _WinAPI_EnumWindowsTop()
        $iCN = _ArraySearch($aChildWindows, $sClassName, 1, 0, 0, 0, 1, 1)
        If @error Then
            $aAll = _ArrayFindAll($aTopWindows, $sClassName, 1, 0, 0, 0, 1)
            $sClassNameNN &= $sClassName & UBound($aAll)
        Else
            $iNH = _ArraySearch($aChildWindows, $hWnd, 1)
            While $iCN <= $iNH
                ; Control default styles
                ; $GUI_SS_DEFAULT_EDIT  = 0x003010c0 ; BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL)
                ; $GUI_SS_DEFAULT_INPUT = 0x00000080 ; BitOR($ES_LEFT, $ES_AUTOHSCROLL)
                $iStyles = _WinAPI_GetWindowLong($aChildWindows[$iCN][0], $GWL_STYLE)
                Switch True
                    Case $aChildWindows[$iCN][1] = 'Edit'
                        If BitAND($iStyles, BitOR($ES_WANTRETURN, $WS_VSCROLL)) = BitOR($ES_WANTRETURN, $WS_VSCROLL) Then
                            $iEditNN += 1
                        Else
                            $iInputNN += 1
                        EndIf
                    Case $sClassName = $aChildWindows[$iCN][1]
                        $iNN += 1
                    EndSwitch
                $iCN += 1
            WEnd
    
            Switch True
                Case $sClassName = 'Edit'
                    If BitAND($iStyles, BitOR($ES_WANTRETURN, $WS_VSCROLL)) = BitOR($ES_WANTRETURN, $WS_VSCROLL) Then
                        $sClassNameNN &= $sClassName & $iEditNN
                    Else
                        $sClassName = 'Input' ; (AutoIt)
                        $sClassNameNN &= $sClassName & $iInputNN
                    EndIf
                Case Else
                    $sClassNameNN &= $sClassName & $iNN
            EndSwitch
        EndIf
    ;~     ConsoleWrite('+ $hWnd         = ' & $hWnd & @CRLF)
    ;~     ConsoleWrite('- $sClassName   = ' & $sClassName & @CRLF)
    ;~     ConsoleWrite('- $sClassNameNN = ' & $sClassNameNN & @CRLF)
    ;~     ConsoleWrite('- $iFinalReturn = ' & $iFinalReturn & @CRLF)
    
        ; TextMetrics ermitteln
        Local $tSIZE = _WinAPI_GetTextExtentPoint32($hDC, $sText) ; Retrieve the height & width of a string.
        Local $tTEXTMETRIC = _WinAPI_GetTextMetrics($hDC)
        Local $iPad = 0, $iItalic = DllStructGetData($tTEXTMETRIC, 'tmItalic')
    
        If $bDEBUG Then
            _WinAPI_DisplayStruct($tTEXTMETRIC, $tagTEXTMETRIC)
            If _WinAPI_GetParent($hWnd) Then ControlSetText($hWnd, '', '', ControlGetText($hWnd, '', ''))
        EndIf
    
        ; wenn Italic dann Zuschlag hizufügen
        If $iItalic Then $iPad = DllStructGetData($tTEXTMETRIC, 'tmInternalLeading') +1
    
        ; Resourcen wieder feigeben
        _WinAPI_SelectObject($hDC, $hSelectObject)
        _WinAPI_ReleaseDC($hWnd, $hDC) ; Release the device context.
        Local $aReturn[2] = [DllStructGetData($tSIZE, 'X') + $iPad, DllStructGetData($tSIZE, 'Y')] ; Set an array with the width & height of the string.
    ;~     ConsoleWrite('> $aReturn      = ' & _ArrayToString($aReturn, ', ') & @CRLF)
    
        ; wenn mehrzeiliges Edit, dann die Höhe mit Anzahl der Zeilen mutiplizieren, die Höhe/Breite der Scrollbars hinzufügen
        If $iLineCount > 1 Then
            $aReturn[1] *= $iLineCount + $iFinalReturn ; and an additional line for the final return
    ;~         ConsoleWrite('- V             = ' & ($aRectV[2] - $aRectV[0]) & @CRLF)
    ;~         ConsoleWrite('- H             = ' & ($aRectH[3] - $aRectH[1]) & @CRLF)
            $aReturn[0] += ($aRectV[2] - $aRectV[0]) + $iBreakExtra
            $aReturn[1] += ($aRectH[3] - $aRectH[1]) + $iBreakExtra
        EndIf
    
    ;~     ConsoleWrite('> $aReturn      = ' & _ArrayToString($aReturn, ', ') & @CRLF)
    
        ; die Margins hinzufügen
        $aReturn[0] += $aMargins[0] + $aMargins[1]
    ;~     ConsoleWrite('> $aReturn      = ' & _ArrayToString($aReturn, ', ') & @CRLF)
    
    ;~     ConsoleWrite('! $sText        = ' & $sText & @CRLF)
    ;~     ConsoleWrite('! $aReturn      = ' & _ArrayToString($aReturn, ', ') & @CRLF & @CRLF)
    
        Return $aReturn
    EndFunc   ;==>GetStringDimensions
    
    Func _Wait()
        Local $aMousePos
        Do
            $aMousePos = MouseGetPos()
            ToolTip('Sleep ' & @DesktopHeight /2 - $aMousePos[1], $aMousePos[0] +50, $aMousePos[1] -50)
            Sleep(250)
        Until $aMousePos[1] > @DesktopHeight /2
        ToolTip('')
    EndFunc
    Alles anzeigen
  • Pfad zur Verknüpfung - worüber wurde das Script gestartet

    • Bitnugger
    • 18. Dezember 2017 um 22:11
    Zitat von AutoMit

    Etwas vergleichbares gab es im Thread

    Deiner Aussage nach wäre dann "einen Baum pflanzen" vergleichbar mit "einen Baum fällen". Den Parent-Prozess herauszufinden ist zudem auch keine komplizierte Sache!

    Ich denke das wird nicht möglich sein, denn egal von welchem Prozess dein Script via Verknüpfung gestartet wurde... die relevanten Daten werden aus der Verknüpfung gelesen - diese wird dann vergessen, weil nicht mehr benötigt - und dann wird dein Script dementsprechend gestartet - Ende der Geschichte.

    Hier hast du übrigens eine vergleichbare Frage hestellt... 8o

  • VirtualDesktop

    • Bitnugger
    • 18. Dezember 2017 um 01:29

    Hm, welche anderen sollen das sein?

    _WinAPI_#desktop#.png

  • Icon in der Titelleiste einer GUI ändern

    • Bitnugger
    • 13. Dezember 2017 um 22:24

    Für das unkompilierte Script, nach dem Erzeugen der GUI:

    AutoIt
    GUISetIcon ( iconfile [, iconID [, winhandle]] )

    Für die komplilierte Exe, an den Anfang des Scripts:

    AutoIt
    #AutoIt3Wrapper_Icon=Icons\iconfile                           ;Filename of the Ico file to use for the compiled exe
  • Datei "verschlüsselt" einlesen

    • Bitnugger
    • 11. Dezember 2017 um 09:26

    Im Anhang findest du eine kleine Demo...

    Dateien

    _Crypt.rar 681,16 kB – 392 Downloads
  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 3. Dezember 2017 um 22:54

    Ich habe momentan leider keine Zeit dafür... hier aber mal ein paar Beispiele, was ich korrigieren/ändern würde:

    WinGetPos

    Rückgabewert

    Fehler: setzt @error auf ungleich 0, wenn des das Fenster nicht gefunden wurde.

    Bemerkungen

    ... Falls mehrere Fenster das angegebene Kriterium erfüllen, wird das zuletzt aktive Fenster abgefragt verwendet.

    _FileListToArray

    Bemerkungen

    Die wird zum Beispiel *test*.* wird zum Beispiel beide Unterordner testX und testX.X erkennen.


    Einführung

    AutoIt wurde entwickelt, um so klein wie möglich und um selbstständig ausführbar ohne externe .dll-Dateien oder Registierungseinträge zu sein. Dies ermöglichst ein sicheres arbeiten auf Servern.

    AutoIt wurde so konzipiert, dass es so klein wie möglich und eigenständig ist, ohne dass externe DLL-Dateien oder Registrierungseinträge erforderlich sind, um die Verwendung auf Servern zu ermöglichen.
    GUIRegisterMsg

    Warnung: Das Blockieren von laufenden Benutzerfunktionen, die Fensternachrichten verwenden (z.B. mit Befehlen wie "MsgBox()"), kann zu unerwartetem Verhalten führen. So schnell wie möglich sollte dann die Rückkehr zum System stattfinden !!!

    Warnung: Das Blockieren laufender Benutzerfunktionen, die Fenstermeldungen mit Befehlen wie "MsgBox()" ausführen, kann zu unerwartetem Verhalten führen - die Rückkehr zum System sollte so schnell wie möglich erfolgen!!!

    TrayItemGetHandle

    Bemerkungen

    Um den Handle des Traymenüs selbst zu erhalten, ist als Control-ID '0' zu verwenden.

    Verwenden Sie '0' als controlID, um das Handle zum Tray-Kontextmenü selbst zu bekommen.

    ACos

    Rückgabewert

    Gibt den trigonometrischen Arcus-Cosinus von einer Zahl aus. Das Ergebnis wird als Bogenmaß (Radiant) zurückgegeben (lat. arcus = Bogen)

    Gibt den trigonometrischen Arcosinus der Zahl zurück. Das Ergebnis ist im Bogenmaß angegeben.

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 3. Dezember 2017 um 17:54

    Wenn ich in den nächsten Wochen Zeit dafür finde, werde ich einen Theme-Manager für die AutoIt-Hilfe schreiben.

    Nicht wirklich wichtig, aber vielleicht doch erwähnenswert...

    Ich selbst benutze die deutsche Hilfe NICHT - zum einen weil mein Englisch gut genug ist, um mit der originalen Hilfe klarzukommen, zum andern weil die doppelte Anzahl der Suchergebnisse für meine Begriffe kontraproduktiv ist, desweiteren aber auch, weil die Übersetzung an etlichen Stellen nicht korrekt ist. Mit meinen Beiträgen zu diesem Thema möchte ich lediglich meinen Respekt zu diesem Mammut-Projekt bekunden und auch Aspekte ansprechen, die hier nicht genannt wurden, welche aber womöglich für den einen oder anderen User von Interesse sind.

    Abschließend noch: Die ultimative Hilfe für AutoIt schreibt man natürlich mit AutoIt! 8o

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 29. November 2017 um 21:40

    Tuxedo

    Hätte ich geschrieben, dass Tweaky die Hintergrundfarbe so einstellen soll, wie ich sie in meinem Beispielbild gesetzt habe, würde ich dir zu 50% zustimmen, mit dem was du da sagst. Ich hatte aber geschrieben, dass es schön wäre, wenn sie etwas dunkler wäre... dass würde sich nur minimal auf den Kontrast der Farben auswirken und man bräuchte nur die Farbe/n für den Hintergrund in der default.css ändern, was eine Sache von Minuten ist.

    Zudem bin ich mir rel. sicher, dass ein allgemeines Interesse daran besteht, mehrere Styles verwenden zu können. Ein Script dafür zu schreiben, mit dem man diese verwalten und auch bereits fertige Schemes für SciTE importieren kann, sollte nicht allzu schwierig sein. Leider habe ich momentan keine Zeit dafür...

    So in etwa hatte ich es im Sinn...

          original              mintcream      

    mintcream.png

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 29. November 2017 um 07:51
    Zitat von Tweaky

    Die Anzahl der Treffer sind nicht genau doppelt do viel wie in der englischen Hilfe, da nicht alles übersetzt ist ...

    Ja, klar... daran hatte ich gar nicht gedacht.

    Zitat von Tweaky

    Welche Hintergrundfarbe meinst du genau? Wüsste allerdings auch nicht wo ich deis einstellen könnte.

    Das kannst du doch in dem Bild in Post #17 sehen.

    Ändern kannst du die Farben in der Datei AutoIt.chm\html\css\default.css. Ich habe dir mal meine geänderte default.css in den Anhang gelegt.

    Dateien

    default.zip 2,24 kB – 633 Downloads
  • Bit aus 0xZahl abfragen

    • Bitnugger
    • 28. November 2017 um 00:46

    Vor ein paar Monaten habe ich mir für die Statusabfrage eines Raspberry Pi 3 eine ähnliche Funktion getippert...

    AutoIt
    _Example()
    
    Func _Example()
        Local $iBit, $sBinaryString = "0xAABBCCDDEEFF"
    
        ConsoleWrite(@CRLF & '! Bits 0-7 von Byte 1 testen'  & @CRLF)
        For $i = 0 To 7 Step 1
            $iBit = _ChkBitFromBinaryString($sBinaryString, 1, $i)
            _PrintResult('$iBit', $iBit, @ScriptLineNumber, @error)
        Next
    
        ConsoleWrite(@CRLF & '! Bit 4 von Byte 2 testen'  & @CRLF)
        $iBit = _ChkBitFromBinaryString($sBinaryString, 2, 4)
        _PrintResult('$iBit', $iBit, @ScriptLineNumber, @error)
    
        ConsoleWrite(@CRLF & '! Bit 6 von Byte 4 testen'  & @CRLF)
        $iBit = _ChkBitFromBinaryString($sBinaryString, 4, 6)
        _PrintResult('$iBit', $iBit, @ScriptLineNumber, @error)
    
        ConsoleWrite(@CRLF & '! Bit 7 von Byte 7 testen --> Error!'  & @CRLF)
        $iBit = _ChkBitFromBinaryString($sBinaryString, 7, 7)
        _PrintResult('$iBit', $iBit, @ScriptLineNumber, @error)
    EndFunc
    
    ; $iByteNumber = 1 - 1073741821 (2147483646/2-2), $iBitnumber = 0 - 7
    Func _ChkBitFromBinaryString($sBinaryString, $iByteNumber, $iBitnumber)
        If Mod(StringLen($sBinaryString), 2) Then $sBinaryString = StringReplace($sBinaryString, '0x', '0x0')
        Local $aBinary = StringRegExp($sBinaryString, '..', 3)
        Select
            Case @error Or UBound($aBinary) = 1 Or StringRegExpReplace($sBinaryString, '[0x]|[\d{1,2}]|[A-F{1,2}]', '')
                Return SetError(1, 0, '$sBinaryString ist kein BinaryString! --> 0xF, 0x0F, 0xF83, 0x0F83, ...')
            Case $iByteNumber < 0
                Return SetError(2, 0, '$iByteNumber ist zu klein!')
            Case $iByteNumber > UBound($aBinary) -1
                Return SetError(3, 0, '$iByteNumber ist zu gross!')
            Case Else
                Local $sBin, $sBit
                For $i = 7 To 0 Step -1
                    $sBin &= BitAND('0x' & $aBinary[$iByteNumber], 2^$i) ? 1 : 0
                    $sBit &= $i = $iBitnumber ? '^' : ' '
                Next
                ConsoleWrite('- ------------------------------------------------------------------------' & @CRLF)
                ConsoleWrite('> $sBinaryString     = ' & $sBinaryString  & @CRLF)
                ConsoleWrite('> $iByteNumber       = ' & $iByteNumber & ' [0x' & $aBinary[$iByteNumber] & '] [' & $sBin & ']' & @CRLF)
                ConsoleWrite('> $iBitnumber        = ' & $iBitnumber  & ' [0x' & Hex(2^$iBitNumber, 2)  & '] [' & $sBit & ']' & @CRLF)
                ConsoleWrite(StringFormat('+ BitAND(0x%s, 0x%s) = 0x%s\r'  , $aBinary[$iByteNumber], Hex(2^$iBitnumber, 2), Hex(BitAND('0x' & $aBinary[$iByteNumber], 2^$iBitnumber), 2)))
                Return BitAND('0x' & $aBinary[$iByteNumber], 2^$iBitnumber) ? 1 : 0
        EndSelect
    EndFunc
    
    Func _PrintResult($sBit, $iBit, $iScriptLineNumber, $iError)
        ConsoleWrite(StringFormat('@@ Debug line\t%2i   var: %s --> %1i\r!@ \t#Error: %i\r%s\r\r', _
                    $iScriptLineNumber, $sBit, $iBit, $iError, _
                    '+ ------------------------------------------------------------------------'))
    EndFunc
    Alles anzeigen
  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 27. November 2017 um 18:03

    Anzahl der Treffer und Rang

    Mir aufgefallen, dass die deutsche Hilfe sich anders verhält bzw. ein Problem hat, wenn nach Macros gesucht wird, z. B. @UserProfileDir oder @error.

    Die englische Hilfe springt zum Tab Inhalt und wählt die entsprechende Unterkategorie aus... bei @UserProfileDir ist es Verzeichnis, bei @error AutoIt Related, die deutsche springt zum Tab Index und das war es dann.

    Im angefügten Bild ist zu sehen, was passiert, wenn nach @OSVersion gesucht wird.

    Die unterschiedliche Anzahl der Treffer hängt sicher damit zusammen, das die Ergebnisse doppelt angezeigt werden, einmal in DE, einmal in EN... aber es sind nicht genau doppelt so viele... wo kommen die anderen her?

    Hinzu kommt, dass die die Ergebnisse auch vom Rang her anders sortiert werden... woran liegt das denn?

    Schön wäre zudem, wenn die Hintergrundfarbe ein wenig dunkler wäre...

    AutoIt_Deutsche_Hilfe_Anzahl_Treffer_und_Rang.png

  • Drucker - Treiber - Exes - Verteiler

    • Bitnugger
    • 27. November 2017 um 12:55

    Schau mal ob dir das weiterhilft...

    https://www.autoitscript.com/forum/topic/15…management-udf/

    https://www.autoitscript.com/forum/topic/51…-udf-and-a-dll/

    http://mannis-shoutbox.de/computer/von-d…ucker-umleiten/

  • GetUniqueColors

    • Bitnugger
    • 26. November 2017 um 18:02
    Zitat von UEZ

    Wie viele Farben hat dieses 32-bit PNG Bild wirklich?

    Alle falsch.. hier ist die richtige Zahl! :rofl:

    TC_Lister.png

  • AutoIt 3.3.14.2 deutsch / englische Hilfe verfügbar - Stand 2017.11.12

    • Bitnugger
    • 26. November 2017 um 17:49
    Zitat von Tweaky

    Das Problem aus Post 6 habe ich nicht aufgenommen, da bei mir die Checkbox "Zulassen" nicht verhanden ist.

    Solltest du aber, denn die Checkbox wird nur angezeigt, wenn die Datei alternative Datenströme enthält, was bei dir dann wohl nicht (mehr) der Fall ist!

    5.6.1 Zone.Identifier Stream Name

    Bei dieser Datei würdest du das Häkchen sehen...

    ADS.png

  • Hex(2^0) = ?

    • Bitnugger
    • 25. November 2017 um 22:37
    Zitat von AspirinJunkie

    Vielleicht wird so klarer was die Ursache ist:

    Ja, verstehe... böse Falle... ok, dann verbuche ich das halt auch als eine der unliebsamen Kuriositäten in AutoIt und werde Expressionen in Zukunft nur noch mit Int/Dec an Hex übergeben.

    Danke euch beiden!

  • Hex(2^0) = ?

    • Bitnugger
    • 25. November 2017 um 20:36

    Entweder habe ich in der Schule nicht gut genug aufgepasst, oder aber AutoIt rechnet falsch?!

    Hier sollte meiner Meinung nach in beiden Fällen eine 1 bzw. 0x0000000000000001 als Ergebnis kommen, was aber nicht der Fall ist.

    AutoIt
    ConsoleWrite('> 2^0 = ' & 2^0 & @CRLF)
    ConsoleWrite('+ 2^0 = 0x' & Hex(2^0) & @CRLF)

    Ausgabe:

    > 2^0 = 1

    + 2^0 = 0x3FF0000000000000

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 25. November 2017 um 19:50
    Zitat von autoiter

    Scheinbar ecke ich mit meinen Kommentaren in letzter Zeit bei Usern/Userinnen bzw. einem User an.

    Wir sind lediglich anderer Meinung... also alles im grünen Bereich! ;)

    Zitat von autoiter

    Es war ein nicht böse gemeinter Hinweis.

    Ja sicher doch... tut mir leid, wenn dir meine Antwort darauf nicht gefallen hat. Ich wollte dich damit keinesfalls verärgern!

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 25. November 2017 um 17:12
    Zitat von autoiter

    Soweit sollte man nicht gehen. Das ist auch kein schöner Stil.

    Nun, ich denke, das ist eine Frage des persönlichen Geschmacks... mir gefällt es. Wie würdest du es denn übersetzen?

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 25. November 2017 um 15:40
    Zitat von BigRox

    Es steht zwar im englischen:

    Deletes the specified element(s) from the specified 1D or 2D array

    Aber stimmt das eigentlich so, überall list man nämlich, dass man Werte nicht von einem Array, sondern aus einem Array löscht.

    Damit hast du selbstverständlich Recht... nicht von, sondern aus

    Entfernt das festgelegte Element bzw. die festgelegten Elementes aus dem festgelegten 1D oder 2D Array

    ...oder so:

    Entfernt das bzw. die festgelegte(n) Element(e) aus dem festgelegten 1D oder 2D Array

    Ich würde es so übersetzen, u.A. weil Wortwiederholungen innerhalb eines Satzes unfein sind:

    Löscht das/die festgelegte/n Element/e aus dem angegebenen 1D-/2D-Array

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™