WebView2 Build 120 zerstört COM-Infrastruktur

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.

Details zum Nachlesen auf GitHub.

Nachtrag: Der Bug verschwand mit dem Update 120.0.2210.77 in der evergreen Version. Bei mir wurde der Fix am Montag den 18.12.2023 automatisch installiert.

VS-2022 Rollback deinstalliert manche VS-Extensions

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.

VS-2022 Update 17.8 zerstört Mixed Mode Debugger-Funktionen „Unable to step. Operation not supported. Unknown error: 0x8ede0018.“

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.

PTZControl unterstützt nun bis zu 3 Kameras

Es erstaunt und freut mich, dass mein kleines Helferlein gut benutzt wird und es tatsächlich noch Anfragen zu Features gibt.

Ich habe heute eine neue Version bereitgestellt.

  • Unterstützung bis maximal 3 Kameras nun.
  • Layout passt sich für jede Anzahl Kameras so an, dass möglichst wenig Platz auf dem Bildschirm eingenommen wird.
  • Unterstützte Kameras sind nun: Logitech PTZ 2 Pro, PTZ Pro, Logitech Rally und die ConferenceCam CC3000e Kameras.

Hier der entsprechende Link auf mein Repository mit der neuesten Version:
https://github.com/xMRi/PTZControl

Der ständige Helfer im (Datei-)Alltag, der SpeedCommander

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.

PTZControl goes GitHub

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.

Hier der entsprechende Link auf mein Repository:
https://github.com/xMRi/PTZControl

Neue Version von PTZControl unterstützt jetzt direkt auch Logitech Rally Plus Kameras

Ich habe ein neue Version von meinem Kamerasteuerungs-Programm PTZControl bereitgestellt.

Was ist alles neu?

  1. Es werden automatisch Logitech PTZ2 Pro und Logitech Rally Plus Kameras erkannt.
  2. Ich habe eine komplette Readme Datei mit Hintergründen und allen notwendigen Beschreibungen erstellt (aktuell nur in Deutsch).
  3. Weitere neue Befehlszeilenschalter wurden eingebaut für einige Optionen um die Bedienung leichter zu machen.

Die neue Version findet Ihr hier unter dem folgenden Link.

Keine Umlaute und falsche Zeichen mit der deutschen Tastatur EJ-FT720 für das Samsung Tablet S5e

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.

Die Lösung ist relativ einfach:

Einstellungen -> Allgemeine Verwaltung -> Zurücksetzen -> Eingabehilfeeinstellungen zurücksetzen

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.

Sammlung von Tastaturkürzeln meiner Samsung Tastatur an meinem Samsung Tablet

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ürzelBedeutung
Strg+CKopieren in die Zwischenablage
Strg+XAusschneiden in die Zwischenablage
Strg+VEinfügen aus der Zwischenablage
Strg+ZRückgängig machen
Umschalt+
Cursor-Tasten
Zeichen markieren (erweitern)
Umschalt+Strg+
Cursor-Tasten
Wort markieren
Strg+0-9Wechselt in das entsprechende Tab in Chrome
Alt+TabApp wechseln
Alt+LinksIm Browser zurück
Alt+RechtsIm Browser vorwärts
Alt+EAdressleiste im Chrome Browser anspringen
OSGoogle Assistent öffnen
OS+TabApp Übersicht öffnen
OS+BackspaceZurück
OS+Ü / OS++Apps nebeneinander anzeigen / starten
OS+BBrowser App öffnen
OS+CKontakte öffnen
OS+DStart Bildschirm anzeigen
OS+EEmail-App starten
OS+FSuch Funktion öffnen
OS+IBixby App öffnen
OS+HSamsung Spracheingabe öffnen
OS+KKalender App öffnen
OS+LGerät sperren
OS+MGoogle Maps öffnen
OS+NBenachrichtigungen anzeigen
OS+PMusic-Player App öffnen
OS+QEinstellungsmenü
OS+RApp Eigene Dateien öffnen
OS+SSMS App
OS+WSamsung DeX starten/beenden
OS+UEinstellungen für Eingabehilfen öffnen
OS+VLautstärkeregelung öffnen
OS+XAktuelle App schließen
OS+YSmartview App öffnen
OS+ZAndroid 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.

Programm zur Steuerung von bis zu 2 Logitech PTZ 2 Pro Kameras

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.

Oberfläche der Kamera Steuerung

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.

Es gibt eine neue Version des PTZControl.exe.
Siehe hier.