Windows Tipp – ermitteln Sie, welche Dienste ins Internet funken

Ist Ihre Internetverbindung plötzlich langsamer geworden? Dies kann zwar viele Ursachen haben, möglicherweise verbindet sich Ihr PC unbemerkt mit Internetseiten, um schädliche Software zu nutzen. Nachfolgend finden Sie heraus, ob Ihr Rechner davon betroffen ist!

Schritt 1: Netstart Command als Admin ausführen

Öffnen Sie das Startmenü mit der Windowstaste, tippen Sie cmd.exe ein, und führen Sie cmd per Rechtsklick als Administrator aus.

image

Schritt 2: Zeichnen Sie Verbindungen auf

Im geöffneten Kommandofenster geben Sie folgenden Befehl ein:
netstat –abf 5 > activity.txt

clip_image005

Bestätigen Sie die Eingabe mit Enter. Ihr Rechner zeichnet nun die Verbindungen auf. Nach ca. zwei Minuten beenden Sie die Aufzeichnung indem Sie Strg + C drücken.

clip_image007

Schritt 3: Aufzeichnung begutachten

Die Aufzeichnung können Sie sehen, indem Sie die Windowstaste drücken und activity.txt eintippen. Öffnen Sie die Datei per Doppelklick und prüfen Sie, ob sich unbekannte Dienste von Ihren PC aus mit dem Internet verbinden. Falls Ihnen etwas Merkwürdiges oder Verdächtiges auffällt, suchen Sie im Internet, ob es sich um Schadsoftware handelt.

image

„Sie möchten mehr zu Windows 8 erfahren? Dann sind Sie bei dieser Windows 8 Schulung richtig.“

Word Tipp – Spezial Serienbriefe

Wenn in Word Serienbriefe erstellt werden, entsteht schnell ein Problem. Das Problem liegt dann vor, wenn die Daten vielseitig sind. Eine spezielle Vorgehensweise beim Aufbau des Briefs erlaubt es dynamisch Fallbezogen die richtigen Daten wie z.B. eine angepasste Anrede oder Grußzeile zu erstellen.

Der Ausgangspunkt sieht wie folgt aus. In der untenstehenden exemplarischen Tabelle sind unterschiedliche Fälle zusammengeführt, d.h. je nach Datensatz soll eine allgemeine Anrede oder eine persönliche Anrede z.T. mit und ohne Titel wie „Prof“, „Dr“.

clip_image002

Leider bietet MS Word hierfür keine direkte Lösung solcher Fälle an, indem dafür eine fertige Funktion angeboten wird.

In diesem Beitrag stelle ich eine Lösung solcher Herausforderungen dar.

Sie erstellen zunächst das Schreiben. Nun werden der Adresskopf und die Grußzeile dynamisch für die Daten erstellt.

Schritt 1: Wenn-Dann-Sonst Regel erstellen

Wir brauchen für die Daten eine sog. Wenn-Dann-Sonst Regel.

clip_image004

Sie erstellen die erste Regel für den Fall, dass die Adressierte Person eine Dame ist, somit legen Sie fest, dass wenn es sich um die Anrede „Frau“ handelt, Word Frau als Anrede einsetzt, anderenfalls wird nichts eingefügt. Das Regelwerk sieht wie folgt aus:

clip_image006

Leider existiert keine Möglichkeit der direkten Verschachtelung von Wenn-Dann-Sonst Funktionen. Es gibt jedoch einen indirekten Weg.

Schritt 2: Verschachtelung der Wenn-Dann-Sonst Regel

Damit Sie beliebige Bedingungen prüfen und den richtigen Text eintragen können, benötigen Sie eine andere Ansicht, in der Sie die Feldfunktion bearbeiten können. Diese rufen Sie mit der Tastenkombination: „Alt“ + „F9“. Die zuvor erstellte Bedingung sieht so aus:

clip_image007

Diese Zeile kopieren Sie und fügen diese direkt dahinter ein. Als nächstes passen Sie die Werte wie folgt für den zweiten Fall, dass der Adressat ein Herr ist, an.

clip_image008

Für den dritten Fall, indem eine Firma ohne einen direkten Ansprechpartner angeschrieben werden soll, sieht die Bedingungszeile nachfolgend so aus:

clip_image009

Sie sehen hier, dass wir für die allgemeine Anrede eine andere Spalte, sprich ein anderes Feld benötigt wird, sodass Sie hinter MERGEFIELD „Anrede_allgemein“ eintragen. Die zweite Änderung hier ist die Prüfung mit dem Operator „ <> "" “ hinter der geschleiften schließenden Klammer. Damit wird geprüft, ob ein Wert im Datensatz vorhanden ist.
Direkt dahinter steht dann noch in Klammern das betreffende Feld "{ Firma }". Die geschweiften Klammern fügen Sie mit der Tastenkombination “AltGr + 7” und “AltGr + 0”.

Zusammenfassend wird auf diese Weise mit der Funktion überprüft, ob im Feld Anrede_allgemein etwas drin steht, wenn ja wird der Wert der sich in der Spalte Firma befindet eingefügt, anderenfalls nichts.

Wenn Sie auf diese Weise Ihre möglichen Fälle anhand Ihrer Daten weiter verschachteln, sieht das Ergebnis so aus:

clip_image010

Hinweis: Möchten Sie in der jeweiligen Zeile des Adresskopfes normale Felder einfügen, können Sie die Ansicht der Feldfunktionen wieder ausblenden mit „Alt“ + „F9“.

clip_image012

Zusammenfassend könnte Ihr Schreiben abschließend so aussehen.

clip_image014

Weitere Beispiele sehen dann so aus, je nach dem an wenn der Brief adressiert wird.

clip_image016 clip_image018

Viel Spaß damit!

Wikipedia Artikel in MP3-Datei umwandeln

In diesem Artikel wird beschrieben, wie Sie einen Wikipedia Artikel in ein Hörbuch umwandeln. Dazu wird eine spezielle Internetseite benutzt.

Schritt 1:

Sie suchen zunächst einen Wikipedia Artikel über www.wikipedia.de, notieren den exakten Namen, z.B. „SharePoint“.

Schritt 2:

Jetzt öffnen Sie die Internetseite www.pediaphon.de, tippen dort den Namen des Artikels in das Textfeld hinein, wählen Sie über die drei Dropdownmenüs „Stimme“, „Sprechgeschwindigkeit“, Sofort im Browser abspielen mit“ aus. Nachdem Sie auf „Start“ geklickt haben, wird die MP3 erstellt. Ebenso lassen sich Formate z.B. für das iPhone und iPad erstellen.

Empfehlung: Wählen Sie die Stimme: NEU HQ, da die Sprachqualität deutlich besser ist!

clip_image002

clip_image004

Schritt 3:

Zuletzt speichern Sie die Datei, indem Sie diese per Rechtsklick anklicken und browserabhängig „Link speichern unter“ oder „Ziel speichern unter“ wählen.

Fertig!

In einer PowerPoint Präsentation ein PDF Dokument vorführen

Mit kleinem Aufwand lässt sich ein beliebiges Dokument auf einer PowerPoint Folie präsentieren. Um dies umzusetzen werden nachfolgend die einzelnen Schritte beschrieben. In vorliegendem Beispiel wird ein PDF Dokument verwendet.

Schritt 1:

Eine Folie mit schwarzem Hintergrund wird erstellt.

clip_image002

Auf der eingefügten Folie wird über die Registerkarte Entwurf -> Hintergrund formatieren
-> Einfarbige Füllung und ggf. Hintergrundgrafiken ausblenden aktivieren, wodurch die komplette Folie schwarz formatiert wird. Dies dient dafür, dass das präsentierte Dokument während der der Vorführung so aussieht als wäre es keine Präsentation sondern ein ganzseitiges Dokument auf schwarzem Hintergrund.

Schritt 2:

Das jeweilige Dokument wird als Objekt eingefügt.

clip_image004

Hierzu klicken Sie auf die Registerkarte Einfügen -> Objekt -> Aus Datei erstellen -> Durchsuchen und wählen die entsprechende Datei aus.

Richten Sie die das Objekt auf der Folie aus, d.h. passen Sie die Größe entsprechend so an, dass es mittig und oben und unten bündig steht.

clip_image006

Schritt 3:

Folie verstecken, damit diese nur im Bedarfsfall angezeigt wird.

Damit die Folie nur dann wenn Sie sie brauchen erscheint, klicken Sie links im Navigationsbereich mit der rechten Maustaste auf Ihre Folie und wählen aus dem Kontextmenü Folie ausblenden aus.

Die Folie wird per Verlinkung als unsichtbares Objekt auf einer anderen Folie quasi als Schaltfläche eingefügt, um diese im richtigen Moment, wenn sie benötigt wird, aufzurufen. Anderenfalls wird die Folie in der laufenden Präsentation nicht angezeigt.

clip_image008

Hierzu habe ich auf der Folie, von der aus das Dokument aufgerufen werden soll, ein großes Rechteck unten rechts eingefügt. Es wird später unsichtbar sein und lediglich als Schaltfläche dienen.

Als nächstes wird es per Rechtsklick -> Hyperlink -> Aktuelles Dokument -> Folie auswählen ein Hyperlink zu der Folie mit dem Dokument gesetzt.

clip_image010

Jetzt wird das große Rechteck unsichtbar gemacht. Hierzu wird es formatiert. Mithilfe der Registerkarte Format -> Gruppe Formatvorlagen -> Symbol Form formatieren erscheint rechts im Bild der Bereich Form Formatieren.

clip_image012

Über Form Formatieren wird das Rechteck mit Transparenz 100% formatiert, somit ist es unsichtbar. Anschließend wird der Rahmen noch ebenfalls unsichtbar, indem unterhalb der Einstellungen Füllung Linie -> Keine Linie aktiviert wird.

clip_image014 clip_image016

Damit ist das Objekt zwar da, jedoch vollständig unsichtbar. Während der Präsentation bewegen Sie den Mauszeiger auf das unsichtbare Objekt, der Mauszeiger wird zur Handfläche mit Zeigefinder, Sie klicken drauf und die versteckte Folie erscheint.

Viel Spaß damit!

AutoAdminLogon für Windows Server 2012 R2 und andere OS

Manchmal besteht der Wunsch, auf einem Windows-System eine automatische Anmeldung nach dem (Neu)Start durchzuführen. Dies ist mit sehr einfachen Mitteln möglich und funktioniert sowohl bei Client- als auch Server-Betriebssystemen, auch bei älteren. Nötig ist dazu nur der Zugriff auf die Registry und ein passendes Benutzerkonto.

Als erstes wird der Registrierungseditor mittels “regedit.exe” geöffnet:

autoadminlogon1

Dort muss zu dem Schlüssel unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon navigiert werden.

Abschließend sind folgende Schlüssel nötig (alle als Zeichenfolge, REG_SZ)

  • AutoAdminLogon = “1”
  • DefaultUserName = BENUTZER
  • DefaultPassword = PASSWORT
  • DefaultDomainName = DOMÄNE

So etwa wie im Screenshot…

autoadminlogon2

Das war es schon gewesen. Beim nächsten Neustart ist die automatische Anmeldung aktiv…

Inhaltsverzeichnis einer Excel Arbeitsmappe per Makro erstellen

In einer Excel Arbeitsmappe können bis zu 255 Tabellenblätter enthalten sein. Ein Inhaltsverzeichnis per Hand zu erstellen wäre auch schon für eine Arbeitsmappe mit nur zehn Tabellenblättern sehr aufwendig und zeitraubend. Stattdessen lässt sich das per Makro im Handumdrehen erledigen.

Das dazu benötigte Makro kopieren Sie zuerst in die Zwischenablage:

Sub MappenInhaltZusammenstellen() 
Dim Tabelle As Worksheet 
Dim i As Integer 
Worksheets.Add.Move before:=Worksheets(1) 
ActiveSheet.Name = "Inhalt" 
Cells(2, 2).Value = "Enthaltene Blätter" 
i = 3 
For Each Tabelle In ActiveWorkbook.Worksheets 
If Tabelle.Name <> "Inhalt" Then 
Cells(i, 2).Value = Tabelle.Name 
Tabelle.Hyperlinks.Add Anchor:=Cells(i, 2), _ 
Address:="", SubAddress:=Tabelle.Name & _ 
"!A1", ScreenTip:="Hyperlink klicken", _ 
TextToDisplay:=Tabelle.Name 
i = i + 1 
End If 
Next Tabelle 
End Sub

Im nächsten Schritt erzeugen Sie ein VBA Projekt, indem Sie in Excel über die Registerkarte Entwicklertools auf die Schaltfläche Visual Basic klicken.

clip_image002

Im geöffneten VBA Fenster gilt es nun den in der Zwischenablage befindlichen Code nach einem Doppelklick auf DieseArbeitsmappe im Fensterbereich links in das rechts befindliche Dialogfenster einzufügen.

clip_image004

Danach lässt sich das Makro sofort ausführen. Das VBA Fester schließen Sie per Klick auf Schließen ganz oben rechts im VBA Fenster, dies zu speichern ist nicht nötig, da es automatisch in der Excel-Arbeitsmappe geschlossen wird.

Um das Makro auszuführen bewegen Sie sich an den Anfang der Arbeitsmappe, klicken auf die Registerkarte Entwicklertools und dann auf Makros -> MappenInhaltZusammenstellen -> Schaltfläche Ausführen rechts im Fenster.

clip_image006

Das Resultat sieht wie folgt aus:

clip_image008

Das Makro hat ein neues Tabellenblatt eingefügt, in diesem Tabellenblatt sind untereinander alle Tabellenblätter inkl. eines Hyperlinks aufgelistet. Per Klick gelangen Sie zum jeweiligen Tabellenblatt.

Fertig!

SharePoint - Felder je nach Benutzer ausblenden mittels InfoPath

Immer wieder taucht in SharePoint die Frage auf, wie kann ein Feld in einem in SharePoint verwendeten Webbrowser-Formular benutzerbedingt ausgeblendet werden. Dieses Szenario wird in vielfältiger Weise nachgefragt.

Da es verschiedene Ansätze gibt, wird im nachfolgenden Artikel eine Methode vorgestellt.

Im Formular wird ein Personenfeld verwendet. Dieses ist mit einer SharePoint-Seite verbunden, d.h. es bezieht Benutzer die über die Einstellungen der Benutzer und Gruppen verwaltet werden.

clip_image002

Im Formular wird das Feld mit Informationen der Benutzer und Gruppen Seite gespeist. Das unten stehende Feld MA wird über die Steuerelementeigenschaften auf der Registerkarte SharePoint Server mit den Benutzerinformationen der Website verbunden.

clip_image004

Das Feld MA wird mit dem in Gruppe1 stehenden Feld DisplayName verbunden.

clip_image006

Das Feld, welches nun ausgeblendet werden soll wenn ein bestimmter Benutzer seinen Namen eingibt, wird mit einer Regel versehen. Hier kommt eine Regel „Aktion“ zum Einsatz. Diese enthält eine Bedingung: Feldname „DisplayName“ ist gleich „admin“ (statt admin gilt es den entsprechenden MA-Namen zu verwenden)

clip_image008

clip_image010

Das Gleiche wurde in diesem Beispiel mit der Beschriftung vorgenommen. Damit ist gemeint, dass ein Textfeld als Beschriftung verwendet wurde, um es mit der gleichen Regel zu versehen, damit nicht nur das Feld im Formular sondern auch die Beschriftung verschwinden.

clip_image012

clip_image014

Danach wird das Formular veröffentlicht. Im vorliegenden Beispiel mit einer vorhandenen Formularbibliothek. Die einzelnen Schritte sind nachfolgend abgebildet.

clip_image016

clip_image018

clip_image020

clip_image022

clip_image024

Nachdem alle Schritte der Veröffentlichung fertig sind wird es veröffentlicht.

Das Resultat sieht nach Aufruf über die Formularbibliothek im Browser wie folgt aus:

clip_image026

Nach Eingabe des MA Namens wird das zuvor angezeigte Feld via Regel ausgeblendet.

clip_image028

Fertig!

Viel Spaß damit

Kleiner Coding-kniff und einfache Ladeanimation

Um einen Wert, in C#, auf mehrere Varianten zu testen hat wohl jeder schon einmal eine Notation ähnlich der folgenden gewählt:

 

 

 

if(zuPruefenderWert == "Variante1" || zuPruefenderWert == "Variante2" ||zuPruefenderWert == "Variante3")
{
Console.Writeline("V1, V2 oder 3 sind vorhanden");
}

Diese Notation erfüllt ihren Zweck, doch lässt sich hier angenehm und augenfreundlich optimieren.

Durch die Nutzung eines implizit typisierten Arrays kann die Notation auch folgendermaßen erfolgen:

if(new[] {"Variante1", "Variante2", "Variante3" }.Contains(zuPruefenderWert))
{
Console.Writeline("V1, V2 oder 3 sind vorhanden");
}

In dieser Variante wird ein anonymes, implizit typisiertes Array erzeugt dessen Inhalt dann einfach auf alle gesuchten Varianten untersucht werden kann.

Alternativ kann natürlich die Typisierung auch explizit erfolgen, z.B. als String Array:

new string[] {"Variante1", "Variante2", "Variante3" }.Contains(zuPruefenderWert))
{
Console.Writeline("V1, V2 oder 3 sind vorhanden");
}


 

Und als kleines Bonbon noch eine Idee für diejenigen welche Kommandozeilentools schreiben.Wichtig für das Beispiel ist zu beachten dass es möglich ist den Druck auf die Backspace Taste
durch \b zu simulieren.
so kann man also mit dem Code:

        static void Main(string[] args) {
            string[] states = { "\\", "|", "/", "-" };
            int cur_state = 0;

            while (true) {
                Thread.Sleep(100);

                Console.Write("\b");
                Console.Write(states[cur_state]);
                cur_state++;
                if (cur_state == 4) {
                    cur_state = 0;
                }
            }
        }

 

Dafür sorgen das Nacheinander die Zeichen \|/- eingeblendet werden, was schon als einfache Ladeanimation
gelten kann. Es werden hier einfach in Schleifenform die Elemente eines Array durchlaufen und angezeigt
für den Eindruck einer Animation sorgt :
Thread.Sleep(100);

Achtung dieses Bsp. terminiert nicht selbstständig da
while (true)
immer wahr ist.

Für mehr Tricks und Kniffe durchstöbern sie doch das reichhaltige Kursangebot der ppedv.

 
 

 

Angular.JS ohne $scope

In Angular ist der Scope die technische Implementierung des Viewmodels. Obwohl einfach zu verstehen und verwenden ist angekündigt mit der Version 2.0 darauf zu verzichten. In der Tat ist ein Fehler in der Scope Hierarchie mitunter schwer zu finden.

Folgender Blog Artikel ist rein akademisch und zeigt zwei Wege auf einen Controller in Angular.js zu schreiben bzw Daten deklarativ in HTML zu binden.

   1:  <form id="form1" runat="server" ng-app="app">
   2:          <div ng-controller="myController">
   3:              <input ng-model="person.name" />
   4:<input ng-click="myclick()" type="button" value="click" />
   5:          </div>
   6:   </form>
   7:   
   8:   <script>
   9:         var app = angular.module('app', []);
  10:          app.controller('myController', ['$scope', function ($scope) {
  11:             $scope.person = { name: 'Hannes' };
  12:             $scope.myclick = function () {
  13:             $scope.person.name = "Franz";
  14:              };
  15:       }]);
  16:   </script>

 

Die Scope freie Alternative: Durch die Nutzung der Controller AS Syntax im HTML Teil entfällt $scope als Instanz des Viewmodels. Im Controller kann kann per this auf Methoden und Eigenschaften zugegriffen werden. Über die Extend Methode wird das JavaScript Objekt erweitert.

   1:  <form id="form1" runat="server" ng-app="app">
   2:    <div ng-controller="myController as alias">
   3:        <input ng-model="alias.person.name" />
   4:        <input ng-click="alias.myclick()" type="button" value="click" />
   5:  </div>
   6:  </form>
   7:   
   8:  <script>
   9:     var app = angular.module('app', []);
  10:     app.controller('myController',myCtrl);
  11:     function myCtrl() { };
  12:     angular.extend(myCtrl.prototype, {
  13:              person : { name: 'Hannes' },
  14:              myclick: function () {
  15:              this.person.name="Frnaz";
  16:          }
  17:     });
  18:  </script>

 

Nach einer weile nachdenken, noch eine einfachere Scope freie Version eines Angular Controllers.

   1:  var app = angular.module('app', []);
   2:          app.controller('myController', [function () {
   3:              var vm = this;
   4:              vm.person = { name: 'Hannes' };
   5:              vm.myclick = function () {
   6:                  vm.person.name = "Franz";
   7:              };
   8:          }]);

 

Den gewöhnlichen Teilnehmer einer Angular Schulung überfordert dies eindeutig. In meinem Angular Training bleibe ich bei der Scope Variante.

Stand-by-modus aussetzen

Wie vielleicht jeder schon einmal erlebt hat sorgen Windows Media Player und Co. dafür dass Computer nicht in den Ruhezustand wechseln. Ein C# Programm sorgt für sich genommen nicht dafür das dass Betriebssystem aktiv bleibt.
Hier präsentiere ich eine Möglichkeit den Stand-by-Modus auszusetzen. Dafür muss durch P/Invoke die Funktion SetThreadExecutionState() eingebunden werden.
Dafür ist folgende Einstellung interessant:

ES_SYSTEM_REQUIRED : Bedeutet, das System darf nicht abgeschaltet werden.

Eine Funktion mit diesem Status aufzurufen sorgt nur dafür das etwaige Timer zurückgesetzt werden, eine Dauerlösung ist das nicht.

Um jetzt eine permanentere Lösung zu generieren ist es nötig die Funktion entweder periodisch aufzurufen oder den Status per Oder mit ES_CONTINOUS zu verknüpfen.

Diese kleine Snippet zeigt wie man den Stand-by-Modus dauerhaft aussetzt:


namespace MyWindowsFormsApplication
{
public partial class MyForm : Form
    {
public enum EXECUTION_STATE : uint
        {
            ES_CONTINUOUS = 0x80000000,
            ES_DISPLAY_REQUIRED = 0x00000002,
            ES_SYSTEM_REQUIRED = 0x00000001
        }
        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);
.
.
.

private void Form1_Load(object sender, EventArgs e)
        {
            SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_SYSTEM_REQUIRED);
        }
    }
}


Vergleich siehe MSDN

Wie immer viel Spaß beim tüfteln, und wer mehr Wissen will wendet sich an die ppedv.

Training, Schulung, Sharepoint

Month List