Tablet PC Edition Entwickeln für den Tablet Entwickeln für den Tablet PC PC Das Microsoft Tablet PC Platform SDK Das Microsoft Tablet PC Platform SDK Frank Prengel Frank Prengel , < , < [email protected][email protected]> > Technologieberater Technologieberater .NET Strategy & Developer Group .NET Strategy & Developer Group Microsoft Deutschland GmbH Microsoft Deutschland GmbH
74
Embed
Tablet PC Edition Entwickeln für den Tablet PC Das Microsoft Tablet PC Platform SDK Frank Prengel, Technologieberater.NET Strategy & Developer Group Microsoft.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Tablet PC Edition
Entwickeln für den Tablet Entwickeln für den Tablet PCPCDas Microsoft Tablet PC Platform SDKDas Microsoft Tablet PC Platform SDK
Frank PrengelFrank Prengel, <, <[email protected]@microsoft.com>>TechnologieberaterTechnologieberater.NET Strategy & Developer Group.NET Strategy & Developer GroupMicrosoft Deutschland GmbHMicrosoft Deutschland GmbH
• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien
• ZusammenfassungZusammenfassung
Tablet PC Edition
... und ganz wichtig:... und ganz wichtig:
• Input erbeten!Input erbeten!• Ihre IdeenIhre Ideen• Ihre MeinungenIhre Meinungen• Ihre VorstellungenIhre Vorstellungen• Ihre WünscheIhre Wünsche• Ihre KritikIhre Kritik
Tablet PC Edition
Back to the FutureBack to the Future
• Der Tablet PC hat viele Vorgänger ...Der Tablet PC hat viele Vorgänger ...
Tablet PC Edition
Was Was haben wir gelernt? wir gelernt?
You can´t railroad before it´s railroading
time.
Robert Heinlein
Tablet PC Edition
2002 – der Tablet PC2002 – der Tablet PC
• Die gewohnte PC-Infrastruktur: Windows XPDie gewohnte PC-Infrastruktur: Windows XP
• Die Mobilität eines Sub-NotebooksDie Mobilität eines Sub-Notebooks
• Die Flexibilität von Stift + PapierDie Flexibilität von Stift + Papier
• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien
• Betriebssystem:Betriebssystem:• Microsoft Windows XP ProfessionalMicrosoft Windows XP Professional• Windows XP Service Pack 1Windows XP Service Pack 1• .NET Framework 1.0 SP2.NET Framework 1.0 SP2• Tablet PC ComponentsTablet PC Components
Windows XP Professional Service
Pack 1
Tablet PCCompo-nents
Tablet PC Edition
Software (2/2)Software (2/2)
• Tablet-spezifische Software:Tablet-spezifische Software:• StifteingabeStifteingabe• Ink-SteuerelementeInk-Steuerelemente• Gesten-, Schrift- und Gesten-, Schrift- und
• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien
• ZusammenfassungZusammenfassung
Tablet PC Edition
ArchitekturArchitektur
• ... im Überblick:... im Überblick:
Gestures Ink Recognition
Kernel Mode
User Mode
API / Run-Time Interfaces
Recognizers Microsoft (US, JPN, etc.)
Gestures, Shapes OthersMouse
DriverHID
HID MiniDriver
CustomDriver
• Interaktion mit Hardware nur über Interaktion mit Hardware nur über Gesture-KomponentenGesture-Komponenten
Tablet PC Edition
Tablet Input SubsystemTablet Input Subsystem
• Anwendungen erhalten Pen-Input-Daten Anwendungen erhalten Pen-Input-Daten durch Shared Memory Queue (durch Shared Memory Queue (nichtnicht durch durch Windows Messages)Windows Messages)
• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien
• ZusammenfassungZusammenfassung
Tablet PC Edition
Entwickeln für den Tablet Entwickeln für den Tablet PCPC• "Think in Ink""Think in Ink"
• Ink als eigenständiger DatentypInk als eigenständiger Datentyp• kann als solcher gespeichert & verarbeitet werdenkann als solcher gespeichert & verarbeitet werden
• Schrifterkennung ist kein vollwertiger Schrifterkennung ist kein vollwertiger Tastatur-ErsatzTastatur-Ersatz
• besondere Anforderungen an das User besondere Anforderungen an das User InterfaceInterface• vereinfachte & natürliche Dateneingabevereinfachte & natürliche Dateneingabe• Größe der ControlsGröße der Controls
• Entdecke die Möglichkeiten!Entdecke die Möglichkeiten!
Tablet PC Edition
Das Tablet PC Platform Das Tablet PC Platform SDKSDK• aktuelle Version: aktuelle Version: 1.51.5
• unterstützte Plattformen:unterstützte Plattformen:• Windows 2000 Professional SP2 *Windows 2000 Professional SP2 *• Windows XP Professional *Windows XP Professional *• Windows XP Tablet PC EditionWindows XP Tablet PC Edition
• unterstützte Tools:unterstützte Tools:• Visual Studio 6.0 SP5Visual Studio 6.0 SP5• Visual Studio .NETVisual Studio .NET• Visual Studio .NET 2003Visual Studio .NET 2003
(* Keine Schrifterkennung. Ohne SDK keine Ink Collection.)(* Keine Schrifterkennung. Ohne SDK keine Ink Collection.)
Tablet PC Edition
Das Tablet PC Platform Das Tablet PC Platform SDKSDK• Managed (= .NET) APIs Managed (= .NET) APIs
• für Stift & Inkfür Stift & Ink
• COM Automation APIs (C/C++, VB6) COM Automation APIs (C/C++, VB6) • für Stift & Inkfür Stift & Ink
• StrokeStroke: Datensatz, aufgenommen : Datensatz, aufgenommen während einer Sequenzwährend einer Sequenz Pen Down Pen Down Pen Move Pen Move Pen Up Pen Up
• Sammlung von PacketsSammlung von Packets
• besitzt eindeutige ID (int) im Ink-Objektbesitzt eindeutige ID (int) im Ink-Objekt• AchtungAchtung: Jede Stiftaktion erzeugt einen : Jede Stiftaktion erzeugt einen
Stroke! Stroke! Nicht jeder Stroke ist sichtbar! Nicht jeder Stroke ist sichtbar!
• besitzt Eigenschaft besitzt Eigenschaft Deleted Deleted ((!!))
• Manipulation über das Ink-Objekt:Manipulation über das Ink-Objekt:AddStrokesAtRectangle, AddStrokesAtRectangle, CreateStroke(Point[] pts), DeleteStroke, CreateStroke(Point[] pts), DeleteStroke, DeleteStrokes, ExtractStrokes DeleteStrokes, ExtractStrokes etc.etc.StrokeIdViewer
Tablet PC Edition
StrokesStrokes
• StrokesStrokes –Collection gehört zu Ink-Objekt –Collection gehört zu Ink-Objekt• read-only; enthält Verweise auf Stroke-read-only; enthält Verweise auf Stroke-
• Formatierungsinfos für die Darstellung Formatierungsinfos für die Darstellung von Ink:von Ink:• bool bool AntiAliasedAntiAliased• Color Color ColorColor• bool bool FitToCurveFitToCurve: Gerade oder Bézier?: Gerade oder Bézier?• float float HeightHeight: für rechteckige Stiftspitze: für rechteckige Stiftspitze• bool bool IgnorePressureIgnorePressure• PenTip PenTip PenTipPenTip: Ball, Rectangle: Ball, Rectangle• RasterOperation RasterOperation RasterOperationRasterOperation: CopyPen : CopyPen
• RecognizerRecognizer• repräsentiert eine Recognition Enginerepräsentiert eine Recognition Engine• normalerweise sprachspezifischnormalerweise sprachspezifisch
• RecognizerContextRecognizerContext• Unterstützung für den Recognizer bzgl. des zu Unterstützung für den Recognizer bzgl. des zu
erkennenden Inhaltserkennenden Inhalts
• RecognitionResultRecognitionResult• erkannter Text & mögliche Alternativenerkannter Text & mögliche Alternativen
Tablet PC Edition
RecognizerRecognizer• synchrone oder asynchrone Umwandlung synchrone oder asynchrone Umwandlung
von Ink in Textvon Ink in Text• Input: Input: StrokesStrokes-Collection eines Ink-Objekts-Collection eines Ink-Objekts• Output: Output: RecognitionResultRecognitionResult mit möglichen mit möglichen
TextwertenTextwerten
• verschiedene Recognizer können verschiedene Recognizer können verschiedene Sprachen oder Zwecke verschiedene Sprachen oder Zwecke unterstützenunterstützen• nicht nur Text kann erkannt werden: Formen, nicht nur Text kann erkannt werden: Formen,
Noten, etc. möglichNoten, etc. möglich• Anwendungsgesten – Ink-basiertAnwendungsgesten – Ink-basiert
• z.Zt. 8 Sprachen unterstütztz.Zt. 8 Sprachen unterstützt• US English, International English, Japanisch, US English, International English, Japanisch,
Deutsch, Französisch, Simplified & Traditional Deutsch, Französisch, Simplified & Traditional Chinese, KoreanischChinese, Koreanisch
Tablet PC Edition
Synchron vs AsynchronSynchron vs Asynchron
• auch "Vordergrund" vs "Hintergrund"auch "Vordergrund" vs "Hintergrund"
• Erkennung im selben Thread wie die Erkennung im selben Thread wie die Anwendung?Anwendung?• asynchron: bei zeitkritischen Anwendungen asynchron: bei zeitkritischen Anwendungen
oder großen Mengen von Inkoder großen Mengen von Ink• schwieriger zu programmierenschwieriger zu programmieren
• Mittelweg: Teilerkennung ("partial Mittelweg: Teilerkennung ("partial recognition")recognition")• Recognizer startet, sobald Ink verfügbar ist, Recognizer startet, sobald Ink verfügbar ist,
korrigiert Ergebnis laufendkorrigiert Ergebnis laufend• meist in eigenem Threadmeist in eigenem Thread
Tablet PC Edition
ZuverlässigkeitZuverlässigkeit
• Texterkennung ist nicht einfach & selten Texterkennung ist nicht einfach & selten eindeutig!eindeutig!
• Recognizer liefert nicht nur Textstring, Recognizer liefert nicht nur Textstring, sondern auchsondern auch• Aussagewahrscheinlichkeit ("confidence Aussagewahrscheinlichkeit ("confidence
• Methode Methode SetGestureStatusSetGestureStatus legt fest, legt fest, welche Gesten erkannt werden sollenwelche Gesten erkannt werden sollen• alle erkennen: alle erkennen: ApplicationGesture.AllGesturesApplicationGesture.AllGestures
Tablet PC Edition
Erkennung nichttrivialErkennung nichttrivial
• RecognizerRecognizer-Objekt zur Steuerung der -Objekt zur Steuerung der TexterkennungTexterkennung• Eigenschaft Eigenschaft CapabilitiesCapabilities
• ArbitraryAngle, DownAndLeft etc.ArbitraryAngle, DownAndLeft etc.
• RecognizerContextRecognizerContext für spezifische für spezifische TexterkennungTexterkennung• Modus: Modus: RecognitionFlagsRecognitionFlags• Input-Typ, Wortlisten etc.Input-Typ, Wortlisten etc.
Tablet PC Edition
RecognizerContext RecognizerContext nutzennutzen• Objekt erstellen Objekt erstellen
• Eigenschaft Eigenschaft FactoidFactoid des des RecognizerContextRecognizerContext-Objekts gibt Hinweis -Objekts gibt Hinweis darauf, darauf, waswas erkannt werden soll: erkannt werden soll:recoCtxt.Factoid="EMAIL|WEB"recoCtxt.Factoid="EMAIL|WEB"
• Factoids sind StringsFactoids sind Strings• DIGIT, DEFAULT, CURRENCY, DATE etc.DIGIT, DEFAULT, CURRENCY, DATE etc.
• Eigenschaft Eigenschaft WordlistWordlist enthält Sammlung enthält Sammlung von Strings, welche bevorzugt erkannt von Strings, welche bevorzugt erkannt werden sollen:werden sollen:
• GestureGesture-Ereignis und -Ereignis und SetGestureStatus()SetGestureStatus() für Gestenerkennungfür Gestenerkennung• Default: DownLeft[Long] (Return), Default: DownLeft[Long] (Return),
UpRight[Long] (Tab), Right (Space), Left UpRight[Long] (Tab), Right (Space), Left (Bkspc)(Bkspc)
Tablet PC Edition
InkPictureInkPicture
• Kombination aus Kombination aus InkOverlayInkOverlay und und PictureBoxPictureBox
• ErgonomieErgonomie• Zielen: Bereiche <5mm schwer zu treffenZielen: Bereiche <5mm schwer zu treffen• Auswählen: Lasso-ToolAuswählen: Lasso-Tool• Hovering: spezielle Version von COMCTL32.DLLHovering: spezielle Version von COMCTL32.DLL
Tablet PC Edition
DesignrichtlinienDesignrichtlinien
• Parallaxe durch Bildschirmdicke & Parallaxe durch Bildschirmdicke & LichtbrechungLichtbrechung• KalibrierungKalibrierung
• Entwickeln für den Tablet PCEntwickeln für den Tablet PC• Das SDK im ÜberblickDas SDK im Überblick• Managed LibrariesManaged Libraries• Design-RichtlinienDesign-Richtlinien
• ZusammenfassungZusammenfassung
Tablet PC Edition
ZusammenfassungZusammenfassung• Ink ist das grundlegende Objekt in Ink ist das grundlegende Objekt in
• Das SDK bietet umfangreiche & Das SDK bietet umfangreiche & komfortable Möglichkeiten zur komfortable Möglichkeiten zur Manipulation von Ink, zur Analyse & Manipulation von Ink, zur Analyse & Schrifterkennung.Schrifterkennung.
• Für Standardaufgaben stehen Ink Controls Für Standardaufgaben stehen Ink Controls zur Verfügung.zur Verfügung.
• Es bestehen besondere Anforderungen an Es bestehen besondere Anforderungen an das UI-Design.das UI-Design.
Tablet PC Edition
Fragen!?Fragen!?
Uff...Uff...
Tablet PC Edition
BuchempfehlungBuchempfehlung
• Rob Jarrett, Philip SuRob Jarrett, Philip Su“Building Tablet PC “Building Tablet PC Applications”Applications”Microsoft Press 2003Microsoft Press 2003ISBN 0-7356-1723-6ISBN 0-7356-1723-6
Tablet PC Edition
Weiterführende InfosWeiterführende Infos
• Tablet PC Platform SDKTablet PC Platform SDKhttp://msdn.microsoft.com/downloads/default.asphttp://msdn.microsoft.com/downloads/default.asp?url=?url=/downloads/sample.asp?url=/MSDN-FILES//downloads/sample.asp?url=/MSDN-FILES/027/002/015/msdncompositedoc.xml027/002/015/msdncompositedoc.xml
• Tablet Developer Info @ MicrosoftTablet Developer Info @ Microsofthttp://www.microsoft.com/windowsxp/tabletpc/http://www.microsoft.com/windowsxp/tabletpc/developers/default.aspdevelopers/default.asp
• Tablet PC Developer CommunityTablet PC Developer Communityhttp://www.tabletpcdeveloper.com/http://www.tabletpcdeveloper.com/