Remember this hilarious video called “A Brief History of the Web” I blogged about in March? The video has won the Best Online Video (standalone) at the OMMA Awards. Very cool! You can see the full list of winners here. If you haven’t seen the “History of the Web” video already, you should
With Windows 7 now available worldwide, I wanted to share some resources available to help IT Pros become more proficient with Windows 7 and consumers more savvy about new support resources for Windows 7.
Microsoft Learning has developed a wide range of training and resources for IT Pros that address the benefits and key technical aspects of Windows 7. With these resources, IT Pros can prepare for deployments and become Windows 7 experts within in their organization. These resources include:
Since many IT Pros serve double-duty as the IT expert for their friends and family, there are support tools available in and around Windows 7 that make it easier for them to help consumers address their issues. Detailed on Microsoft’s PressPass site, these resources provide end-to-end Windows 7 support that includes built-in self-healing and support tools, easy-to-use automated and scripted solutions and customer support through new social media forums, including:
For more information about the value of training and certification, and to keep up with new Windows 7 training resources, visit Born to Learn; and for more information about the consumer support resources available in Windows 7, please visit support.microsoft.com.
Special thanks to the folks at Microsoft Learning and Microsoft Customer Service and Support (CSS) for reaching out to me and compiling these awesome resources to share with you today.
The Windows Marketplace for Mobile client provides users a streamlined experience to purchase and install applications on their Windows Mobile 6.5 devices (coming soon for 6.1, and 6.0).
![]()
As you will notice when installing applications, the user interface is different from the typical CAB file installation (see below) perhaps you are used to.
It is very important that the Marketplace install experience be uniform and streamlined. To keep it this way, no custom UI (errors, prompts, informational messages, etc.) should be displayed during installation or uninstallation.
If you absolutely must display custom UI, there are some things you should know about the Marketplace client.
The Marketplace client achieves a streamlined experience by suppressing the normal user interface, displaying a client specific progress bar and providing feedback when the installation has completed. This can cause problems for applications that have custom prompts implemented in the setup dll. For example, you may want to prompt the user to start your application after installation has completed. This is easily done by adding the appropriate MessageBox prompt to the Install_Init export of your setup dll. However, there can be problems with this.
The foreground display of your MessageBox or other custom UI, depends on knowing the window handle of the calling process. When your application is installed with the Marketplace client, no window handle is passed to your setup DLL’s exported functions. This can cause your custom UI to not be displayed in the foreground. This causes confusion for the user since it looks like the installation is still running, but there is no UI feedback. The only recourse for the user is to use task manager to locate the prompt window and select it to bring it to the foreground. This is a very poor user experience.
You can resolve this by using the MB_TOPMOST | MB_SETFOREGROUND flags when calling MessageBox or WS_EX_TOPMOST when creating a window for custom UI.
Have you tried the Marketplace client yet? No? Don’t have a 6.5 ROM update or device yet? No problem. Download the Windows Mobile 6.5 standalone emulator images here. These come with a fully functional Marketplace client you can download and install apps with.
Hope this helps.
Mike
Now that Windows 7 is available, are you looking for some security baseline recommendations from the experts? Then here’s another timely release from the Microsoft Solution Accelerators team! Today, new security baselines for Windows® 7 and Windows® Internet Explorer® 8 are available for download.
Over the past few months, the Solution Accelerators team collaborated with Microsoft security experts, multiple government agencies worldwide, and a large community of IT security professionals to develop and test these new security baselines.All of these baselines are free for you to use.
In case you are not familiar with all of the security baselines available for Microsoft products, they ship as part of the Security Compliance Management Toolkit (SCMT) Series. The SCMT helps you to plan, deploy, and monitor security baselines for Windows® operating systems, Internet Explorer, and 2007 Microsoft® Office applications. It contains background information about compliance, and planning advice about how to automate security compliance. It also refers you to other tools and guidance that you can use to establish and deploy a security baseline, and then monitor and maintain compliance with your established configuration.
Where do you start?
At a high level, security compliance consists of four basic steps:
The tools, guidance, and recommendations in the SCMT help you through each step of this process and give you the support to make key decisions about security baseline settings for your specific environment.
Here’s what you get:
What should you do next?
Gastbeitrag von Georg Binder , selbständiger IT-Dienstleister und Autor von windowsblog.at . Es ist so simpel, dass ich mich fast für das nächste Video entschuldigen muss… ein paar Mal auf weiter klicken, PIN auf dem nächsten Rechner eingeben, fertig,……(read more)
Many of the products that you use everyday are faceless and may be hard to identify with. We thought it would be interesting to put a face behind Windows Home Server and give you a chance meet some of the people that work on Windows Home Server day in and day out. I will be introducing you to different areas of the team, but we will start with our Community Program Manager, Jonas Svensson.
Jonas is someone that you may have already met. As our Community Program Manager, he participates in multiple events event throughout the year that you have possibly attended including SMB Nation and PDC. In this interview, you will find out how he contributes to the team and how Windows Home Server is a part of his daily life. Enjoy!
This post was written by Devrim Iyigun, a Senior Product Manager here in Redmond.
I had a chance to attend Gartner Symposium/ITxpo 2009 last week in Orlando, Florida. For those of you who are at the early stages of deploying Windows 7, looking for some insider information and did not have the opportunity to attend the conference, I have a great resource I would love to share with you.
Gartner Symposium/ITxpo 2009 is one of industry’s largest and most important annual gathering of CIOs and their senior IT leaders. This year’s event focused on how business technology can help customers return to growth by balancing cost optimization and risk mitigation. Microsoft was helping customers to understand how they can realize the benefits of Windows 7. With the general availability date for Windows 7 being October 22nd, this year’s event was quite special for the Microsoft team.
One of the Microsoft –sponsored sessions that took place is Windows 7 Early Adopter Customer Panel. In this highly visible discussion, featured Gartner Research VP & Distinguished Analyst Michael Silver facilitated the panel around Windows 7 planning, deployment and customer experience with Windows 7 Early Adopter Customers: ADP, BMW, Energizer and Pella.
The panel includes discussions about topics of importance for enterprises considering the move to Windows 7 such as application compatibility and deployment goals. ADP, BMW, Energizer and Pella share their perspective on business drivers to adopt Windows 7 and the benefits they expect to achieve with deploying Windows 7. These companies also share their deployment experience and recommendations for companies new to Windows 7 deployment.
This is your chance to get valuable insider information from Microsoft Customer industry leads. Please click here for a replay of this webcast.
For more enterprise company case studies, information on Windows 7 cost savings or our webcast series just visit our Windows Enterprise site.
For all of your Windows 7 IT pro information, visit the Springboard Series on TechNet. The destination for Windows desktop IT professionals to Discover & Explore, Pilot & Deploy and Manage Windows 7.
Gastbeitrag von Georg Binder , selbständiger IT-Dienstleister und Autor von windowsblog.at . Da es ausreicht, dass eine einzige Anwendung nicht mit Windows 7 kompatibel ist, um den Einsatz von Windows 7 aufzuschieben, hat Microsoft etwas recht naheliegendes…(read more)
This is fifth and final part of my Widget Anatomy series that described the ins and outs of the Widget Framework that shipped with windows mobile 6.5. In this installment we will discuss the different ways a Widget can receive inputs from the user and how best respond to them.
Touch is the primary input for all our professional devices and it looks like they will be a significant percentage of our device offering. Handling this is fairly easy since the browser engine translate the touch event into a mouse click which can be handled by using the onclick event handler as shown in the following example:
1: <html>
2: <head>
3: <script type="text/javascript" src="js/ImageSearch.js"></script>
4: </head>
5: <body>
6: <div id="SearchBox">
7: <input id="SearchQuery"/>
8: <img src="images/search.png" class="searchIcon" onclick="doSearch();" />
9: </div>
10: </body>
11: </html>
It is important to note that, since there is no “mouse” for widgets most of the other mouse related events like onmouseover, onmousemove, etc will not be triggered in a reliable enough way to use them.
I been making special emphasis to the fact that Widgets work seamless across all Windows Phones so, we need to ensure that the can be used correctly when the user interacts with it using the directional path.
It is important to note that, unlike IE6, a The widget framework will respond to a D-Pad input event by moving the focus to the closed actionable element in the direction of the user click. This behavior is similar to the old pocketIE and among friends we call it “Link to Link navigation”.
An actionable element is defined as any DOM element that can receive focus (Like a form field) or an element that implements its onclick event handler. When an actionable element gain focus the onfocus even is triggered, the same way, the focus is moved away from the element the onblur event is triggered. Now we can easily use those events to show the user where the focus is since the Widget Framework does not automatically highlights the focused element. We do this because we don’t want to inhibit the creativity of the widget creator to design his/her own focused highlight strategy.
The only “little” extra detail is that all elements that can gain focus need to have the tabindex property defined (the value is not important). This is easily forgotten but if not set, the focus and blur events will not trigger,
<html>
<head>
<script type="text/javascript">
1:
2: function OnFocus(element) {
3: element.style.backgroundColor = "red";
4: }
5:
6: function OnBlur(element) {
7: element.style.backgroundColor = "white";
8: }
</script></head>
<body>
<div onfocus="OnFocus(document.getElementById('one'))"
onblur="OnBlur(document.getElementById('one'))"
onclick="alert(1)"
tabindex=1>
<p id="one" style="font-size:medium:">1</p>
</div>
<div onfocus="OnFocus(document.getElementById('two'))"
onblur="OnBlur(document.getElementById('two'))"
onclick="alert(2)"
tabindex=2>
<p id="two" style="font-size:medium;">2</p>
</div>
</body>
</html>
In this example, we created two divs that can receive the input focus, you can move from one to the other using the D-Pad, the element that receives focus changes the color of its background to red.
Writing Windows Mobile applications is now as easy as writing a web page, and, by following some best practices your widget can be as functional and attractive as any other native application on the platform.
This is the end of this blog series and since Windows Phones are now available on many countries, you should go get one and write many cool widgets for it. Don’t forget to share the results with the world by uploading them to the marketplace!
Until next time
Jorge Peraza
#2 The keys for a great user experience
#3 Performance and battery life
#5 Touch and D-Pad inputs, oh joy!
In the last post Windows 7 Trigger Start Services – Part 1: Introduction, we introduced Windows7 Trigger Services as a great way to optimize your services to have better performance and improved security. In this post you will learn how to convert a standard automatic-start service to a trigger-start service that starts up only when a certain event occurs in the system. We’ll use a WPF application (obviously managed code) that registers and monitors a service (also implemented using .NET). To bridge between the .NET world and the native Win32 APIs that we saw in the previous post, we use a C++/CLI interoperability layer.
This sample application has 3 parts:
The following image illustrates the solution structure.
Let’s start by reviewing the .NET Service code implementation. This is a simple Windows service written in C#. The purpose of this service is to copy pictures automatically to your local hard-drive- “c:\FromUSB” from the USB storage device that is plugged into your computer.
The service implementation can be found at USBService.cs. This class inherits the ServiceBase base class and overrides the OnStart and OnStop methods. This class has a DoWork method that actually does all the copying of images from the USB disk to your local drive. The DoWork method writes to a log file that we will be monitoring.
The real interesting part of the service implementation is the OnStart method. This method is called once the service is started. Notice that the first line of code checks whether the service is configured as a trigger start service. If the “if” statement returns false, we create a new instance of a timer and have it poll every 5 seconds. Before Windows7, this was the only way to implement such a service, that is, by regularly polling the system to check for a USB device. Therefore, the service needs to run 24×7 to poll the system. This is highly wasteful of resources and keeps the system from transitioning to a low-power state, increases the application attack surface, among other negative things.
But, with Windows7, you can configure such a service with a USB device arrival trigger. This means that the service will not run until a USB device arrives, specifically a USB generic disk device. We’ll get to that part of the solution in a second, but for now, if you look at the OnStart method, you will notice that we check whether the service is configured as a trigger start service; if it is, we simply call the DoWork method on another thread, as shown by the following code snippet. This should work just fine because the service is NOT running, and will start to run only when the trigger happens. And then it will not default to the timer, but rather use the thread pool to queue the work.
protected override void OnStart(string[] args) { if (ServiceControl.IsServiceTriggerStart(ServiceName)) { ThreadPool.QueueUserWorkItem(_ => DoWork()); } else { _timer = new Timer(_ => DoWork()); _timer.Change(0, 5000); } }
The ServiceControl namespace contains the C++/CLI interop layer. This layer uses C++/CLI as the binding element between the native API and the WPF application. The main ServiceControlInterop.cpp file contains all the functionality that we need and that is used by the WPF application. For example using the controller application we can use AddService(…) or RemoveService(…) to add or remove a service respectively. We can also configure the service as a trigger start service for either a USB device arrival or first available IP address by using SetServiceTriggerStartOnUSBArrival or SetServiceTriggerStartOnIPAddressArrival respectively. Reviewing both function implementations reveals that basically both are following identical paths. They:
All this was explained in detail in the last post (Windows7 Trigger Start Services – Part 1: Introduction
You can download the code sample for this application. Note that you will have to run Visual Studio as administrator (see image below) because you will need to register, start, and stop services. . You will also need to Windows 7 SDK to compile the C++ part of the solution.
When compiling and running the default solution (the WPF application) you will see the following image.
This is the main WPF controller application. From here, you can create the service by clicking the Create Manual button.
Next, open the Services Window by typing “Services” in the Start Menu search box. You should see the Service window. Locate the USBCopyService; it should appear as in the following image.
Click the Run button and then the Refresh button in the Services window, or just press F5. You will not notice a great deal of change, but the USBCopyService changed from Manual to Started, as shown in the following image.
A second look at the actual application reveals the service activity in the log file. As you can see in the following image, the services awaken every 5 seconds and poll the system, looking for USB devices:
Click the Stop button to stop the service and then click the Delete Service to delete it. Now click the Trigger Start button to register and configure the service as a trigger start service that is triggered once a USB Generic disk arrives. If you check the Service window, you will see the USBCopyService listed as “manual” where in reality it is configured as triggered start service (there is just no graphical representation of that).
If you plug in a USB disk with a “ToCopy” folder the service will kick into action and copy the files to c:\FromUSB. Not the best implementation, but hey, it is only a demo. The following image shows a single line in the log file because the service actually ran only once; it executed the DoWork method and then quit. It didn’t run and poll the system every 5 seconds and didn’t waste resources or become a security liability.
To conclude
Developing a service with Windows 7 trigger start service in mind might be a little more difficult than a regular “auto-run” service that just runs in idle from boot to shutdown. But in practice, all it takes is only a few lines of code, no more. And these few lines of code can have a very big affect in terms of resource consumption and security. So the next time you build a new Windows Service, try to incorporate triggers.
You can learn about Windows 7 using the Windows 7 Training Kit for Developers or by viewing Windows 7 videos on Channel 9.
You can also get hands-on experience for Windows 7 Trigger Start Services using the Windows 7 Online training that is part of the Channel 9 Learning Center

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 