Разработка приложений для Windows 7
-
Upload
moses-barnett -
Category
Documents
-
view
122 -
download
9
description
Transcript of Разработка приложений для Windows 7
Разработка приложений для Windows 7
Konstantin KosinskyArchitectMicrosoft Innovation CenterBlog: http://dev.net.ua/blogs/kosinsky
Few Changes: Most software that runs on Windows Vista will run on Windows 7 - exceptions will be low level code (AV,
Firewall, Imaging, etc). Hardware that runs Windows Vista well will run Windows 7 well.
Windows 7
Few Changes: Focus on quality and reliability improvements
Windows 7 построена на базе Windows Vista
Deep Changes: New models for security, drivers, deployment, and
networking
Decrease
MemoryReference set, Graphics
Disk I/ORegistry Reads, Indexer
PowerDVD Playback, Panel, Timers
Increase
SpeedFaster BootDevice Ready
ResponsivenessStart menu,
TaskbarScale
256 processors
Ответ на вызовы
Эффективность энергопотребления
Keep idle and stay idleМинимизация работающих процессов и задачМинимизация фоновых процессов
0 20 40 60 80 100
- 5.00
10.00 15.00 20.00 25.00 30.00 35.00 40.00
System Power vs. CPU Uti-lization(Idle)
CPU Utilization (%)To
tal
Syste
m P
ow
er
(Watt
s)
+10% CPU => +1.25W +1.25W => -8.3% battery
Парковка ядер
Socket 0
Core 0
Core 1
Core 0
Core 1
Socket 1
Core 1
Core 0
Core 0
Core 1
Нагрузка
Что может сделать разработчик?
Trigger-Started ServicesTimer Coalescing
Timer tick15.6 ms
Periodic Timer Events
Windows 7
Vista
Демо
Кнопки панели задач
Консолидация:Панели быстро запускаОбласти нотификацииИконок рабочего столаЗапущенных приложений
RunningNot
running
Multiple windows + hoverActive
Как окна группируются?
ApplicationIDЭто строка, а не GUID
Ограничение в 128 символовСоглашение по именованиб - Company.Product.SubProduct.Version
По умолчанию: Имя процессаНеобходимость модификации:
Несколько процессов, одно приложениеОдин исполняемый файл, много приложений
Управление Application Id
На уровне процесса - действует на все окна:
#include <windows.h>#pragma comment (lib, "shell32.lib")
SetCurrentProcessExplicitAppUserModelId(L"Microsoft.Samples.AppId1");
Windows7Application.SetCurrentProcessAppId(
"Microsoft.Samples.AppId1");
Application Id окна
PROPVARIANT pv;InitPropVariantFromString(
L"Microsoft.Samples.AppId2", &pv);IPropertyStore *pps;HRESULT hr = SHGetPropertyStoreForWindow(
hWnd, IID_PPV_ARGS(&pps));pps->SetValue(PKEY_AppUserModel_ID, pv);
myForm.SetAppId("Microsoft.Samples.AppId2");
Jump Lists
Destinations(“nouns”)
Tasks(“verbs”)
Known categories
Custom categories
User Tasks
Taskbar Tasks
Pinned category
Управление Jump ListШаг 1: Ассоциируем тип файлов
Ассоциируем приложение с расширение файловИспользуем common file dialogsИспользуем recent document API
SHAddToRecentDocs(SHARDW_PATH, "file.ext");
RH.RegisterFileAssociations(...);OpenFileDialog ofd = ...;ofd.ShowDialog();JumpListManager jlm = ...;jlm.AddToRecent("file.ext");
Управление Jump ListШаг 2: Добавляем задания
IObjectCollection* poc = ...;IShellLink* task = ...;poc.AddObject(task);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AddUserTasks(poa);pcdl.CommitList();
JumpListManager jlm = ...;jlm.AddTask(new ShellLink { Path=..., ... });
Управление Jump ListШаг 3: Добавляем категории
IObjectCollection* poc = ...;IShellItem* item = ...;poc.AddObject(item);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AppendCategory(L"Sales", poa);pcdl.CommitList();JumpListManager jlm = ...;jlm.AddCustomDestination( new ShellItem { Path=..., Category=... });
Thumbnail Toolbars
Управление приложением с панели задач
Создание Thumbnail Toolbars
UINT wm_tbc = RegisterWindowMessage("TaskbarButtonCreated");
MSG m; GetMessage(..., &m);if (m.message == wm_tbc) { ITaskbarList3* ptl = ...; THUMBBUTTON btn = {...}; ptl->ThumbBarAddButtons(m.hWnd, 1, &btn);}ThumbButtonManager tbm = ...;tbm.CreateThumbButton(...).Clicked += ...;
Прогресс и уведомления
Область уведомлений теперь контролируется пользователемИспользуйте кнопки панели задача для отображения прогресса и уведомлений
Прогресс и уведомления
ITaskbarList3* ptl = ...;ptl->SetOverlayIcon( hwnd, hicon, L"Accessible Description");ptl->SetProgressState(hwnd, TBPF_NORMAL);for (int i = 0; i < MAX; ++i) { ptl->SetProgressValue(hwnd, i, MAX);}myForm.SetTaskbarOverlayIcon(icon, "...");ProgressBar pb = ...;pb.SetTaskbarProgress();
Live Thumbnail Clip
Управление Live Thumbnails
DwmSetWindowAttribute( ...,DWMWA_HAS_ICONIC_BITMAP,...);DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...);/* in the WndProc */case WM_DWMSENDICONICTHUMBNAIL: HBITMAP hbm = ...; DwmSetIconicThumbnail(hwnd, hbm, ...);CustomWindowsManager cwm = ...;cwm.ThumbnailRequested += (o,e)=>e.Bitmap=b;
Демо
Windows Scenic RibbonApplication
MenuQuick Access Toolbar
Tab Contextual Tab SetContextual Tab
Help
Group (aka “Chunk”)
Dialog Launcher
Варианты ленточного интерфейса
Microsoft’s Ribbon Strategy
MFC ScenicWPF
Target:Managed
Target:MFC native
Target:Native
Needs .NET 3.5 SP1
Win2K or newer
Vista or newer
Office 2007 & Windows styles
Office 2007 & Windows styles1
Windows visual style
Official release in 2009
Available now in Visual Studio 2008 SP1
Coming soon…Ships with Windows 7
Демо
Multi-touch Is Here!Hardware
Software
Consumers
Windows 7 ReleaseNET 4.0 / Surface 2.0 Release
Surface HardwareWindows 7
Surface HardwareWindows
VistaWindows 7
NativeWin32
Application
Touch Development Roadmap
WPF 3.5
Surface SDK1.0
Managed Wrapper and
Interop
Managed Wrapper and Interop
WinForms Application
WPF 3.5 SP1
WPF 4.0
Surface SDK 2.0
WPF Application
Surface Application
Multi-Touch Controls
Multi-Touch API
Surface Multi-Touch Controls &
API
Multi-Touch API
Multi-Touch API and Controls
Good Better BestAPIs •Panning/zoom
gestures•Right click gesture
•Gesture notifications•Pan/zoom/rotate
•Raw touch data•Manipulation and Inertia processors
Native Win32
•Controls with standard scrollbars
•WM_GESTURE message
•WM_TOUCH•COM based Manipulation and Inertia Processors
WPF •WPF 4.0 pan support in ScrollViewer
•Gesture events• Inertia configuration
•Touch events•Manipulation and Inertia Processors
WinForms
•Controls with standard scrollbars
•WM_GESTURE message•P/Invoke
•Manipulation and Inertia Processors in Microsoft.Ink.DLL•Real-time Stylus or Ink Collector
Демо
И еще много…
PowerShell v2Сенсоры и географическое местоположениеFederated Search и БиблиотекиXPS (Xml Paper Specification)BITS(Background Intelligent Transfer Service)Обновленная работа с фоновыми процессамиГрафическая подсистемаUAC………….
Call to Action
Скачать и пройти:Windows 7 Training KitWindows 2008 R2 Training Kit
Скачать и установитьVisual Studio 2010 Beta 2
http://channel9.msdn.com/learn
Вопросы