Sortieren nach:
View:
  • Home
  • Nach Kategorie "Arbeit" archivieren

Kategorie: Arbeit

Office 2016 –> Key zurücksetzen


Manchmal kommt es vor, dass man bei der Installation von Office 2016 einen Key für eine Lizenz eingibt, die bereits aktiviert wurde, zum Beispiel die Lizenz, die für den Zweitrechner bereits verwendet wurde, wie es mir die Tage passiert ist.

Nun kann man diesen Key natürlich nicht aktivieren, kann aber leider auch keinen anderen Key eintragen.

Es gibt eine Möglichkeit, den Key trotzdem wieder zu entfernen, so dass beim nächsten Start eines Office Produkts wieder ein neuer Key angefragt wird:

Als erses muss eine Kommandozeile (cmd) mit Administratorrechten gestartet werden.

Danach muss man den installierten Key auslesen. Je nach Windows- und Officeversion funktioniert das wie folgt:

  • 32-bit version Windows + 32-bit Office 2016cscript "C:\Program Files\Microsoft Office\Office16\OSPP.VBS" /dstatus
  • 64-bit version Windows + 32-bit Office 2016cscript "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.VBS" /dstatus
  • 64-bit version Windows + 64-bit Office 2016cscript "C:\Program Files\Microsoft Office\Office16\OSPP.VBS" /dstatus

Es erscheint daraufhin einiger Text, und unter anderem auch die letzten 5 Stellen des installierten Key.

Dieses fünfstellige Keyfragment kopiert man sich.

Jetzt muss man den installierten Key deinstallieren, und das geht wie folgt:

  • 32-bit version Windows + 32-bit Office 2016
    cscript "C:\Program Files\Microsoft Office\Office16\OSPP.VBS" /unpkey:KEYFRAGMENT
  • 64-bit version Windows + 32-bit Office 2016
    cscript "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.VBS" /unpkey:KEYFRAGMENT
  • 64-bit version Windows + 64-bit Office 2016
    cscript "C:\Program Files\Microsoft Office\Office16\OSPP.VBS" /unpkey:KEYFRAGMENT

Header eines WebRequest-Objekts ändern (oder hinzufügen)


Eine wirklich wertvolle Information für alle, die Dinge im Request-Header eines Webrequests ändern oder hinzufügen wollen, die SO normalerweise einer Prüfung nicht stand halten würden, weil es sie schlicht nicht gibt.

Während eine normale Änderung einen Ausnahmefehler „Dieser Header muss mit der entsprechenden Eigenschaft geändert werden“ hervorrufen würde, funktioniert es prächtig, indem man per Reflection „an der Prüfung vorbei“ arbeitet 😉

Hier ein Beispiel in C#.NET, in welchem dem Request-Header eine Eigenschaft „Accept“ hinzugefügt wird:

Type type = request.Headers.GetType();
System.Reflection.BindingFlags flags = System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic;
 System.Reflection.MethodInfo m = type.GetMethod("AddWithoutValidate", flags);
m.Invoke(request.Headers, new string[] { "Accept", "application/vnd.vendor+json" });


[WPF] … Schicker Tabcontrol-Style


eilweise ist es ja echt nicht schön, wie Microsoft den Standardstyle in WPF umgesetzt hat.
Das trifft zum Beispiel auch beim Tabcontrol zu. Gefällt mir gar nicht.
Das geht besser, und zwar wie folgt:

Der eigentliche Style im Usercontrol / im WPF-Fenster:

[VB.NET] Alle Typen einer Assembly auslesen


Es kommt immer wieder einmal vor, dass man eine Auflistung aller Typen einer Assembly haben möchte. Händisch raussuchen war gestern. Es gibt da einen durchaus eleganteren Weg:

Sub Irgendwas()
        Dim typelist As Type() = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "Dein_Namespace")
        For i As Integer = 0 To typelist.Length - 1
            Debug.WriteLine(typelist(i).Name.ToString)
        Next
End Sub

Private Function GetTypesInNamespace(oAssembly As Assembly, sNamespace As String) As Type()
        Return oAssembly.GetTypes().Where(Function(t) [String].Equals(t.Namespace,       sNamespace, StringComparison.Ordinal)).ToArray()
End Function

Menüleiste