Wieder mal eine tolle Geschichte wie Kunden auf uns als Softwarehersteller sauer werden, weil Microsoft ein nicht funktionierendes Update veröffentlicht.
Die Story:
Wir nutzen intern COM für sehr viele Objekte, um unsere eigene Software via VB-Script zu steuern.
Wir haben auch die Möglichkeit Controls vom Typ WebView2 anzulegen.
Am 07.12. veröffentlichte Microsoft für den WebView2 den Build 120.
Unsere Software benutzt im Allgemeinen „Evergreen“, d.h. es wird immer die aktuelle WebView2 ohne eigne Installation benutzt.
Effekt: Seit dem Update kann man nach dem, ein WebView2 Fenster zerstört wurde, keine COM Class Factory in unserem Programm aufrufen. Intern scheint das WebView2 CoSuspendClassObjects aufzurufen wenn das Control zerstört wird. Die Folge unser IMessageFilter springt an und es kommt ein Dialog, der auf einen nicht reagierenden COM Server hinweist.
Der nicht reagierende COM-Server ist unsere eigene Anwendung… 😯
Toll! 😥
Einziger für uns möglicher Workaround für uns ist leider, die alte Version 119 auf jedem Client lokal zu installieren. Dann über einen Registry Eintrag (HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder) den Aufruf von der aktuellen Version umzubiegen. Netterweise kann man das für jede Anwendung separat steuern.
Nachtrag: Der Bug verschwand mit dem Update 120.0.2210.77in der evergreen Version.Bei mir wurde der Fix am Montag den 18.12.2023 automatisch installiert.
Leidvoll musste ich erleben, dass ein Visual Studio 2022 Rollback auf die ältere vormals installierte Version leider auch einige VS-Extensions deinstalliert. Bzw. diese gehen verloren.
Man sollte also einen Rollback mit Vorsicht verwenden. Er eignet sich also nicht einfach und schnell ein Problem zu umgehen. Es sind einige Nacharbeiten nötig.
In der letzten Zeit habe ich regelmäßig die aktuellsten Visual-Studio 2022 installiert. Ich muss ehrlich sagen, dass ich seit VS-2029 nicht einmal schlechte Erfahrungen gemacht habe. Das hat sich mit dem heutigen Tag geändert 🙁 !
Nach der Installation des Updates ging keine Step-Debug-Funktion mehr (Step-In, Step-Over, Step-Out, etc.) im Mixed Mode Debugging. Native Mode Debugging scheint zu gehen.
Egal was man macht man bekommt den Fehler:
Unable to step. Operation not supported. Unknown error: 0x8ede0018.
In der Developer Community für VS ist dieser Bug auch bereits bekannt und angeblich gibt es einen Fix. Der ist aber noch nicht öffentlich.
Leider arbeite ich an einigen C++/CLI Modulen und benötige den Mixed-Mode.
Das erste mal habe im Visual Studio Installer einen Rollback versucht. Leider hat der Rollback meine Extension zum Teil deinstalliert. Mein Visual Assist von Whole Tomato war auf einmal nicht mehr vorhanden. Toll… 😯
Nachtrag: Das Problem ist in der Version 17.8.4 behoben, die am 10.01.2024 veröffentlicht wurde.
Seit mehr als 10 Jahren ist der SpeedCommander nun mein täglicher Begleiter auf meinen privaten und auf meinem Firmen-PC. Irgendwie dachte ich mir, dass dies auch eine Erwähnung wert ist, auch wenn ich nur noch wenig blogge.
Ich will einfach mal die Features erwähnen, die ich wirklich jeden Tag nutze.
Eingebauter Packer/Entpacker in x-Formaten (darunter auch so manches esoterisches, aber eben nützliches).
Selbstentpackende Dateien werden (wenn gewünscht) als Archiv geöffnet.
Einfacher Dateifilter um nur bestimmte Dateien anzuzeigen.
Komplexes umbenennen von Dateien mit Dateimustern, Regex Filtern und Erstetzungsfunktionen.
Zweigansicht (Ansicht aller Dateien ink. Dateien in den Unterordnern)
Simple Vergleichsfunktionen zwischen zwei Ordnern
Komplexe Synchronisierungsfunktionen zwischen Ordnern
Schnellansicht für extrem viele Dateiformate (für mich für EXE/DLL Dateien immer wieder wichtig)
FTP/SFTP Client (ich nutze Filezilla nur in Ausnahmefällen)
Sehr guter eingebauter Editor.
Direkter Zugriff auf Cloudspeicher (Dropbox/Onedrive etc.)
Das ist vermutlich nicht mal gerade mal die Spitze des Eisberges bei all den Funktionen vom SpeedCommander. Aber es sind die Funktionen, die ich nicht mehr missen möchte bei meiner ganz alltäglichen Arbeit.
Mich haben doch einige Anfragen erreicht, die um den Sourcecode von PTZControl gebeten haben.
Ich habe mich entschieden den Code auf GitHub zu veröffentlichen. Ich hoffe, dass dies anderen hilft, oder es nützt den Sourcecode anderweitig zu verwenden.
Vielleicht hilft es so, anderen das Streaming der Gottesdienste mit der PTZ 2 Pro oder Rally einfacher zu gestalten.
Ich habe schon länger ein Tab-S5e und habe mir eine EJ-FT720 Tastatur zugelegt (B-Ware). Wenn man manchmal etwas mehr schreibt ist das schon sehr hilfreich.
Kaum hate ich die Tastatur angeschlossen fingen die Probleme an. Die Umlaute und alle Tasten mit Umschalt+Numerische Taste lieferten die Zeichen der englischen Tastatur.
Aber in Android war alles korrekt eingestellt. Deutsche Tastatur.
Lange musste ich suchen bis ich einen Hinweis fand.
Ich war mit gar nicht bewusst, dass ich hier etwas eingetragen oder verstellt habe. Letzten habe ich dann auch den Auslöser für das Problem gefunden:
In den Eingabehilfen kann man einen automatischen Zoom mit einem Dreichfach-Tap auslösen. Wird diese Einstellung vorgenommen, dann geht die Tastatur nicht mehr.
Sollte also jemand wieder diese Zoom Einstellung einrichten (was ich wieder getan hatte), dann funktioniert sofort auch die Tastatur nicht mehr wie erwartet.
Es gibt bisher keine vernünftige Übersicht aller Tastatur Kombinationen auf den Bluetooth-Tastaturen/Tastaturen für ein Android Tablet.
Ich habe ein Samsung S Tablet und eine passende Samsung Tastatur. Ich habe mir mal die Mühe gemacht hier einige der Tastenkürzel zusammen zu stellen.
Die Betriebssystem-Taste wie Sie in der Samsung Beschreibung genannt wird kürze ich mit OS ab (bei meiner Tastatur ist eine Lupe abgebildet Lupe.
Kürzel
Bedeutung
Strg+C
Kopieren in die Zwischenablage
Strg+X
Ausschneiden in die Zwischenablage
Strg+V
Einfügen aus der Zwischenablage
Strg+Z
Rückgängig machen
Umschalt+ Cursor-Tasten
Zeichen markieren (erweitern)
Umschalt+Strg+ Cursor-Tasten
Wort markieren
Strg+0-9
Wechselt in das entsprechende Tab in Chrome
Alt+Tab
App wechseln
Alt+Links
Im Browser zurück
Alt+Rechts
Im Browser vorwärts
Alt+E
Adressleiste im Chrome Browser anspringen
OS
Google Assistent öffnen
OS+Tab
App Übersicht öffnen
OS+Backspace
Zurück
OS+Ü / OS++
Apps nebeneinander anzeigen / starten
OS+B
Browser App öffnen
OS+C
Kontakte öffnen
OS+D
Start Bildschirm anzeigen
OS+E
Email-App starten
OS+F
Such Funktion öffnen
OS+I
Bixby App öffnen
OS+H
Samsung Spracheingabe öffnen
OS+K
Kalender App öffnen
OS+L
Gerät sperren
OS+M
Google Maps öffnen
OS+N
Benachrichtigungen anzeigen
OS+P
Music-Player App öffnen
OS+Q
Einstellungsmenü
OS+R
App Eigene Dateien öffnen
OS+S
SMS App
OS+W
Samsung DeX starten/beenden
OS+U
Einstellungen für Eingabehilfen öffnen
OS+V
Lautstärkeregelung öffnen
OS+X
Aktuelle App schließen
OS+Y
Smartview App öffnen
OS+Z
Android Einstellungen öffnen
OS+ß
Tastaturkürzel Übersicht anzeigen (leider nicht vollständig)
Im großen und ganzen funktionieren viele Tastenkombinationen ähnlich wie auf einem Windows PC, besonders was das Editieren betrifft. Das betrifft besonders auch den Chrome Browser bei dem die Tastatur wirklich nützlich ist, wenn man gewöhnt ist den Browser mit der Tastatur zu bedienen.
Mit Corona kamen wir auch als Kirchengemeinde schnell zum Streamen unserer Gottesdienste. Die Lernkurve war steil und für mich ziemlich heftig.
Selten musste ich so viele Dinge auf einmal unter den Hut bringen und lernen und zeitgleich ein Team aufbauen, dass das Videostreaming seit Mai 2020 aufrechterhält. Und wie es aussieht, wird es keinen Schritt mehr zurückgeben. Jetzt haben wir Streaming als bleibenden Dienst mit einem festen Mitarbeiterteam und die Gemeinde hat sich mehr oder weniger auch an diesen Luxus gewöhnt. Das ist positiv wie negativ (aber das ist vielleicht etwas für einen späteren Blogartikel).
In kürzester Zeit musste ich mich für eine Technik, Hardware und Software entscheiden. Dabei sollte die Lösung natürlich preiswert, einfach, kompatibel und billig sein. Was auch sonst?
Wir haben uns entschieden ohne Video Schnittboard (ATEM Board oder ähnliches) zu arbeiten. Der Preis für digitale Kameras schockte mich etwas, zudem fand ich festinstallierte Kameras zu statisch.
Ich dann schnell kam zu der folgenden Lösung:
OBS als primäre Software, auch zur Schnittsteuerung und zur Auswahl der Szenen
2 angeschlossene Logitech PTZ 2 Pro (am Anfang war es nur eine)
Ein Elgato HD 60S+ um unsere Beamer Ausgabe in den Stream einzubinden
Unser Sound wird auch über das Elgato HD 60S+ direkt aus dem Mischpult abgegriffen.
Ein weiteres USB-Mikro, als Raummikrofon bei Bedarf
Gestreamt wird direkt über YouTube
Als Hardware wurde ein preiswerter (hässlicher) HP-Laptop mit einem schnellen Intel I5 Prozessor angeschafft (500€), aber die Hardware ist schnell gut und stabil auch durch die OBS QSV Hardware Unterstützung.
Dazu noch einige aktive USB-2 Kabel mit 10m Länge.
Alles in allem sind wir damit unter 1.800€ geblieben.
Die Logitech PTZ 2 Pro erschien mir mit einem 10fach Zoom und der hohen Bildqualität als ideal und preiswerte Kamera. Ich habe beide Kameras als B-Ware (1 Jahr Garantie) für um die 450€ erwerben können.
Beim Start des Streamens mit einer Kamera konnten wir noch die Fernbedienung nutzen, aber das war hakelig. Zudem stört das Zoomen und Scharfstellen, das Streaming-Erlebnis. Das Video wirkt nervös und unprofessionell.
Also wurde eine zweite Kamera angeschafft. Damit können wir nun überblenden von einer Szene in die andere (was sehr professionell wirkt). Eine neue Kameraposition anfahren mit der inaktiven Kamera und wieder überblenden, nun ganz einfach. Das Problem war nur die Steuerung von zwei Kameras.
Man hätte es einfach machen können und eine Kamera mit fester Position nutzen können und bei der anderen die PTZ (Pan Tilt Zoom) Funktionen. Damit hätte man zumindest ein flexibles Überblenden ermöglicht.
Aber auch das „Zielen“ mit der Fernbedienung auf die Kamera war während des Streamens suboptimal. Zudem die Kamera hinter dem Mitarbeiter an der Wand montiert war. Also Blick nach vorne auf OBS und mit der Fernbedienung hinter sich zielen.
Idealer wäre also eine Softwaresteuerung für beide Kameras. Also habe ich geschaut was man machen kann, um die Kameras per Software zu steuern. Denn eigentlich müsste sich alles über das DirectInput Interface von Windows steuern lassen.
Herausgekommen ist ein kleines PTZControll.exe. Dieses kann alle Kamera Features komplett ausnutzen.
Die Funktionen des kleinen Tools sind:
Automatischer Erkennung und Steuerung von bis zu 2 Logitech PTZ 2 Pro Kameras.
8 Kamera Presets
Kamera Presets können direkt in der App (Memory-Taste) umprogrammiert werden
Farbige Darstellung des aktuellen Presets
Selbst definierbare Tooltips zur Erklärung der Preset Positionen
Einfache Bedienung von Pan / Tilt / Zoom im Interface
Kleines Interface das direkt immer direkt im Vordergrund bleibt.
Das PTZControl.exe unterstützt 2 Steuerungsvarianten für den Motor. Das eine ist die direkte Schrittsteuerung über eine Logitech internes Interface. Die andere benutzt einen Timer mit einer „Motor an/aus“ Steuerung. Der Timer ist programmierbar (Standard 70msec). Die zweite Steuerung erwies sich als etwas feiner.
Das Programm kann frei heruntergeladen und genutzt werden. Nutzung auf eigenes Risiko und Gefahr.
Anmerkung zum Programm: Das Programm wurde mit C++ auf VS-2019 entwickelt und nutzt die MFC und ATL.
Wichtig: Das Programm sucht nach Kameras die den Text „PTZ 2 Pro“ im Namen haben und verwendet nur diese. Ich habe keine Teste mit anderen PTZ Kameras gemacht.