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

Beiträge von Moombas

  • IR-Bewegungsmelder in ODER-Schaltung verwenden

    • Moombas
    • 9. August 2022 um 14:36

    :rofl::rofl:

    Mensch Alina ^^ Da musste ich kurz schmunzeln.

    Ein Relais hat (normalerweise) selber keinen Einfluss auf die Zeit, die es braucht, bis es wieder abfällt, das regelt die Schaltung drum herum.

    Und um deine andere Frage zu beantworten: BMW verbaut, wie viele andere Autohersteller, Boschbauteile.

    BJ ist Busch-Jäger, ein Hersteller für Hausinstallation ((Licht-)Schalter, Steckdosen, etc.).

  • Frage zur Screenshotfunktion

    • Moombas
    • 9. August 2022 um 13:29

    Ja, das sieht in der tat nicht richtig aus ;)  casi4712

  • IR-Bewegungsmelder in ODER-Schaltung verwenden

    • Moombas
    • 9. August 2022 um 09:55

    Nicht wirklich, ein Ausgang sollte (insbesondere heutzutage) entsprechend gesichert sein. Bei Elektronik übernimmt das z.B. eine Diode am Ausgang, wobei das IC ja nicht direkt am Ausgang sitzt, sondern wohl eher ein Schaltrelais (da hier 230V geschaltet werden), dem das wiederum egal sein müsste. Alles andere wäre schlechte Qualität und das wiederum erwarte ich nicht von BJ, eher von einem Chinaprodukt.

    Aber da ich dazu leider auch keine weiteren Datenblätter (interne Beschaltung etc.) finden konnte bleibt nur eine Nachfrage bei BJ selbst (oder dem Elektriker deines vertrauens) bzw. wenn du es leise klacken hörst, wenn der BWM schaltet, sitzt ein mechan. Schaltrelais im BWM und somit sollte es egal sein, was am Ausgang anliegt.

    Aber wie immer: Alle Angaben ohne Gewähr :P

  • IR-Bewegungsmelder in ODER-Schaltung verwenden

    • Moombas
    • 9. August 2022 um 09:38

    Und eine Parallelschaltung käme nicht in Frage?

    Der einzige Nachteil wäre dabei, das wenn deine Frau das Licht ausschaltet, das Licht evtl. noch die für den im BWM von dir eingestellten Zeitwert an bleibt.

  • IR-Bewegungsmelder in ODER-Schaltung verwenden

    • Moombas
    • 9. August 2022 um 09:27
    Zitat von BugFix

    wenn meine Frau beim Verlassen des Raumes von Manuell wieder auf Automatik schaltet und somit den BWM aktiviert.

    Es kann auch sein, dass das ein Verhalten ist, weil du den BWM komplett vom Strom genommen hattest (durch den Wechselschalter, siehe meine Beschreibung in Post #2).

    Dazu gäbe es 2 Lösungsansätze:

    1. Schau mal ob du beim BWM einstellen kannst das er, wenn er Strom bekommt per Standard geschaltet (an) oder ungeschaltet (aus) sein soll. Du wirst hier "aus" benötigen.
    2. Oder probier mal eine "echte" oder-Schaltung (Parallelschaltung).
  • IR-Bewegungsmelder in ODER-Schaltung verwenden

    • Moombas
    • 9. August 2022 um 09:17

    Ich weiß ja nicht welchen BWM du von BJ hast aber den den ich gefunden hatte, hat laut Anleitung rädchen für Einstellungen (Helligkeit und Zeit).

    Das ist ein Vorteil von Smarthome: Alles digital Einstellen und dafür nichts mehr aus der Dose holen müssen ;)

  • IR-Bewegungsmelder in ODER-Schaltung verwenden

    • Moombas
    • 9. August 2022 um 09:01

    Eine Oderschaltung ist das ja nicht, denn wenn dein Wechselschalter gedrückt ist, ist der BWM außer Kraft gesetzt (wenn der Lichtschalter aus gemacht wird, geht das Licht auch aus, aber denke das ist von dir so gewollt). Eine Oder-Schaltung wäre eine simple Parallelschaltung aus meiner Sicht (Wenn Lichtschalter aus gemacht wird aber der BWM noch sagt "Licht an" bleibt es an).

    Oderschaltung: Wechselschalter oder BWM

    Du hast also: (Wechselschalter) oder ("Wechselschalter nicht" UND BWM)

    Hast du dir mal das Datenblatt angesehen?`

    Bewegungsmelder haben oft einen einstellbaren Wert der "Nach Einschalten (mind.) X-Minuten eingeschaltet bleiben und Sensor bis dahin ignorieren", der bei dir hier scheinbar auf 10 Minuten steht.

    Ich habe das gleiche Problem beim Umrüsten auf Smarthome (task ongoing) gehabt und der Wert muss dann erst mal abgeändert werden.

    Aber Achtung: Der Wert sollte größer sein als die Abtastrate des Sensors (ich empfehle mind. den doppelten Wert), also der Wert in denen der Sensor erneut prüft ob jemand vorbei läuft. Sonst hast du beim Vorbeilaufen Disco :D

  • Frage zur Screenshotfunktion

    • Moombas
    • 5. August 2022 um 14:50

    Hier als Beispiel das bei mir funktionierte um doch beide deine Fragen mit "ja" zu beantworten ;)

    AutoIt
    Opt('MustDeclareVars', 1)
    #include <ScreenCapture.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <SendMessage.au3>
    Global $i
    Global $iCounter = 0
    Global $hGUI
    
    $hGUI = GUICreate("Screen Capture", 400, 300)
            GUISetState(@SW_SHOW)
    
    _GDIPlus_Startup()
    
    For $i = 1 to 10
        Sleep(2000)
        Example()
    Next
    
    _GDIPlus_Shutdown()
    
    Func Example()
            ; Capture window
            $iCounter += 1
            _WinAPI_SaveHBITMAPToFile("Path\GDIPlus_Image_" & $iCounter & ".jpg", _CaptureWindow($hGUI))
    EndFunc   ;==>Example
    
    Func _CaptureWindow($hWnd)
        Local $WM_PAINT = 0x000F
        Local $WM_PRINT = 0x317
        Local $PRF_CHILDREN = 0x10; Draw all visible child windows.
        Local $PRF_CLIENT = 0x4 ; Draw the window's client area.
        Local $PRF_OWNED = 0x20 ; Draw all owned windows.
        Local $PRF_NONCLIENT = 0x2 ; Draw the window's Title area.
        Local $PRF_ERASEBKGND = 0x8 ; Erases the background before drawing the window
    
        Local $pos = WinGetPos($hWnd)
        Local $Width = $pos[2]
        Local $Height = $pos[3]
    
        Local $hDC = _WinAPI_GetDC($hWnd)
        Local $memDC = _WinAPI_CreateCompatibleDC($hDC)
        Local $memBmp = _WinAPI_CreateCompatibleBitmap($hDC, $Width, $Height)
    
        _WinAPI_SelectObject ($memDC, $memBmp)
    
        Local $Ret = _SendMessage($hWnd, $WM_PAINT, $memDC, 0)
        $Ret = _SendMessage($hWnd, $WM_PRINT, $memDC, BitOR($PRF_CHILDREN , $PRF_CLIENT, $PRF_OWNED, $PRF_NONCLIENT, $PRF_ERASEBKGND))
    
        Local $hBMP=_GDIPlus_BitmapCreateFromHBITMAP($memBmp)
        Local $hHBITMAP=_GDIPlus_BitmapCreateHBITMAPFromBitmap($hBMP)
    
        _WinAPI_DeleteObject($hDC)
        _WinAPI_ReleaseDC($hWnd, $hDC)
        _WinAPI_DeleteDC($memDC)
        _WinAPI_DeleteObject($memBmp)
        _WinAPI_DeleteDC($hDC)
    
        Return $hHBITMAP
    EndFunc ;==>_CaptureWindow()
    Alles anzeigen
  • Frage zur Screenshotfunktion

    • Moombas
    • 5. August 2022 um 14:00

    Zur ersten Frage kann ich nicht viel sagen, denke aber nicht das es möglich ist aber da wissen andere hier sicherlich mehr ;)

    Edit: Schau mal hier ob dir das hilft: https://www.autoitscript.com/forum/topic/10…comment=1014178

    Zur zweiten Frage: Bau dir einen Counter ein und verbinde diesen mit dem Namen, dann erreichst du genau das.

    Ein Beispiel anhand des Beispielcodes:

    AutoIt
    Opt('MustDeclareVars', 1)
    #include <ScreenCapture.au3>
    Global $i
    Global $iCounter = 0
    Global $hGUI
    
    $hGUI = GUICreate("Screen Capture", 400, 300)
            GUISetState(@SW_SHOW)
    
    For $i = 1 to 10
        Sleep(250)
        Example()
    Next
    
    Func Example()
    
            ; Capture window
            $iCounter += 1
            _ScreenCapture_CaptureWnd(@MyDocumentsDir & "\GDIPlus_Image_" & $iCounter & ".jpg", $hGUI)
    EndFunc   ;==>Example
    Alles anzeigen
  • Quelltext von Firefox Version 91.0.2 (64-Bit) auslesen

    • Moombas
    • 3. August 2022 um 10:10

    Blöde Frage: Warum machst du das nicht über einen http-request? Dann kannst du direkt senden was du willst und bekommst die entsprechende Antwort zurück.

    Hier mal etwas, das wir nutzen, ich habe mal die personalisierten Sachen raus gekürzt, musst du dann mal schauen.

    AutoIt
    Func SendRequest($Target, $TargetIP) ;TargetIP wäre die hostadresse in deinem Fall
    Local $sOut, $Url, $oHTTP, $Response
    Local Const $sUserName = "username"
    Local Const $sPassword = "passwort"
    
        $Target = _URIEncode($Target)
    
        $Url = "https://" & $TargetIP & $Target
    
        $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    
        $oHTTP.Open("GET", $Url, False)
        $oHTTP.Option(4) = 13056        ; THIS IS MANDATORY! Ignores any SSL Errors
        $oHTTP.SetCredentials($sUserName, $sPassword, 0)
        $oHTTP.Send()
        $Response = $oHTTP.Status
        $sOut = $oHTTP.ResponseText
    
        if $Target = '/' then Return $sOut
    
        if $Response = '200' then       ;Erfolg
            Return True
        Else
            Return $Response            ;Fehler
        EndIf
    EndFunc
    Alles anzeigen
  • Splash Font automatisch anpassbar

    • Moombas
    • 3. August 2022 um 09:41

    Den Titel wirst du doch anders los. Du hast das im falschen Parameter übergeben.

    Lass das ", $DLG_NOTITLE" weg und ändere den Parameter "20" auf "21".

    Alternative zur 21 kannst du es auch so machen (anstatt der 20):

    BitOR($DLG_NOTITLE, $DLG_TEXTLEFT, $DLG_MOVEABLE)

    Bevorzuge ich in der Regel, da dann zu sehen ist, was gesetzt wird und man muss sich das nicht raus suchen errechnen bzw. zurück rechnen.

  • Splash Font automatisch anpassbar

    • Moombas
    • 3. August 2022 um 09:07
    Zitat von casi4712

    ok na so lange Pfade werd ich nicht brauchen, aber es wäre klasse wenn man nun auch noch die den Parameter $DLG_NOTITLE für titelloses Fenster nutzen könnte. Das geht aber nicht oder?


    lg und schönen Morgen


    Chris

    casi4712 Im Zweifelsfall: Trial and error

  • Splash Font automatisch anpassbar

    • Moombas
    • 3. August 2022 um 08:24
    Zitat von Oscar

    Nö, ist kein großes Problem:

    Da sieht man den Unterschied, wenn jemand im Thema ist ;) GDI+ ist nicht so unbedingt meins.

  • Splash Font automatisch anpassbar

    • Moombas
    • 2. August 2022 um 16:02

    Das Beispiel funktioniert gut Oscar Aber auch dort ist spätestens dann ein Problem, wenn wegen der Länge des Textes eine Zweite/dritte Zeile genutzt wird.

    Ich würde empfehlen das über eine eigene GUI zu machen. Mir scheint das SplashOnScreen nicht so intuitiv zu sein für das was du möchtest. casi4712

  • Splash Font automatisch anpassbar

    • Moombas
    • 2. August 2022 um 15:08

    @Casi, wenn du einen 21:9 hast wie du nun zuletzt geschrieben hast, ändere die 16 auf 21.

    Aber wie gesagt hier bei mir passte das mit diesem Code nie.

  • Splash Font automatisch anpassbar

    • Moombas
    • 2. August 2022 um 13:38
    Zitat von casi4712

    Ja klar, gibbet überhaupt noch 4:3 Monitore ;)

    Ja, hatte ich vor Corona durchaus noch zu Hause im Einsatz :P Aber dann während Corona auf UWQHD (21:9) umgerüstet.

    Und damit kommt schon das was ich meine: Nicht jeder "neue" Monitor hat 16:9. Es kann auch 16:10, 21:9, 32:9 usw. sein.

  • Splash Font automatisch anpassbar

    • Moombas
    • 2. August 2022 um 13:28

    Bei mir ging es in beiden Varianten nicht aber das andere Beispiel war mit etwas tüfteln zumindest bei mir etwas besser:

    AutoIt
    Opt('MustDeclareVars', 1)
    
    #include <WinAPI.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WinAPISysWin.au3>
    
    _GDIPlus_Startup()
    
    Global $file   = '/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/TEST/'
    Global $FontHight = 12
    
    Global $Text = 'Fertig ' & $file & ' wurde gespeichert!'
    Global $Font = _StringInPixels(_WinAPI_GetDesktopWindow(), $file, 'Times New Roman', $FontHight, 0)
    Global $SpW  = $Font[0]
    Global $SpH  = $Font[1] * (($FontHight*8.0) / $Font[1]) ;den Multiplikator (8.0) ggf. etwas anpassen, ich habe leider keine andere (gut) funktionierende Rechnerische Lösung gefunden
    
        SplashTextOn("", $Text, $SpW, $SpH, -1, -1, 21, "Times New Roman", $FontHight, 400)
        Sleep(4000)
        SplashOff()
    
    _GDIPlus_Shutdown()
    
    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _StringInPixels
    ; Description ...: Returns a pixel-accurate height and width for a given string using a given font, style and size.
    ; Syntax ........: _StringInPixels($hGUI, $sString, $sFontFamily, $fSize, $iStyle[, $iColWidth = 0])
    ; Parameters ....: $hGUI                - Handle to the window.
    ;                  $sString             - The string to be measured.
    ;                  $sFontFamily         - Full name of the font to use.
    ;                  $fSize               - Font size in points (half-point increments).
    ;                  $iStyle              - Combination of 0-normal, 1-bold, 2-italic, 4-underline, 8-strikethrough
    ;                  $iColWidth           - [optional] If word-wrap is desired, column width in pixels
    ; Return values .: 2-row array. [0] is width in pixels; [1] is height in pixels.
    ; Author ........: Tim Curran; adapted from Pierre Arnaud's C# function
    ; Modified ......:
    ; Remarks .......: This version is longer and less efficient but works for all purposes.
    ; Related .......: <https://www.codeproject.com/Articles/2118/Bypass-Graphics-MeasureString-limitations>
    ; Link ..........:
    ; Example .......: Example-StringInPixels.au3
    ; ===============================================================================================================================
    
    Func _StringInPixels($hGUI, $sString, $sFontFamily, $fSize, $iStyle, $iColWidth = 0)
        Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI) ;Create a graphics object from a window handle
    
        Local $aRanges[2][2] = [[1]]
        $aRanges[1][0] = 0 ;Measure first char (0-based)
        $aRanges[1][1] = StringLen($sString) ;Region = String length
    
        Local $hFormat = _GDIPlus_StringFormatCreate()
        Local $hFamily = _GDIPlus_FontFamilyCreate($sFontFamily)
        Local $hFont = _GDIPlus_FontCreate($hFamily, $fSize, $iStyle)
    
        _GDIPlus_GraphicsSetTextRenderingHint($hGraphic, $GDIP_TEXTRENDERINGHINTANTIALIASGRIDFIT)
        _GDIPlus_StringFormatSetMeasurableCharacterRanges($hFormat, $aRanges) ;Set ranges
    
        Local $aWinClient = WinGetClientSize($hGUI)
        If $iColWidth = 0 Then $iColWidth = $aWinClient[0]
        Local $tLayout = _GDIPlus_RectFCreate(10, 10, $iColWidth, $aWinClient[1])
        Local $aRegions = _GDIPlus_GraphicsMeasureCharacterRanges($hGraphic, $sString, $hFont, $tLayout, $hFormat) ;get array of regions
        Local $aBounds = _GDIPlus_RegionGetBounds($aRegions[1], $hGraphic)
        Local $aWidthHeight[2] = [$aBounds[2], $aBounds[3]]
    
        ; Clean up resources
        _GDIPlus_FontDispose($hFont)
        _GDIPlus_RegionDispose($aRegions[1])
        _GDIPlus_FontFamilyDispose($hFamily)
        _GDIPlus_StringFormatDispose($hFormat)
        _GDIPlus_GraphicsDispose($hGraphic)
    
        Return $aWidthHeight
    EndFunc   ;==>_StringInPixels
    Alles anzeigen

    Ggf. solltest du deine Stringlänge auch einfach nach X-Zeichen um ein @CRLF ergänzen.

    Sieht zwar doof aus, ist aber ggf. besser darstellbar je nach Zeichenlänge.

  • Splash Font automatisch anpassbar

    • Moombas
    • 2. August 2022 um 12:09

    Verwendest du denn einen Monitor in 16:9 Format?

    Wenn nicht musst du die 16 und die 9 entsprechend ändern.

    In meinen Tests jedoch scheint das Ding nicht so wirklich zu funktionieren.

  • Splash Font automatisch anpassbar

    • Moombas
    • 2. August 2022 um 11:12

    Ich wüsste nicht, wo da der Unterschied sein sollte. Es bleibt ja ein String.

    Hast du mit den gleichen Textlängen bei statisch/dynamisch getestet?

  • GDIPlus code als Funktion - Bitte um Hilfe.

    • Moombas
    • 2. August 2022 um 07:55
    Zitat von BugFix

    Aber der Speichervorgang.

    Unnütze Schreibvorgänge sind der SSD-Platte ihr Tod. :P

    Richtig, weshalb man auch gerne bei allen SSD's die Auslagerungsdatei abschalten sollte, um so unnötige Schreibvorgänge zu vermeiden.

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™