CNN verwendet Microsoft Photosynth bei Präsident Obama’s Angelobung

Georg von Vistablog.at hat schon öfters über Photosynth berichtet, soeben habe ich Photosynth live auf CNN gesehen. image CNN hat Teilnehmer von Präsident Barack Obama’s Inaugurationsfeier aufgefordert ihre Fotos von genau dem Moment in der Angelobung als Obama den Schwur machte, an themoment@cnn.com zu mailen. CNN nahm dann diese Fotos und kombinierte sie mit Hilfe von Photosynth zu einer riesigen Fotomontage in der man sich frei bewegen, rein- und rauszoomen kann. Die Collage wird dann auch, vermutlich in Kürze mittels Silverlight online gestellt unter www.cnn.com/themoment

vlcsnap-390355 
Zu sehen bei Youtube bzw. Soapbox

image

CNN.com - Special Reports - The 44th President - The Moment

Windows 7 Neuerungen: DPI Skalierung

Es lassen sich nun in Windows 7 die DPI Darstellung noch besser skalieren als in Windows Vista.
Programme, in denen das “schöne” hochskalieren von Schriften und Vektorgrafiken nicht möglich ist, werden dabei hochgerechnet, was leider nicht immer gut aussieht. Bei Webseiten in IE8 ist es jedenfalls praktisch. Wichtige Neuerung zu Vista: Kein Neustart mehr erforderlich, nur ab- und wieder anmelden!

DPI Skalierung unter Windows 7

Vista - Dateien lassen sich nicht löschen: Take Control!

Problemstellung: Dateien von früheren Windows Installationen lassen sich nicht löschen, etwa Windows.old, Windows.old.000, der ‘Program Files’ einer nicht mehr verwendeten Windows Installation etc.
Oder aber eine externe, NTFS formatierte Festplatte, die auf einem Computer erstellt war, lässt sich auf einem anderen Computer nicht mehr auslesen, weil dieser ja die Konten des ersten Computers nicht kennt und daher die Berechtigungen nicht korrekt zuweisen kann.

Folgendes Skript löst alle Sorgen:

takecontrol.cmd

takeown /f %1 /r /d j
icacls %1 /grant Administratoren:F /t

In einem englischen Windows muss das aber etwas anders aussehen:

takeown /f %1 /r /d y
icacls %1 /grant administrators:F /t

Aufrufen kann man das ganze dann aus einer Kommandozeile mit Administratorrechten z.B. so:

takecontrol Windows.old.000

Oder man verwendet meinen sudo Befehl – also so:

sudo takecontrol Windows.old.000

Achtung: Die hier genannten Befehle sind mit höchster Vorsicht zu genießen – keinesfalls auf die ktiven Windows- und Systemverzeichnisse einer aktiven Windows Installation anwenden!

Nutzung erfolgt auf eigene Gefahr!

Per Skript die Priorität von Prozessen verändern

Die unglaubliche Macht von WSH (oder Powershell) in Kombination mit WMI ist mir schon länger bekannt. Ich möchte das für mich nutzen, um ein Skript zu schreiben, dass mir auf Klick (oder ereignisgesteuert) alle Prozesse mit einem bestimmten Namen beschleunigt oder abbremst, also die Priorität verändert.

Wie mache ich das? Mit einem Skript namens setprio.vbs, das zwei Parameter entgegennimmt, nämlich ‘Processname’ (in Kleinbuchstaben) und ‘DesiredPriority’
DesiredPriority kann einen dieser Werte haben:
IDLE|BELOW_NORMAL|NORMAL|ABOVE_NORMAL|HIGH_PRIORITY|REALTIME
In meinem Skript führt ein ungültiger Wert automatisch dazu, dass der Prozess auf ‘NORMAL’ zurückgesetzt wird.

Mit diesem Befehl werden also alle Internet Explorer Prozesse abgebremst:
cscript setprio.vbs iexplore.exe BELOW_NORMAL

image

Wofür kann man nun sowas in der Praxis wirklich brauchen?
Also: Man nehme an, man hat eine sehr große Musik- oder Videobibliothek umzuwandeln (wir sprechen von vielen Tagen, wenn nicht Wochen Rechenarbeit!), möchte aber z.B. unter Tags auf dem Rechner normal arbeiten können, dann muss man z.B. in der Früh nur diesen Befehl ausführen:
cscript setprio.vbs convertvideo.exe BELOW_NORMAL
Vor dem Schlafen gehen dann:
cscript setprio.vbs convertvideo.exe ABOVE_NORMAL
Natürlich kann man auch IDLE oder REALTIME nehmen, bzw. das ganze zeitgesteuert machen oder (unter Vista, Windows Server 2008 oder Windows 7) das ganze ereignisgesteuert machen.
Das Skript ist natürlich auch hervorragend etwa für einen (Home-)server oder ein Media Center geeignet, um die schwächeren Stunden oder die Nacht perfekt für Rechenaufgaben zu nützen. Ich werde mir das mittels Ereignissteuerung so konfigurieren, dass bestimmte Prozesse automatisch eine höhere oder sehr hohe Priority bekommen, wenn niemand vor dem Computer sitzt (=Bildschirm schwarz), und die Prozesse sofort in den Hintergrund fliegen, sobald der PC wieder benutzt wird.

Normalerweise schreibe ich gerne kurze, lesbare Skripts, ich habe hier bewußt etwas ausgefeiltere Rückmeldungen und Fehlerbehandlungen eingebaut. Mit Powershell wäre das natürlich sogar als Einzeiler realisierbar gewesen. Aber Powershell ist halt noch nicht auf jedem Windows PC standardmäßig installiert, daher bevorzuge ich zur Zeit (von Exchange 2007 Servern abgesehen) noch WSH/VBScript:

set args = WScript.Arguments
num = args.Count

'Error handling if no command line parameters given
if num < 2 then
   WScript.Echo "No command line parameters!"
   WScript.Echo "Syntax: cscript setprio.vbs ProcessName DesiredPriority"
   WScript.Echo "DesiredPriority can be: "
   WScript.Echo "IDLE|BELOW_NORMAL|NORMAL|ABOVE_NORMAL|HIGH_PRIORITY|REALTIME"
   WScript.Quit 1
end if

ProcessName   =     args.Item(0)
DesiredPriority =    args.Item(1)

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")

'Here all Processes will be found,
'
that contain the ProcessName and the Sub SetPID will be called
For Each objItem in colItems
    If InStr(lcase(objItem.Name), ProcessName) Then
        '    Use objItem.CommandLine instead of objItem.Name
        '    if you want to match a string as part of the
        '    full commandline for the process!
    Call SetPID (objItem.ProcessID, GetPriorityID (DesiredPriority))
    End If
Next

'Here the Processes will be set to the desired priority
Sub SetPID (intPID, intPriority)

    set objWMIProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process.Handle='" & intPID & "'")
    intErrorCode = objWMIProcess.SetPriority(intPriority)
    if intRC = 0 Then
       Wscript.Echo "Successfully set priority for process " & objWMIProcess.Name & " (ID: " & intPID & ") to " & GetPriorityName(intPriority)
    else
       Wscript.Echo "Error: '" & intErrorCode & "' setting priority for process " & objWMIProcess.Name & "(ID: " & intPID & ") to " & GetPriorityName(intPriority)
    end if
       Wscript.Echo "(Command: '" & objItem.CommandLine & "')"
       Wscript.Echo vbcrLF
End Sub

'These two functions aren't really necessary, they just translate
'
the more readable priority names into the numbers
'required by objWMIProcess.SetPriority

Function GetPriorityName (intPriority)
    Select Case intPriority
        Case 32:     GetPriorityName = "NORMAL"
        Case 64:     GetPriorityName = "IDLE"
        Case 128:     GetPriorityName = "HIGH_PRIORITY"
        Case 256:     GetPriorityName = "REALTIME"
        Case 16384:     GetPriorityName = "BELOW_NORMAL"
        Case 32768:     GetPriorityName = "ABOVE_NORMAL"
    End Select
End Function

Function GetPriorityID (strPriorityName)
    Select Case strPriorityName
        Case "NORMAL":        GetPriorityID = 32
        Case "IDLE":        GetPriorityID = 64
        Case "HIGH_PRIORITY":    GetPriorityID = 128
        Case "REALTIME":    GetPriorityID = 256
        Case "BELOW_NORMAL":    GetPriorityID = 16384
        Case "ABOVE_NORMAL":    GetPriorityID = 32768
        'Invalid Priorityname resets Priority to 'NORMAL'
        Case ELSE:        GetPriorityID = 32
    End Select
End Function

Hier noch eine verkürzte Version davon, nur um zu zeigen, dass es natürlich auch kürzer geht, wenn man etwa die Parameter direkt in’s Skript gibt, und nicht ganz so viele Ausgaben macht:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")

For Each objItem in colItems
    If InStr(lcase(objItem.Name), "notepad.exe") Then
    Call SetPID (objItem.ProcessID, 16384)
    End If
Next

Sub SetPID (intPID, intPriority)

    set objWMIProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process.Handle='" & intPID & "'")
    intErrorCode = objWMIProcess.SetPriority(intPriority)
    if intRC = 0 Then
       Wscript.Echo "Successfully set priority for process " & objWMIProcess.Name & " (ID: " & intPID & ")"
    else
       Wscript.Echo "Error: '" & intErrorCode & "' setting priority for process " & objWMIProcess.Name & "(ID: " & intPID & ")"
    end if
End Sub

Weitere Informationen: Das Einrichten von ereignisgesteuerten Aufgaben erkläre ich in einem anderen Zusammenhang in diesem Beitrag.

Dell Seriennummer auslesen

Dieses nette kleine Skript liest die Seriennummer von Dell Servern (aber auch PCs und Laptops) aus:

serial.vbs

Set wmiobj = GetObject("winmgmts://localhost/root/cimv2:Win32_BIOS")
For each ver in wmiobj.Instances_
MsgBox ver.SerialNumber
Next

Auf einem Dell Server und auf einem Dell Laptop getestet, sollte aber auch bei anderen Marken funktionieren, die Ihre Seriennummer im Bios hinterlegen.

Windows 7 Hype

Windows 7 finde ich toll – niemand soll mich hier falsch verstehen! Über die Windows 7 Beta wird man von mir hier noch so manches, vermutlich großteils Positives, lesen. Aber ich bin offenbar einer der wenigen Menschen die auch schon von Windows Vista begeistert, und auch sehr zufrieden damit waren. Spätestens seit Service Pack 1 (und auch schon davor) hätte ich Windows Vista selbst meinem besten Freund empfohlen.

image

Mein lieber Kollege Georg Binder, Autor von Vistablog.at, sieht das offenbar genau so. Und so haben wir in der gleichen Sekunde, einige Kilometer von einander entfernt (Wien Favoriten – Wien Rodaun) offenbar das gleiche gedacht und getippt. Wörtlich das gleiche.
Der Windows 7 Hype beruht zum Teil auf Dingen, die schon in Windows Vista drinnen waren!!!!

Damit dieser Blogpost nicht zu einem reinen Fun-Beitrag ohne Fakten verkommt, hier ein Beispiel:

Der Webstandard hasst bekanntermaßen Vista. Es wird fast nur negativ darüber berichtet.
Hier ein Beispiel für Funktionen, die jetzt plötzlich gelobt werden, obwohl sie zu Vista nicht verändert sind:

image

[…]

image

 

Also langsam. Die Suche war auch unter Vista schon schnell und effizient und ein Mittel zur raschen Navigation. Die Behauptung die Suche diene erstmalig(?) auch als Mittel zur raschen Navigation, lässt darauf schließen, dass der Autor noch nie Windows Vista verwendet hat. (Ich starte seit über zwei Jahren Programme ausschließlich über die Schnellsuche…)
Die Suche und vor allem die stärkere Verschmelzung zwischen Desktop- und Internetsuche ist zwar in Windows 7 toll – und wie Georg schreibt “ein Zuckerl” – das dürfte der Standard Redakteur aber nicht gemeint haben, vielmehr klingt es so, als würde er die integrierte, indizierte Suche loben, die es in Vista schon gab.
Zusammenlegen der Ausführen- mit der Suchleiste? Was genau ist die Veränderung? Ich konnte früher (unter Vista) jeden Befehl über die Suchleiste im Startmenü ausführen, ich kann das jetzt (unter Windows 7) noch immer…

Wenn ich mich nicht so freuen würde, dass der Standard endlich einmal positiv über ein Microsoft Produkt berichtet, würde ich eigentlich den Autor dieses Artikels beschuldigen, Windows 7 unter völliger Ausser-acht-Lassung von Windows Vista mit Windows XP zu vergleichen. (Ups, jetzt habe ich’s erst getan…)

Gewundert habe aber nicht nur ich mich:

image 

image

Übrigens dieser Kommentar hat mir sehr gut gefallen. (Er ist weder von mir, noch kenne ich den Autor:)
image

Dieser gefällt mir auch gut: … so beliebt wie Windows XP … Schön! Ist/War Windows XP so beliebt?Offenbar. Windows XP hatte nach meinem Dafürhalten bei weitem nicht solche Vorschusslorbeeren, und war am Anfang bzw. bis inkl. 2005/2006 (deutlich nach SP2) eigentlich gar nicht sonderlich beliebt. Wirklich beliebt wurde es doch erst als Vista kam…?

image

Na ja egal, wie sagten die Beatles so schön, “Let it be”… Ich werde wohl noch meinen Enkeln erzählen wie toll Windows Vista war, aber die Geschichte wird nun mal nicht von mir geschrieben, sondern von der Presse, bzw. vom Standard. (Anmerkung: Echte Fachpresse ausgenommen;  c’t hat schon immer ausgewogen zu Vista berichtet…)

Also lasst uns in Zukunft nur mehr von Windows 7 sprechen, auch wenn vieles von seinem Erfolg auf Windows Vista zurückzuführen sein wird!!!

Zeichencodierungen in Microsoft Expression Web

Zeichencodierungsfehler Bei einem meiner Kunden, dessen Homepage ich betreue kommt es seit einiger Zeit zu Fehlern in der Darstellung von Umlauten. Dass das was mit Zeichencodierung also UTF-8 vs. ISO-8859-1 zu tun hat, war mir schon länger klar, dass vermutlich Expression Web daran schuld ist, auch. Expression speichert offenbar etliche include Dateien standardmäßig in UTF-8 obwohl in der Masterseite ISO-8859-1 eingestellt ist:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Das führt naturgemäß zu Problemen.

Microsoft MVP Christoph Schneegans erklärt auf seiner Webseite wie es genau dazu kommt und was man dagegen tun kann: Zeichencodierungen in Expression Web

Windows 7: Windows-Leistungsindex bis 7,9

Unter Windows 7 wird der Windows Leistungsindex, der unter Windows Vista nur bis 5,9 ging, auf 7,9 erweitert. Diese Maßnahme kommt gerade rechtzeitig, da immer mehr Systemkomponenten beim Maximalwert von 5,9 anstoßen...

image

image

Windows 7 Performance

Facebook

Letzte Tweets

Twitter Mai 26, 23:39
Gelbe Engel! Danke!

Twitter Mai 18, 21:34
Finland was terrible. #Eurovision

Twitter Mai 17, 12:49
just blogged Ist das Surface Pro teuer? – Ein Fact-Check: Gestern wurde angekündigt, dass das Surface Pro in D... http://t.co/PhW7qzhkUq

Folge mir auf Twitter!

Über den Autor

MCTS

Christian Haberl Christian Haberl ist seit mehr als 10 Jahren als EDV Berater, Vortragender und Trainer tätig. Er kann sich nicht für ein Spezialgebiet entscheiden, drum heißt dieser Blog auch "Kraut & Rüben Blog" - Unter seine Interessen fallen Web-Entwicklung auf ASP.NET Basis, Information Worker & Productivity Technologien (Windows, Office), Server (Windows Server, Small Business, Virtualisierung, Exchange), Scripting, Spam Filtering/Security und Digital Home. Christian Haberl ist auch einer der führenden Produktspezialisten für Windows Media Center und Windows Home Server und ist Direktor des ClubDigitalHome.
Im Jahr 2008 hat Christian Haberl über 200 Vorträge und Schulungen durchgeführt.
Im Frühjahr 2009 wurde Christian Haberl von Microsoft Österreich zum "Influencer" ernannt, weiters wurde er Microsoft Certified Technology Specialist / Microsoft Certified Connected Home Integrator sowie Microsoft Certified Consumer Sales Specialist.

Month List

Netzwerk Management

Bandwidth

RecentComments

Comment RSS