get text from any window Results

Page 1 of 12.
Results 1...20 of 228

Sponsored Links:

Not sure if this is entirely a Win 8 problem but ever since I installed it I have 3 network printers 2 x Kyocera and 1 x Epson. The Kyocera now do not allow me to print from MS office. All drivers are saying up to date and no errors. I have uninstalled and reinstalled both printers.

When I print from Word or Excel I get an error message like this

PCL XL error

Subsystem: TEXT
Error: IllegalGlobalTrueTypeSegment
Operator: ReadFontHeader
Position: 24

If I print a table or anything with a border it will just print a blank table but no text

I can print web pages and PDFs perfectly fine.

Hello, I'm helping my mom out with this one. She's got an Acer Aspire 5733z-445
Intel PentiumP6100
3 GB DDR3 Memory
TOSHIBA MK3259GSXP [Hard drive] (320.07 GB)
Windows 7 Home Premium (x64) Service Pack 1 (build 7601)

On boot, it takes anywhere from 15-20 minutes for the computer to get to a state where you can try to click on a program and open it.

To clarify a little....

Click the power button - about 30 seconds until the swirling Windows logo.
From the windows logo until the user login image is displayed - up to 8 minutes.
After clicking the user login image (we didn't set a password) - up to 6 or 7 minutes.
The computer looks ready to use, but if you try to click the start button, it won't display the start menu. If you try to click the IE shortcut....little spinning aero circle, but IE doesn't launch.
Periodically, during this waiting period, when you hover the mouse over the bottom toolbar - spinning aero circle again. After at least 5 minutes, all of the programs you clicked/ran start to load all at once and it's fast. Once you get to this point, the computer runs like a champ!

I have a log from Hijack This:
Logfile of Trend Micro HijackThis v2.0.4
Scan saved at 11:37:26 AM, on 6/7/2012
Platform: Windows 7 SP1 (WinNT 6.00.3505)
MSIE: Internet Explorer v9.00 (9.00.8112.16421)
Boot mode: Normal
Running processes:
C:Program Files (x86)EgisTec MyWinLockerSuitex86SuiteTray.exe
C:Program Files (x86)Internet Exploreriexplore.exe
C:Program Files (x86)Internet Exploreriexplore.exe
C:Program Files (x86)Internet Exploreriexplore.exe
C:Program Files (x86)Internet Exploreriexplore.exe
C:Program Files (x86)BelarcAdvisorBelarcAdvisor.exe
C:Program Files (x86)Internet Exploreriexplore.exe
C:Program Files (x86)Trend MicroHiJackThisHiJackThis.exe
R1 - HKCUSoftwareMicrosoftInternet ExplorerMain,Default_Page_URL = Acer
R1 - HKCUSoftwareMicrosoftInternet ExplorerMain,Search Page =
R0 - HKCUSoftwareMicrosoftInternet ExplorerMain,Start Page =
Sign In
R1 - HKLMSoftwareMicrosoftInternet ExplorerMain,Default_Page_URL = Acer
R1 - HKLMSoftwareMicrosoftInternet ExplorerMain,Default_Search_URL =
R1 - HKLMSoftwareMicrosoftInternet ExplorerMain,Search Page =
R0 - HKLMSoftwareMicrosoftInternet ExplorerMain,Start Page = Acer
R0 - HKLMSoftwareMicrosoftInternet ExplorerSearch,SearchAssistant =
R0 - HKLMSoftwareMicrosoftInternet ExplorerSearch,CustomizeSearch =
R0 - HKLMSoftwareMicrosoftInternet ExplorerMain,Local Page = C:WindowsSysWOW64blank.htm
R0 - HKCUSoftwareMicrosoftInternet ExplorerToolbar,LinksFolderName =
F2 - REG:system.ini: UserInit=userinit.exe
O2 - BHO: (no name) - {02478D38-C3F9-4efb-9B51-7695ECA05670} - (no file)
O2 - BHO: AcroIEHelperStub - {18DF081C-E8AD-4283-A596-FA578C2EBDC3} - C:Program Files
(x86)Common FilesAdobeAcrobatActiveXAcroIEHelperShim.dll
O2 - BHO: Windows Live ID Sign-in Helper - {9030D464-4C02-4ABF-8ECC-5164760863C6} - C:Program
Files (x86)Common FilesMicrosoft SharedWindows LiveWindowsLiveLogin.dll
O2 - BHO: URLRedirectionBHO - {B4F3A835-0E21-4959-BA22-42B3008E02FF} - C:
O4 - HKLM..Run: [SuiteTray] "C:Program Files (x86)EgisTec MyWinLockerSuite
O4 - HKCU..Run: [EPSON Stylus CX6000 Series] C:Windowssystem32spoolDRIVERS
x643E_FATIBIA.EXE /FU "C:WindowsTEMPE_S92C2.tmp" /EF "HKCU"
O4 - HKUSS-1-5-19..Run: [Sidebar] %ProgramFiles%Windows SidebarSidebar.exe /autoRun (User
O4 - HKUSS-1-5-19..RunOnce: [mctadmin] C:WindowsSystem32mctadmin.exe (User 'LOCAL
O4 - HKUSS-1-5-20..Run: [Sidebar] %ProgramFiles%Windows SidebarSidebar.exe /autoRun (User
O4 - HKUSS-1-5-20..RunOnce: [mctadmin] C:WindowsSystem32mctadmin.exe (User 'NETWORK
O4 - HKUSS-1-5-18..RunOnce: [IsMyWinLockerReboot] msiexec.exe /qn /x{voidguid} (User
O4 - HKUS.DEFAULT..RunOnce: [IsMyWinLockerReboot] msiexec.exe /qn /x{voidguid} (User
'Default user')
O8 - Extra context menu item: E&xport to Microsoft Excel - res://C:
O8 - Extra context menu item: Se&nd to OneNote - res://C:
O9 - Extra button: @C:Program Files (x86)Windows LiveWriter
WindowsLiveWriterShortcuts.dll,-1004 - {219C3416-8CB2-491a-A3C7-D9FCDDC9D600} - C:Program
Files (x86)Windows LiveWriterWriterBrowserExtension.dll
O9 - Extra 'Tools' menuitem: @C:Program Files (x86)Windows LiveWriter
WindowsLiveWriterShortcuts.dll,-1003 - {219C3416-8CB2-491a-A3C7-D9FCDDC9D600} - C:Program
Files (x86)Windows LiveWriterWriterBrowserExtension.dll
O9 - Extra button: Send to OneNote - {2670000A-7350-4f3c-8081-5663EE0C6C49} - C:Program Files
(x86)Microsoft OfficeOffice14ONBttnIE.dll
O9 - Extra 'Tools' menuitem: Se&nd to OneNote - {2670000A-7350-4f3c-8081-5663EE0C6C49} - C:
Program Files (x86)Microsoft OfficeOffice14ONBttnIE.dll
O9 - Extra button: OneNote Lin&ked Notes - {789FE86F-6FC4-46A1-9849-EDE0DB0C95CA} - C:Program
Files (x86)Microsoft OfficeOffice14ONBttnIELinkedNotes.dll
O9 - Extra 'Tools' menuitem: OneNote Lin&ked Notes - {789FE86F-6FC4-46A1-9849-EDE0DB0C95CA} -
C:Program Files (x86)Microsoft OfficeOffice14ONBttnIELinkedNotes.dll
O10 - Unknown file in Winsock LSP: c:program files (x86)common filesmicrosoft sharedwindows
O10 - Unknown file in Winsock LSP: c:program files (x86)common filesmicrosoft sharedwindows
O11 - Options group: [ACCELERATED_GRAPHICS] Accelerated graphics
O16 - DPF: {82774781-8F4E-11D1-AB1C-0000F8773BF0} (DLC Class) -
O18 - Protocol: wlpg - {E43EF6CD-A37A-4A9B-9E6F-83F89B8E6324} - C:Program Files (x86)Windows
LivePhoto GalleryAlbumDownloadProtocolHandler.dll
O18 - Filter hijack: text/xml - {807573E5-5146-11D5-A672-00B0D022E945} - C:Program Files
(x86)Common FilesMicrosoft SharedOFFICE14MSOXMLMF.DLL
O23 - Service: @%SystemRoot%system32Alg.exe,-112 (ALG) - Unknown owner - C:Windows
System32alg.exe (file missing)
O23 - Service: Dritek WMI Service (DsiWMIService) - Dritek System Inc. - C:Program Files
(x86)Launch Managerdsiwmis.exe
O23 - Service: @%SystemRoot%system32efssvc.dll,-100 (EFS) - Unknown owner - C:Windows
System32lsass.exe (file missing)
O23 - Service: Acer ePower Service (ePowerSvc) - Acer Incorporated - C:Program FilesAcerAcer
ePower ManagementePowerSvc.exe
O23 - Service: FLEXnet Licensing Service - Acresso Software Inc. - C:Program Files
(x86)Common FilesMacrovision SharedFLEXnet PublisherFNPLicensingService.exe
O23 - Service: GREGService - Acer Incorporated - C:Program Files (x86)AcerRegistration
O23 - Service: Intel(R) Rapid Storage Technology (IAStorDataMgrSvc) - Intel Corporation - C:
Program Files (x86)IntelIntel(R) Rapid Storage TechnologyIAStorDataMgrSvc.exe
O23 - Service: @keyiso.dll,-100 (KeyIso) - Unknown owner - C:Windowssystem32lsass.exe (file
O23 - Service: Live Updater Service - Acer Incorporated - C:Program FilesAcerAcer Updater
O23 - Service: Intel(R) Management and Security Application Local Management Service (LMS) -
Intel Corporation - C:Program Files (x86)IntelIntel(R) Management Engine ComponentsLMS
O23 - Service: @comres.dll,-2797 (MSDTC) - Unknown owner - C:WindowsSystem32msdtc.exe (file
O23 - Service: @%SystemRoot%System32netlogon.dll,-102 (Netlogon) - Unknown owner - C:
Windowssystem32lsass.exe (file missing)
O23 - Service: NTI IScheduleSvc - NTI Corporation - C:Program Files (x86)NTIAcer Backup
O23 - Service: @%systemroot%system32psbase.dll,-300 (ProtectedStorage) - Unknown owner - C:
Windowssystem32lsass.exe (file missing)
O23 - Service: @%systemroot%system32Locator.exe,-2 (RpcLocator) - Unknown owner - C:Windows
system32locator.exe (file missing)
O23 - Service: @%SystemRoot%system32samsrv.dll,-1 (SamSs) - Unknown owner - C:Windows
system32lsass.exe (file missing)
O23 - Service: @%SystemRoot%system32snmptrap.exe,-3 (SNMPTRAP) - Unknown owner - C:Windows
System32snmptrap.exe (file missing)
O23 - Service: @%systemroot%system32spoolsv.exe,-1 (Spooler) - Unknown owner - C:Windows
System32spoolsv.exe (file missing)
O23 - Service: @%SystemRoot%system32sppsvc.exe,-101 (sppsvc) - Unknown owner - C:Windows
system32sppsvc.exe (file missing)
O23 - Service: @%SystemRoot%system32ui0detect.exe,-101 (UI0Detect) - Unknown owner - C:
Windowssystem32UI0Detect.exe (file missing)
O23 - Service: Intel(R) Management & Security Application User Notification Service (UNS) -
Intel Corporation - C:Program Files (x86)IntelIntel(R) Management Engine ComponentsUNS
O23 - Service: @%SystemRoot%system32vaultsvc.dll,-1003 (VaultSvc) - Unknown owner - C:
Windowssystem32lsass.exe (file missing)
O23 - Service: @%SystemRoot%system32vds.exe,-100 (vds) - Unknown owner - C:Windows
System32vds.exe (file missing)
O23 - Service: @%systemroot%system32vssvc.exe,-102 (VSS) - Unknown owner - C:Windows
system32vssvc.exe (file missing)
O23 - Service: @%SystemRoot%system32WatWatUX.exe,-601 (WatAdminSvc) - Unknown owner - C:
Windowssystem32WatWatAdminSvc.exe (file missing)
O23 - Service: @%systemroot%system32wbengine.exe,-104 (wbengine) - Unknown owner - C:
Windowssystem32wbengine.exe (file missing)
O23 - Service: @%Systemroot%system32wbemwmiapsrv.exe,-110 (wmiApSrv) - Unknown owner - C:
Windowssystem32wbemWmiApSrv.exe (file missing)
O23 - Service: @%PROGRAMFILES%Windows Media Playerwmpnetwk.exe,-101 (WMPNetworkSvc) - Unknown
owner - C:Program Files (x86)Windows Media Playerwmpnetwk.exe (file missing)
End of file - 9037 bytes

I also have a Boot Trace File. It's 106mb compressed, so I don't think I can upload it here.

Last evening, I ran CCleaner and I defragged as well.

No improvement on the boot time.

I'm willing and able to run any additional scans/tests, etc.

Thanks a lot.

- Jennifer


My windows 7 boots up but there is no text under any of my icons. None of the menus have any text so the task windows are distorted and so are any buttons (which are all text free). I can get to my command prompt and the text display is fine (presumably it uses a different font) . I suspect my windows display font has been corrupted. I ran sfc scannow and it agreed that some files were corrupted but could not mend them. I have two solutions in mind:

1. How can I reinstall the font from the command line prompt? OR

2. can I set up a new user profile from the command prompt (and see if it all works fine under a new profile)

If not, does anyone else have any other ideas?



With the release of Windows Phone 8, a few new developer API endpoints were made available that allow third-party applications to change the device lockscreen image. In this article, I am establishing the infrastructure and building a mobile application that provides the ability to choose from a number of dynamic image sets, from which images can be selected and then cycled as lockscreen wallpapers.
What do you need

You will need to download and install ASP.NET MVC3 to work on the web frontend and Windows Phone 8 SDK to work on the mobile applications. An Azure Mobile Services account will be necessary, and of course don’t forget to download and install the Azure Mobile Services client libraries. All three components are available at no additional charge.
NOTE: Without the Azure Mobile Services SDK installed on the development machine, the compilation process will fail for the Windows Phone application.
Setting up The Data Store

First we need to establish the general design of the application and organize the workflow. The application will provide two ways to assign the dynamic lockscreen:

With the help of custom image sets that are provided by the service;With the help of self-created image sets, aggregated from images provided by the service but ultimately managed by the end-user.
Let’s talk about the general data model. Every image belongs to a certain category and to keep track of each we need a table with two columns—category ID and category name. We also need another core table containing the image references themselves, with the following columns: image URL, descriptive name, and the category ID to which it belongs. The overall structure looks like this:

Now to the Windows Azure Management Portal and creating a new Mobile Service.

Once created, you need to specify database information, just like you would with a standard SQL Server database:

As the database is being created, you can easily integrate it with SQL Server Management Studio. You will need the server address, which may be obtained in the Azure Management Portal. To login, use the credentials that you set when creating the core database.
Create the two tables mentioned above, with the following column configuration:

ID - intName – varchar(100)

ID – intURL – varchar(500)Name – varchar(100)CategoryID – int
You can create these tables either in the SQL Server Management Studio or through the Azure Management Portal. However, you will need the Management Studio to create the column structure, as the Azure Management Portal does not offer this functionality right now.
By default, the id column will be created automatically. To add the Name column to the Categories table, run this query:

ALTER TABLE c4flockscreen.CategoriesADD Name VARCHAR(100)To add the missing columns to the Images table, simply execute this query:

ALTER TABLE c4flockscreen.ImagesADD URL VARCHAR(500),Name VARCHAR(100),CategoryID INTNow that the database is ready, we’ll proceed to working on the web layer, which will effectively be the administrative portal for the service.
Creating the Web Portal

There should be a way to easily manage images and constantly expand the collection of possible lockscreen wallpapers. One way to do this is create a basic management portal that can carry basic CRUD operations.
Start by creating an empty project:

If you are not yet aware of the Model-View-Controller (MVC) development pattern, here is a good read explaining the fundamentals.
Create a new controller in the Controllers folder, named HomeController. This will be the only controller created in this project. For now, add an ActionResult-based function that will return the main view:

using System.Web.Mvc;namespace Coding4Fun.Lockscreen.Web.Controllers{ public class HomeController : Controller { public ActionResult MainView() { return View(); } }}Having the controller without the proper views is pointless, so create a new view in Views/Home and name it MainView. For now, do not focus on the visual layout of the page, but rather on the functional aspect of the web frontend. If you run the application now, you will most likely get a 404 response. That is because the associated home view is by default not found. Open App_Start/RouteConfig.cs and make sure that the default view is set to MainView instead of Index.

routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home", action = "MainView", id = UrlParameter.Optional });The core is created and now if running the web application you will see a basic HTML page:

We now need to handle data from the Azure Mobile Services database. Out-of-the-box, there is no ASP.NET SDK available, but the database can be easily accessed through a REST API. But before that, we need to define the data models for the Categories and Images table. Begin by creating two classes in the Models folder:

public class Category{public int? id { get; set; }public string Name { get; set; }}Image.cs:

public class Image{public int? id { get; set; } public string URL { get; set; }public string Name { get; set; }public int CategoryID { get; set; }}Each of the properties is tied to the associated column in the database we created earlier. Notice that the ID values are nullable. This is introduced because the index will by default be automatically assigned. When new instances of Category or Image are created, I will not explicitly set the id property, so keeping it null instead of at a potential default value of 0 will ensure that it is properly set on the backend.
Let’s now create the connectivity engine that will allow us to query the content of the data store. For this purpose, I created a DataStore folder and a DataEngine class inside it. We will need a unique API key for each of our requests, so open the Azure Management Portal and obtain it from there:

In order to keep consistency between projects, and to be able to re-use the same Azure Mobile Services API key and core URL, I created an AuthConstants class in the context of the Coding4Fun.Lockscreen.Core project. It carries three static fields:

public static class AuthConstants{ public static string AmsApiKey = "YOUR_KEY_HERE"; public const string AmsUrl = ""; public const string AmsTableUrl = AmsUrl + "tables/";}Back in the ASP.NET project, the query operations are carried with the help of HttpClient initialized in the class constructor, which also includes the key used to authenticate the requests via the X-ZUMO-APPLICATION header:

private HttpClient client;public DataEngine(){ client = new HttpClient(); client.DefaultRequestHeaders.Add("X-ZUMO-APPLICATION", KEY); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); }This is the basic data harness. I also implemented two core methods in order to get all existing categories:

public IEnumerable GetAllCategories(){ var result = client.GetStringAsync(string.Concat(CORE_URL,"Categories")).Result; IEnumerable categories = JsonConvert.DeserializeObject(result); return categories; }And images:

public IEnumerable GetAllImages(){ var result = client.GetStringAsync(string.Concat(CORE_URL, "Images")).Result; IEnumerable images = JsonConvert.DeserializeObject(result); return images; }For each of these, a basic request is made with the table name appended to the base URL (represented by the CORE_URL constant). Since JSON.NET is now bundled with ASP.NET, I am able to easily deserialize the returned JSON data array to an IEnumerable. There is one problem, however, with the GetAllImages approach. It implies that even if I want to use LINQ to query the existing image collection, I have to first download the entire set locally.
Fortunately, the Azure Mobile Services REST API provides an endpoint with filtering, and that’s what I am using in GetCategoryById and GetImagesByCategoryId:

public Category GetCategoryById(int id){ string composite = string.Concat(CORE_URL, "Categories?$filter=(id%20eq%20", id.ToString(), ")"); var result = client.GetStringAsync(composite).Result; IEnumerable categories = JsonConvert.DeserializeObject(result); return categories.FirstOrDefault();}public IEnumerable GetImagesByCategoryId(int id){ string composite = string.Concat(CORE_URL, "Images?$filter=(CategoryID%20eq%20", id.ToString(), ")"); var result = client.GetStringAsync(composite).Result; IEnumerable images = JsonConvert.DeserializeObject(result); return images();}Notice the ?$filter= parameter, in which the conditional is URL encoded and is wrapped in parentheses. For the category query, I am checking the id value, and for the image I’m checking CategoryID.
In the Views/Home folder, create a new view and name it Images. It will be used to list existing images that are associated with one of the selected categories. You also need to adjust the controller code to handle the incoming data:

using Coding4Fun.Lockscreen.Web.DataStore;using System.Web.Mvc;namespace Coding4Fun.Lockscreen.Web.Controllers{ public class HomeController : Controller { DataEngine engine; public HomeController() { engine = new DataEngine(); } public ActionResult MainView() { var categories = engine.GetAllCategories(); return View(categories); } public ActionResult Images(int categoryId) { var images = engine.GetImagesByCategoryId(categoryId); if (images != null) { return View(images); } return View("MainView"); } }}For the main view, I am getting the list of categories and passing them as the bound model. For the Images view, the category ID is passed as an argument that will later enable the engine to return a list of all images that have CategoryID set to that value. In case the returned list is not null, the view is shown. Otherwise, the main view is the terminal point.
In its current state, I’ll be able to use the frontend to list existing categories and images, but not to add, remove, or update items. Adding a category and an image is a matter of modifying an HttpClient request, with the help of HttpRequestMessage. For example, here is how I can add a category through my DataEngine class:

public HttpStatusCode AddCategory(Category category){ var serializedObject = JsonConvert.SerializeObject(category, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); var request = new HttpRequestMessage(HttpMethod.Post, string.Concat(CORE_URL, "Categories")); request.Content = new StringContent(serializedObject, Encoding.UTF8, "application/json"); var response = client.SendAsync(request).Result; return response.StatusCode;}JSON.NET capabilities are used to serialize the object that needs to be inserted. The POST request is executed against the standard table URL, with the UTF8 encoded JSON string. Since the client is already carrying the basic authentication header, all that needs to be done is calling the SendAsync function.
Updating a category follows the same approach, though a PATCH method is used for the request and the URL contains the index of the category that needs to be updated:

public HttpStatusCode UpdateCategory(Category category){ var request = new HttpRequestMessage(new HttpMethod("PATCH"), string.Concat(CORE_URL, "Categories", "/",; var serializedObject = JsonConvert.SerializeObject(category); request.Content = new StringContent(serializedObject, Encoding.UTF8, "application/json"); var response = client.SendAsync(request).Result; return response.StatusCode;}To delete a category from the data store, one simply needs to pass a parameter to it that identifies the index of the category that needs to be removed:

public HttpStatusCode DeleteCategoryFromId(int categoryId){ var request = new HttpRequestMessage(HttpMethod.Delete, string.Concat(CORE_URL, "Categories", "/", categoryId)); var response = client.SendAsync(request).Result; return response.StatusCode;}For images, the same methods can be used, with the Images table passed as the name for the target in the composite URL. Let’s now get back to working on some of the views. A static category list is not fun, so let’s create a way to add new categories. Right click on the Views/Home folder and select Add View:

A great thing about the view creation process in Visual Studio is the fact that you are able to use a basic scaffold template for a strongly-typed view. In this case, I am associating it with a Category class and using the Create template. I now need to modify the controller code to process requests to AddCategory. I need to handle two types of requests, GET and POST, because the view will be displayed to both add an item and submit an item:

public ActionResult AddCategory(){ return View(); }[HttpPost]public ActionResult AddCategory(Category category){ if (ModelState.IsValid) { engine.AddCategory(category); return RedirectToAction("MainView"); } return View();}For a GET request, I am simply returning the view. For a POST view, I am adding the category that was defined by the bound model through the local DataEngine instance, after which the user is redirected to the main view. But we also need to add an ActionResult for the MainView to obtain the list of items that are currently in the Categories table:

public ActionResult MainView(){ var categories = engine.GetAllCategories(); return View(categories);}The DataEngine instance will return all categories in an IEnumerable form that are passed as the model for the main view. The layout of MainView.cshtml can be as simple as a table:

@{ ViewBag.Title = "Coding4Fun Dynamic Lockscreen"; }Coding4Fun Dynamic Lockscreen - Categories

ID Category Name @p.Name @Html.ActionLink("Images", "Images", new { categoryId = }) @Html.ActionLink("Edit", "EditCategory", new { categoryId = }) @Html.ActionLink("Delete", "DeleteCategory", new { categoryId = }) @Html.ActionLink("Add Category", "AddCategory")The ActionLink helper allows me to invoke a view and, if necessary, pass specific parameters to it (e.g., when I need to identify the category that needs to be deleted or edited). Some of the views listed here are not yet created, but I can easily use placeholder names in any case.
The ultimate result for the main page will look like this:

Notice that you are also able to add new categories now by clicking on the Add Category link on the bottom. This will redirect you to the AddCategory view that we created:

Let’s see how to implement the category editing in the web frontend. First of all, create a new view in Views/Home and name it EditCategory. Use the Edit scaffold template. Like AddCategory, EditCategory needs to be handled in two separate ways for GET and POST requests in the controller:

public ActionResult EditCategory(int categoryId){ Category category; category = engine.GetCategoryById(categoryId); if (category != null) return View(category); return View("MainView");}[HttpPost]public ActionResult EditCategory(Category category){ if (ModelState.IsValid) { engine.UpdateCategory(category); return RedirectToAction("MainView"); } return View();}For a GET request, we need to identify the category that needs to be added by its index, so we are using a categoryId argument passed to the view, which is later used by the DataEngine instance to retrieve the category from the data store. For a POST action, the implementation for UpdateCategory from above is used, where a PATCH request is run with the serialized object bound to the view.
For the Delete action, no additional view is necessary but the controller still needs a handler, so we can use a snippet like this:

public ActionResult DeleteCategory(int categoryId){ engine.DeleteCategoryFromId(categoryId); return RedirectToAction("MainView");}You can use the same approach to add, delete, and edit items in the list of images. For adding images, however, you might want to pass the category identifier. When images are listed after the category has been selected, it is necessary to provide a way to identify the category to which new entities should be added. To do this, we can. in the main controller. pass the category index to the view when the Images action is being triggered:

public ActionResult Images(int categoryId){ var images = engine.GetImagesByCategoryId(categoryId); if (images != null) { ViewData["CID"] = categoryId; return View(images); } return View("MainView");}Afterwards, the categoryId value can be obtained by using the CID key for ViewData inside the view itself.
Let’s now take a look at how images are represented for each category. I created a custom view to list all the images associated with the Images category. If you look above at the controller code, you will notice that I am passing the category ID, through which the image set query is executed, and the returned collection is set as the bound model:

public ActionResult Images(int categoryId){ var images = engine.GetImagesByCategoryId(categoryId); if (images != null) { ViewData["CID"] = categoryId; return View(images); } return View("MainView");}When an image needs to be added, call the AddImage view. In HomeController.cs, it carries implementations for both GET and POST requests:

public ActionResult AddImage(int categoryId){ Image image = new Image(); image.CategoryID = categoryId; return View(image); }[HttpPost]public ActionResult AddImage(HttpPostedFileBase file, Image image){ if (file != null && file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/Uploads"), image.CategoryID.ToString(), fileName); string dirPath = Path.GetDirectoryName(path); if (!Directory.Exists(dirPath)) Directory.CreateDirectory(dirPath); file.SaveAs(path); string applicationUrl = string.Format("{0}://{1}{2}", HttpContext.Request.Url.Scheme, HttpContext.Request.ServerVariables["HTTP_HOST"], (HttpContext.Request.ApplicationPath.Equals("/")) ? string.Empty : HttpContext.Request.ApplicationPath ); image.URL = Path.Combine(applicationUrl, "Uploads", image.CategoryID.ToString(), fileName); } if (ModelState.IsValid && image.URL != null) { engine.AddImage(image); return RedirectToAction("Images", new { categoryID = image.CategoryID }); } return View();}When a GET request is executed against the AddImage endpoint, I pass the category ID as the flag, signaling which category the image should be included in. When a POST request is executed, it can go two ways—either the user is passing an existing link to a hosted image or the user is uploading his own image to the local server. When an upload is inbound, HttpPostedFileBase carries the content that needs to be pushed to the server.
The upload component on the view itself is done by creating a form with a file input:

Or you could upload your own file:

@if (Model != null){ using (Html.BeginForm("AddImage", "Home", FormMethod.Post, new { enctype = "multipart/form-data", image = Model })) { @Html.HiddenFor(model => model.CategoryID); }}If there is no file selected, the system assumes that the user just decided to add an existing URL.
It’s important to mention that the upload workflow relies on the availability of the Upload folder. It is created by default when the project is deployed to the server, but you also need to make sure that the ASP.NET user on the machine where IIS is located has the appropriate write permission for the folder.
The Windows Phone 8 Application Foundation

Create a new Windows Phone 8 application and add a reference to Windows Azure Mobile Services Managed Client. It should be available in the Extensions section if you installed the Windows Azure Mobile Services SDK as I mentioned at the beginning of the article:

In App.xaml.cs you need to create an instance of MobileServiceClient that will be used as the central connection point to the database. Notice that I am using the predefined AMS and API KEY string constants:

public static MobileServiceClient MobileService =new MobileServiceClient(AuthConstants.AmsUrl, AuthConstants.AmsApiKey);The mobile application should also carry the data models for both the categories and images. That said, we can reorganize those a bit for a more convenient data binding layout. To ensure that we can reuse the classes from different application components, I am once again using the Coding4Fun.Lockscreen.Core project.
Create a new folder called Models and add a new class called Category:

using System.Collections.ObjectModel;namespace Coding4Fun.Lockscreen.Core.Models{ public class Category { public Category() { Images = new ObservableCollection(); } public int? id { get; set; } public string Name { get; set; } public ObservableCollection Images { get; set; } public override string ToString() { return Name; } }}We are still relying on a nullable index value, but now there is an ObservableCollection for images. The reason for using this specific collection type is because with an ObservableCollection, binding updates are performed automatically when new items are added or removed, therefore cutting the need to implement the notification mechanism.
The ToString function is overridden to simplify data extraction on binding. When a collection with categories will be hooked to a list, for example, I don’t have to create a converter or a property link.
For the Image model, create a new class called Image in the same Models folder:

namespace Coding4Fun.Lockscreen.Core.Models{ public class Image { public int? id { get; set; } public string URL { get; set; } public string Name { get; set; } public int CategoryID { get; set; } }}Application Workflow & Storage

Let’s talk about how image categories will be handled in the application. On application startup, the database is queried for the available categories and each of them is listed on the home screen. If the user taps on one of the categories, the database is queried for the images that are associated with the category index.
However, the user should also be able to create his own custom categories that will only be available in-app. Those categories can carry images from multiple other categories, if necessary, with the default reference set to the internal storage.
Since we are working with local storage, let’s create a helper class called LocalStorageHelper in the Coding4Fun.Lockscreen.Core project in the Storage folder. This class will carry basic read and write functions, allowing us to store data internally:

public static class LocalStorageHelper{ public async static void WriteData(string folderName, string fileName, byte[] content) { IStorageFolder rootFolder = ApplicationData.Current.LocalFolder; if (folderName != string.Empty) { rootFolder = await rootFolder.CreateFolderAsync(folderName, CreationCollisionOption.OpenIfExists); } IStorageFile file = await rootFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting); using (var s = await file.OpenStreamForWriteAsync()) { s.Write(content, 0, content.Length); } } public static async void ClearFolder(string folderName) { var folder = await ApplicationData.Current.LocalFolder.GetFolderAsync(folderName); if (folder != null) { foreach (IStorageFile file in await folder.GetFilesAsync()) { await file.DeleteAsync(); } } } public static async Task ReadData(string fileName) { byte[] data; StorageFolder folder = ApplicationData.Current.LocalFolder; StorageFile file = await folder.GetFileAsync(fileName); using (Stream s = await file.OpenStreamForReadAsync()) { data = new byte[s.Length]; await s.ReadAsync(data, 0, (int)s.Length); } return Encoding.UTF8.GetString(data, 0, data.Length); } }Notice that I am using the newly-introduced StorageFolder/StorageFile capabilities. If you worked with Windows Store application development, you are probably already familiar with them. Application.Current.LocalFolder gives me direct access to the local directory. which can be modified from within the application itself. It works in a manner similar to IsolatedStorageFile in Windows Phone 7, but with more flexibility when it comes to creating new folders and files and well doing file sweeps.
As I mentioned above, there will be internal data stored as XML. For this purpose, I need a class that carries serialization and deserialization routines, and I can simplify this task by using the Coding4Fun Toolkit Serialize.Save and Serialize.Open capabilities. Calls to these functions allow flexible serialization, where by default the static class is not aware of the serialization type, but is instead able to dynamically infer it from the incoming data. Once the byte layout is obtained for the content, I use the LocalStorageHelper class to write it to a file.
As there are multiple UI items that need to be bound to collections and object instances, I have a CentralBindingPoint class in my main project that is my main view model (it implements INotifyPropertyChanged). It implements the singleton pattern, so that the main instance is created on initialization and is subsequently re-used as necessary:

using Coding4Fun.Lockscreen.Core.Models;using System;using System.Collections.ObjectModel;using System.ComponentModel;namespace Coding4Fun.Lockscreen.Mobile{ public class CentralBindingPoint : INotifyPropertyChanged { static CentralBindingPoint instance = null; static readonly object padlock = new object(); public CentralBindingPoint() { Categories = new ObservableCollection(); CustomCategories = new ObservableCollection(); } public static CentralBindingPoint Instance { get { lock (padlock) { if (instance == null) { instance = new CentralBindingPoint(); } return instance; } } } private ObservableCollection _categories; public ObservableCollection Categories { get { return _categories; } set { if (_categories != value) { _categories = value; NotifyPropertyChanged("Categories"); } } } private ObservableCollection _customCategories; public ObservableCollection CustomCategories { get { return _customCategories; } set { if (_customCategories != value) { _customCategories = value; NotifyPropertyChanged("CustomCategories"); } } } private Category _currentCategory; public Category CurrentCategory { get { return _currentCategory; } set { if (_currentCategory != value) { _currentCategory = value; NotifyPropertyChanged("CurrentCategory"); } } } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { System.Windows.Deployment.Current.Dispatcher.BeginInvoke( () => { PropertyChanged(this, new PropertyChangedEventArgs(info)); }); } } }}On the main page, I create a Pivot-based layout to have an easy way to transition between the web collections (categories) and the local ones:

For each of the collection types, there is a ListBox with a custom DataTemplate assigned for each item. The items are obtained from the Categories collection for web sets and the CustomCategories collection for local sets, both in the CentralBindingPoint view model.
The categories are loaded with the help of the DataEngine class that I added in the Data folder in the main application project. It is a wrapper for the Azure Mobile Services data operations, allowing me to aggregate the list of categories and images, given that I know the category index:

public class DataEngine{ async public Task GetCategoryList() { IMobileServiceTable table = App.MobileService.GetTable(); List data = await table.ToListAsync(); return data; } async public Task GetImagesByCategoryId(int categoryId) { IMobileServiceTable table = App.MobileService.GetTable(); List data = await table.Where(x => x.CategoryID == categoryId).ToListAsync(); return data; }}When the main page loads, I use the local DataEngine instance to call GetCategoryList and obtain a List collection that is subsequently transformed into an ObservableCollection through one of the default constructors:

async void MainPage_Loaded(object sender, RoutedEventArgs e){ CentralBindingPoint.Instance.Categories = new ObservableCollection(await dataEngine.GetCategoryList()); }When a category is selected in the web sets list, I assign the selected item as the current category and navigate to the ImageSetPage.xaml page that will display the associated images:

async void ListBox_SelectionChanged_1(object sender, System.Windows.Controls.SelectionChangedEventArgs e){ var box = (ListBox)sender; if (box.SelectedItem != null) { Category selectedCategory = (Category)box.SelectedItem; selectedCategory.Images = new ObservableCollection (await dataEngine.GetImagesByCategoryId((int); CentralBindingPoint.Instance.CurrentCategory = selectedCategory; NavigationService.Navigate(new Uri("/ImageSetPage.xaml", UriKind.Relative)); }}Notice that the images are not loaded at the same time as the categories; rather, they’re loaded only when a category has been selected, hence the GetImagesByCategoryId call on selection.
For a custom set, the procedure is pretty much the same, the only difference being the fact that image references are already present since those were deserialized from the local storage:

private void lstCustomSets_SelectionChanged_1(object sender, SelectionChangedEventArgs e){ var box = (ListBox)sender; if (box.SelectedItem != null) { Category selectedCategory = (Category)box.SelectedItem; CentralBindingPoint.Instance.CurrentCategory = selectedCategory; NavigationService.Navigate(new Uri("/ImageSetPage.xaml", UriKind.Relative)); }}In ImageSetPage.xaml I use a ListBox with a WrapPanel in the ItemsPanelTemplate, which ensures that I can have only two images in a row and any additions will be wrapped, with a fixed row length. You can get that control from the WPToolkit (formerly known as Silverlight Toolkit for Windows Phone, available on NuGet).

Here is the basic XAML layout:

Now that we have a basic skeleton for the incoming data, let’s see how it can be transformed into a live lockscreen, on which wallpapers can be cycled. In the ImageSetPage.xaml page I have a button in the application bar that allows me to set the current category as the source for the switching wallpapers.
Currently, each Image instance carries an image URL and the images can be located anywhere outside the application. This can cause problems with the wallpaper setting process, however, since the API only allows local images to be set as background. This means that I need to download each image to the local application folder:

private async void btnSetStack_Click_1(object sender, EventArgs e){ var isProvider = Windows.Phone.System.UserProfile.LockScreenManager.IsProvidedByCurrentApplication; if (!isProvider) { var op = await Windows.Phone.System.UserProfile.LockScreenManager.RequestAccessAsync(); isProvider = op == Windows.Phone.System.UserProfile.LockScreenRequestResult.Granted; } if (isProvider) { downloadableItems = new List(); fileItems = new List(); foreach (var image in CentralBindingPoint.Instance.CurrentCategory.Images) { downloadableItems.Add(image.URL); fileItems.Add(Path.GetFileName(image.URL)); } SerializationHelper.SerializeToFile(fileItems, "imagestack.xml"); LocalStorageHelper.ClearFolder("CurrentSet"); DownloadImages(); grdDownloading.Visibility = System.Windows.Visibility.Visible; }}First of all, I need to make sure that the application can set a lockscreen background and is registered in the OS as a provider. The application needs to state its intent to be able to access the wallpaper by adding this snippet to the WMAppManifest.xml, right after the Tokens node:

downloadableItems is a collection that represents the download queue. fileItems contains the local file names for each image that is about to be downloaded and will be serialized and used in the background agent to iterate through the category files. Whenever the download process is started, an overlay becomes visible to notify the user that the image acquisition process is in progress.
Also, notice the fact that I am calling LocalStorageHelper.ClearFolder, passing the name of the folder as the first argument. I do not want to keep images for sets that are not active, therefore when a new set is selected, the currently stored images are deleted from the CurrentSet folder and replaced by the ones that are about to be downloaded. The implementation of the ClearFolder function looks like this:

public static void ClearFolder(string folderName{ if (store.DirectoryExists(folderName)) { foreach (string file in store.GetFileNames(folderName + "*.*")) { store.DeleteFile(folderName + "" + file); } }}Once the file names are stored in imagestack.xml, the image contents are downloaded via DownloadImages:

void DownloadImages(){ WebClient client = new WebClient(); string fileName = Path.GetFileName(downloadableItems.First()); client.OpenReadAsync(new Uri(downloadableItems.First())); client.OpenReadCompleted += (sender, args) => { Debug.WriteLine("Downloaded " + fileName); LocalStorageHelper.WriteData("CurrentSet", fileName, StreamToByteArray(args.Result)); downloadableItems.Remove(downloadableItems.First()); if (downloadableItems.Count != 0) DownloadImages(); else { grdDownloading.Visibility = System.Windows.Visibility.Collapsed; LocalStorageHelper.CycleThroughImages(); //ScheduledActionService.LaunchForTest("LockscreenChanger", TimeSpan.FromSeconds(5)); } };}Here you can see that I am making a call to LocalStorageHelper.CycleThroughImages—a function that reads the file that contains the current set and picks the first image, assigning it to be the current wallpaper and then pushing it to the back of the list, making the succeeding image the next in line for the wallpaper:

public static void CycleThroughImages(){ List images = Coding4Fun.Phone.Storage.Serialize.Open("imagestack.xml"); if (images != null) { string tempImage = images.First(); Uri currentImageUri = new Uri("ms-appdata:///Local/CurrentSet/" + tempImage, UriKind.Absolute); Windows.Phone.System.UserProfile.LockScreen.SetImageUri(currentImageUri); images.Remove(tempImage); images.Add(tempImage); Coding4Fun.Phone.Storage.Serialize.Save("imagestack.xml", images); }}You might be wondering why I’m not using Queue for this. After all, Enqueue and Dequeue would make things a bit easier. The problem is that a Queue instance cannot be directly serialized without being transformed to a flat list. Therefore, I am sticking to minimal resource processing by manipulating a List instance instead.
The recursive image download method runs until the download queue is emptied, after which the overlay is hidden.
Background Agent

At this point, we have the images locally stored and listed in an XML file. If the user accepted the system prompt, the application has also been registered as a lockscreen background provider, but there is not yet a single piece of code that would actually set the wallpaper cycle. For that, create a new Background Agent project in your solution. I named mine Coding4Fun.Lockscreen.Agent.
The OnInvoke function in ScheduledAgent.cs is executed at 30-minute intervals. This is a time limit defined by the PeriodicTask background agent type that we’ll be using here. You need to add the following snippet to it:

protected override void OnInvoke(ScheduledTask task){ var isProvider = Windows.Phone.System.UserProfile.LockScreenManager.IsProvidedByCurrentApplication; if (isProvider) { LocalStorageHelper.CycleThroughImages(); } NotifyComplete();}As with the download snippet, I am ensuring that before I attempt to change the wallpaper the application is a registered provider. Otherwise, an exception will be thrown and the background agent will crash. The bad thing about periodic tasks crashing is the fact that once two consecutive crashes occur, the task is removed from the task queue and the backgrounds will not be changed.
If the application is a provider, call CycleThroughImages to set the new background and push the old one to the end of the list. To make sure that a different image is selected each time, the original deserialized list is modified, where the first image now becomes last, switching the stack up, after which it is serialized back into imagestack.xml.
The background agent needs to be registered in the WMAppManifest.xml. Inside the Tasks node, add an ExtendedTask:

Also, when the application starts, you need to ensure that the task is registered, and register it if it isn’t yet. Use the Application_Launching event handler for this task:

private void Application_Launching(object sender, LaunchingEventArgs e){ string taskName = "LockscreenChanger"; var oldTask = ScheduledActionService.Find(taskName) as PeriodicTask; if (oldTask != null) { ScheduledActionService.Remove(taskName); } PeriodicTask task = new PeriodicTask(taskName); task.Description = "Change lockscreen wallpaper."; ScheduledActionService.Add(task); LoadCustomCategories(); }Here, LoadCustomCategories will deserialize the existing custom categories, so that those can be shown in the main page after the application starts:

private async void LoadCustomCategories(){ try { CentralBindingPoint.Instance.CustomCategories = (ObservableCollection)await SerializationHelper.DeserializeFromFile( typeof(ObservableCollection), "customcat.xml"); } catch { Debug.WriteLine("No customcat.xml - no registered custom categories."); }}Now the backgrounds will automatically change based on the web sets that you will activate every 30 minutes.
Working with Custom Categories

Let’s create some custom sets. To manage user input, I leverage the CustomMessageBox control available in the Windows Phone Toolkit. It has enough flexibility to let me choose between adding a TextBox control, to have the user create the new category or use a ListPicker to show the available custom categories in a consistent UI layout.
When the user decides to create a new category, he taps the plus button in the application bar on the main page:

The implementation for the call is simple:

private void btnSetStack_Click_1(object sender, EventArgs e){ TextBox textBox = new TextBox(); CustomMessageBox box = new CustomMessageBox() { Caption = "Add Custom Category", Message = "Enter a unique name for the new category.", LeftButtonContent = "ok", RightButtonContent = "cancel", Content = textBox }; box.Dismissed += (s, boxEventArgs) => { if (boxEventArgs.Result == CustomMessageBoxResult.LeftButton) { if (!string.IsNullOrWhiteSpace(textBox.Text)) { var categoryCheck = (from c in CentralBindingPoint.Instance.CustomCategories where c.Name == textBox.Text select c).FirstOrDefault(); if (categoryCheck == null) { Category category = new Category() { Name = textBox.Text }; CentralBindingPoint.Instance.CustomCategories.Add(category); Coding4Fun.Toolkit.Storage.Serialize.Save( "customcat.xml", CentralBindingPoint.Instance.CustomCategories); } else { MessageBox.Show("Add Custom Category", "This category name was already taken!", MessageBoxButton.OK); } } } }; box.Show(); }When the message box is dismissed, I check which button is pressed to take the appropriate course of action. Let’s assume that the user decided to add the new category—we need to check and make sure that there isn’t already a category with the same name in the existing collection. If there isn’t one, a new Category instance is created, added to the collection in the main view model, and serialized to customcat.xml.
The user also needs to be able to add images from any category to another custom category. To do this, I decided to give the user the option to carry across the image name and URL when he taps on an image in the ImageSetPage.xaml.
Remember, if there are no current custom categories registered, the user should be informed that he should create some first, so the alternative route for the dialog with custom category name selection should be a message box alert:

Here is the snippet that does this:

private void lstImages_SelectionChanged_1(object sender, SelectionChangedEventArgs e){ if (CentralBindingPoint.Instance.CustomCategories.Count > 0) { if (lstImages.SelectedItem != null) { ListPicker picker = new ListPicker() { Header = "Custom category name:", ItemsSource = CentralBindingPoint.Instance.CustomCategories, Margin = new Thickness(12, 42, 24, 18) }; CustomMessageBox messageBox = new CustomMessageBox() { Caption = "Add To Custom Category", Message = "Select a registered custom category to add this image to.", Content = picker, LeftButtonContent = "ok", RightButtonContent = "cancel" }; messageBox.Dismissing += (s, boxEventArgs) => { if (picker.ListPickerMode == ListPickerMode.Expanded) { boxEventArgs.Cancel = true; } }; messageBox.Dismissed += (s2, e2) => { switch (e2.Result) { case CustomMessageBoxResult.LeftButton: { if (picker.SelectedItem != null) { Category category = (from c in CentralBindingPoint.Instance.CustomCategories where c.Name == picker.SelectedItem.ToString() select c).FirstOrDefault(); if (category != null) { category.Images.Add((Coding4Fun.Lockscreen.Core.Models.Image)lstImages.SelectedItem); Coding4Fun.Toolkit.Storage.Serialize.Save( "customcat.xml", CentralBindingPoint.Instance.CustomCategories); } lstImages.SelectedItem = null; lstImages.IsEnabled = true; } break; } case CustomMessageBoxResult.RightButton: case CustomMessageBoxResult.None: { lstImages.SelectedItem = null; break; } } }; messageBox.Show(); } } else { MessageBox.Show("Add To Custom Category", "Tapping on an image will prompt you to add it to a custom category" + Environment.NewLine + "Seems like you don't have any custom categories yet.", MessageBoxButton.OK); }}Once the category is selected from the list, the image is added to the Images collection in the Category instance, and the category list is serialized to preserve the changes. There are no restrictions as to which categories can fetch images to other categories—we can even select images from custom categories and include them in other categories. The image can be added multiple times to the same category as well.

With Azure Mobile Services and a managed SDK available for Windows Phone, as well as an open REST API, it is fairly easy to build connected applications on multiple platforms at once without major logic and code base modifications.


I have a Small Business Server 2000 using a Shared Fax. All of my Windows 2000 and XP computers can print to the fax like any other printer. When I setup the Shared Fax on a Windows 7 Pro machine, it installs as an additional printer and asks for the print server name. I entered the server name and it installs fine.

When I go to print a fax from the Windows 7 computer, I get a message box with this error:

'To send faxes using the printer that you selected, you must first create a fax account. Windows will send this
fax using your default fax account instead. For more information, search for 'set up your computer to send and
receive faxes' in Help and Support.'

Well I went to Help and Support and it gives the same steps to setup the fax that I had already completed. There
is a Fax Account, but it won't use it.

Also, the fax doesn't get sent even using the 'default fax account' the error claimed would be used.

Windows then displays the fax window for me to enter a fax number and any other subject/text. When I click send, I
immediately get an error:

'The message could not be sent.

An error has occurred.'

Is there a work around for this, or is this Microsoft's way of nicely telling me that I have to give them another $1500 for new server software. (Cause that ain't happenin')

Thanks for your help!

Windows 7 Forums recommends Auslogics BoostSpeed to repair Windows errors. Get it now.
May 1st, 2012: 25% off. Use coupon code: WINDOWS7FORUMS

Optimize every aspect of Windows 7 with the System Advisor or manually.Repair corrupt registry entries and defragment the registry.Disable and enable services based on how you are using your computer.Adjust and edit hundreds of settings to fix your computer in a few easy clicks.Includes File Recovery (undelete) free of charge.

Other Auslogics software:

Auslogics Antivirus
Auslogics File Recovery
Auslogics Disk Defrag Pro

Auslogics BoostSpeed 5 is quite possibly the best overall system maintenance tool of the year. Having received 5 stars from CNET, they also receive a 10/10 full endorsement from BoostSpeed isn't just about making your computer fast: It's about making preventative maintenance manageable through one application. While the market calls for a typical system scan to attract buyers, that scan is entirely legitimate, and does correct serious registry problems in a way that far exceeds industry expectations. CCleaner, for example, can hardly hold a candle to this utility.

Looking closer at the System Advisor, we can determine whether or not the Internet connection can be automatically optimized. This is done with BoostSpeed through a manual or automatic setting in the Auslogics Internet Optimizer. Auslogics Registry Defrag will let you know that you can reduce registry access time and increase overall system performance by running this tool. This is a very delicate task that most freeware applications will not take on. Defragmenting the registry involves significant risk if there is a failure and that is why Auslogics BoostSpeed 5 comes with a Rescue Center, which can literally allow you to backup the changes that have been made within the program. The program will even automatically create these restore points before adjusting your system for perfect fine tuning.

If the Disk and Registry Maintenance options weren't enough, Auslogics BoostSpeed 5 comes with in-depth ways to determine and modify your System Status and Privacy. If that weren't enough, the System Tweaks area allows you to optimize your Windows services around how you use your computer. This can be so useful in a work environment, as most system services continue running unabated, even when they will never be used!

Control over startup items and installed software has never been easier. Needless duplicate files found on a system can be deleted and disks can be explored to discover what is eating up all of that storage space. The System tweaks area is where Auslogics BoostSpeed really shines. It contains management options for the User Interface, Start Menu, Taskbar, Windows Explorer, System Security, Startup and Shutdown, System, Internet Explorer, Microsoft Office, and numerous additional Software Tweaks.

"Hi, I’m Jessica Dolcourt from CNET Download and this is a first look at Auslogics BoostSpeed. This is a top rated program that attempts to defrag, tweak, and otherwise optimize the computer where its most likely to get bogged down. Looking at the clean launch interface, you might never guess that there are 18 tools bundled into one app. The main pane is dominated by shortcuts for testing the health of the system. One Button Checkup will scan for issues and attempt to fix them. For instance, Disk Cleaner’s job is to find and remove junk files. With most scans you run, you’ll have the opportunity to take a closer look at the files, and to back them up before you change anything. Since the goal of the program is to optimize performance, BoostSpeed often frames problems in terms of how much space you would free if you deleted the loose files. On the left, the system tools are organized by activity: Computer, Cleanup, Optimization, Privacy, Settings, and so on. When you click the task category, you’ll see the available tools and a brief description of what they do. Clicking the tools launches it in a separate window, so that you can return to this main interface at any time. Most tools are easy to work their way around, and most changes can be undone in Auslogics Rescue Center, which you can get to from individual tool interfaces or from the settings on the BoostSpeed panel interface. In the Rescue Center, you’ll see a list of the changes you’ve made. You’ll be able to see full details for each entry and view archive backups as well. Which system files BoostSpeed will back up, and which it will leave alone, are things you can specify in the program settings, under the tab that says Rescue Center. We’re fans of Auslogics BoostSpeed for its comprehensive system maintenance and nicely packaged interface. Some of the app’s component parts are offered as stand-alone freeware products, such as the Disk Defrag…" - Courtesy CNET Review of Auslogics BoostSpeed

Under User Interface:
Disable AeroMake menu bars and window frames opaque instead of translucentDo not animate windows when minimizing and maximizingSlow the window animations when holding Shift keyDisable 3D Window SwitchingAdd context menu to activate Flip 3DTurn off Aero PeekTurn off Aero SnapTurn off Aero Shake
Under Visual Effects:
Hide window contents while draggingDo not drop shadows under icons on the desktopDo not use translucent selection rectangleShow Windows version in the desktop bottom right cornerSelect how you want the arrows displayed on shortcuts
Under Animation:
Do not allow window animationDo not use smooth scrolling for list boxesDo not animate drop-down listsSelect tooltip animation types
Do not use menu fading animation effectsHide shadows under menusHide underlined letters for keybaord navigation until ALT is pressedMenu animation effects optionsDelay before displaying submenus (in milliseconds!)Full font smoothing optionsExtended ClearType and Standard font smoothing options
Start Menu:
Hide "Log Off" from the Start MenuHide the "Run itemHide "Set Program Access And Defaults" ("Default Programs" in Vista)Hide the "Help and Support" itemHide the "All Programs" menuHide "Administrative Tools"Hide the list of frequently used programsHide the list of pinned programsHide the "See more results" link
Under Folder options determine whether to hide individual items, show them as a link, or show them as a menu easily

Do not highlight recently installed programsDo not show partially installed programs in grayDo not sort the "All Programs" menu by nameDisable the context menu and drag itemsDisable the "Start" button tooltipExpand menu when you hover the mouse pointer over an itemEnable small icons in the Start menu
Show notification areaDo not display tooltips in the notification areaDo not hide unused icons in the notification areaDo not display the network activity icon in the notification areaDo not display the sound settings icon in the notification areaDo not display the battery icon in the notifications areaAuto-hide taskbarDo not slide taskbar buttonsAllow moving or rearranging taskbar itemsGroup similar buttons: Do not group, Group when full, Always group and hide tagsButtons: Configure advanced settings for taskbar application buttons
Show hidden filesShow file extensionsuse Windows classic foldersDisplay checkboxes to help select multiple filesAlways show the menu bar in Windows ExplorerDisable file and folder pop-up descriptionsDisplay folder size in the folder tooltip
Disable thumbnail cache creationDo not display thumbnails in network foldersThumbnail quality - 0-100%Thumbnail size in pixelsShow address bar folder path autocompleteShow address bar folder path autosuggestShow address bar maximized as a drop-down listInclude variable "PATH" into search pathDisable automatic replacement of a blackslash to a forward slash
Context Menu:
Show "Open Command Prompt"Show "Send To"Show "Copy to Folder..."Show "Move to Folder..."Show "Run as administrator"Show "Take ownership"Show "Search..."
Restore open Explorer windows when you restartDisable CD burning functions in Windows ExplorerRun Desktop and Explorer tasks as seperate processesRun each Explorer window as a seperate processAutomatically restart the shell if a shell error occursDisable the option to search the Internet when you open a file with unknown extension
Explorer items:
Display encrypted and compressed files and folders in a different colorDrive letter is displayed after disk labelDrive letter is displayed before disk labelDrive letter is displayed before disk label for network driveDrive letter is not displayed!

Disable autorun for:
Removable drives (Floppy, flash-drive, etc)Non-removable drives (hard disk, etc)Optical disk drives (CD, DVD, etc)Temporary memory disk (RAM-disk)Network drivesUnknown drive types
Command Prompt:
Enable advanced modeEnable delayed expansion of environmental variablesEnable quick editingFile names autocomplete hotkeyFolder names autocomplete hotkey
System Security:
Disable User Acount ControlSet all UAC options including advanced options only found in registry
Privacy Policy:
Wipe page file on computer shutdownClear the "Recent documents" list on logoffDo not create the "Recent Documents" listDo not store your logon password on the diskDisable hidden sharesDisable user trackingEnable encrypt/decrypt options in ExplorerDisable Faster User Switching
For anonymous users:
Access is allowed with the default settingsTransfer of accounts and SAM names is prohibitedAccess is denied if permits are not specified
Windows Defender:
Disable Windows DefenderDisable heuristic scanningDisable archive scansDisable removable media scansDisable e-mail scansDisable real-time protectionDisable real-time protection promptsDisable downloads checkupDisable executable files checkupDisable definition updates through alternate download locationsCheck for new signatures before scheduled scansDo not log unknown detectionsDo not log known good detections
Startup and Shutdown:
Disable Windows startup soundDisable parsing AUTOEXEC.BATDisplay information about previous logons during user logonDisable Ctrl-Alt-Del before logonRun logon scripts simultaneouslyOptimize system files placement on the diskSpecify time to wait before running Check Disk (chkdsK) in seconds
Event Logging:
Do not log any eventsLog standard events onlyLog all startup and shutdown events
Legal Notice:
Write any legal notice you want during startup of Microsoft Windows
Automatic login:
Use autologin and set credentials, including username, password, and domain

OEM Info:

Configure Windows OEM attributes, such as the manufacturer's logo and support information that appears in the System Properties window.

This includes:
ManufacturerModelSupport URLWorking HoursPhone120x120 pixel logo
Application Start:
Disable "Program Compatibility Assistant"Disable "Program Compatibility Wizard"Disable running 16-bit applicationsRun 16-bit programs as a separate processAdd checkbox "Run in seperate memory space" for 16-bit applications
Error Handling:
Disable sound when errors occurAutomatic restart in case of a critical errorSend error reportsShow error notification in windowDon't save reports on your computerDon't send additional information in a reportDon't write error information into system log
If an error occurs:
Ask user consent to send a reportAutomatically include only basic information in the reportAutomatically include all but personal data in the reportAutomatically include all data in the report
Internet Explorer:

Disable visual-styled controls in Internet Explorer pagesDisable page transitionsDisable Clear Type fontsDisable smooth scrollingDisable autoamtic updatesAlways show menusDo not show extended error messagesDo not show the welcome text for new opened tabsDo not show warning messages when closing tabsDo not send bug reports via the InternetAlways ask before downloading filesPlace the menu above the address bar
Let Internet Explorer decide how pop-ups should openAlways open pop-ups in a new windowAlways open pop-ups in a new tab
Specify how Internet Explorer displays a web page when it's launched from another program:
Opens in a new windowOpens in a new tab in the current windowOpens in the current tab or window
Speed up web browsing in IE by using more concurrent Internet connectionsIncludes anywhere from 1-20 connections (Default is 4)
Default file download directoryHome PageCaption string that is displayed after the page title
Microsoft Office:
Do not track document editing timeBlock updates from the Office Update SiteDisable Customer Experience Improvement programDisable error reportingDisable logging Microsoft Office activityDisable Office DiagnosticsDisable clipboard dialog boxPrevent Office Help from resizing the application window
Microsoft Word:
Do not check spelling as you typeDo not check grammar as you typeDo not use background printingDo not auto-save background printingDo not auto-save documents in the backgroundDo not use translucent selectionDo not check if MS Word is the default HTML editor
Microsoft Excel:
Show Formula bar in Full ViewCache spreadsheetsCache PivotTable reportsUndo steps: Set from 0 to 100
Software tweaks (The ones we can see so far)

Disable file transferDisable loading language filesDisable publishing Skype status on the WebDisable Skype Public APIDisable checking for updatesDisable listening for TCP connectionsDisable UDP communications
Windows Media Player
Disable auto-updatesDisable automatic codec downloadsDisable Windows Media Digital Rights Management (DRM)Disable video smoothingDisable CD and DVD Media information retrievalDisable music file media information retrievalDisable media file sharingDisable script handling in media filesHide the "Privacy" tab in the settingsHide the "Security" tab in the settingsHide the "Network" tab in the settings
Adobe Reader:
Disable splash screenDisplay PDF in the browser windowDisable Purchase Acrobat item in the menu
Disable link prefetchingDo not reduce memory when minimizedDo not download favorite icons (favicons)Disable blinking elementsForce frames to be reesizableUse old style for opening tabsShow all images / Block all images / Load images from the requird site only and block images from othersClose Tab Button full range of optionsHow long Firefox waits for the web page data before it displays the page (From 0 to 1 sec)
System Information includes everything:
OverviewGeneralHardwareCPUMotherbaordMemory ModulesVideoStorageIO DevicesInput DevicesModemsNetwork AdaptersResourcesProblem DevicesOperating SystemProgramsNetworkApplication ErrorsDevice ManagerMemory UsagePerformance
Tasks show Applications, processes, services, and locked files. You can unlock locked files, change the status of services, end processes, and modify application data.

Auslogics Disk Explorer will show what folders are taking up the most space and allow you to delete empty folders on your system.

File Recovery allows you to undelete files.

Speed Up Internet includes:
Automatic tuningAuto HeuristicsDefault TTLGlobal Max TCP WindowMax MTUTCP Window SizeMax Connections Per 1_0 ServerMax Simultaneous HTTP ConnectionsFirefox Max ConnectionsFirefix Max Connections Per Server
1323 OptsACK FrequencyARP Cache LifeARP Cache Min Reference LifeARP Cache SizeAuto HeuristicsAuto TuningCongestion ControlDefault TTLDel ACK TicksDisable Task OffloadECN CapabilityEnable PMTU BH DetectEnable PMTU DiscoveryFin Wait DelayGlobal Max TCP Window SizeInitial RTTIPv6 over IPv4Keep Alive InternalKeep Alive TimeMax Connect RetriesMax Data RetransmissionsMax Dup ACKsMax MTUNum ConnectionsReceive-side ScalingSACK EnabledTCP Window SizeSYN Attack ProtectTimed Wait DelayUse RFC1122 Urgent Pointer
Default Receive WindowDefault Send WindowLarge Buffer SizeMedium Buffer SizeNon Blocking Send Special bufferingSmall Buffer SizeTransmit Worker
Request Buffer SizeUse Raw ReadUse Raw WriteUse Write Raw Data
Dns Cache:
Adapter Timeout TimeHash Table Bucket SizeHash Table SizeMax Entry TTL LimitMax SOA Entry TTL LimitNegative SOA TimeNegative TimeNet Failure Time
Internet Explorer:
DNS Cache EnabledDNS Cache TimeoutKeepAlive TimeoutMax Connections Per 1_0 ServerMax Connections Per ServerReceive TimeoutServer Info TimeoutSocket Receive Buffer LengthSocket Send Buffer LengthTCP Autotuning
Disable IPv6DNS Cache EntriesDNS Cache ExpirationHTTP Connect TimeoutKeepAlive TimeoutMax ConnectionsMax Connections Per ServerMax Persistent Connections Per ServerMax Persistent Connections Per ProxyPipeliningPipelining Max RequestsPrefetch NextProxy PipeliningUse KeepAliveUsing Proxy KeepAlive
(Auto-optimization is based on Over 1Mbps / 1Mbps or lower (default that Windows assumes) / or 128kbps or lower)

The built-in System Advisor determines (THESE ARE JUST SOME):
Can the Internet connection be optimized?Is the registry fragmented?Can Windows shutdown be sped up?Can incorrect drivers be updated? (It updates them in Auslogics Device Manager)
Quick Tasks allow you to:
Erase browser historyErase Windows historyCleanupt emporary filesOptimize memory
Privacy allows you to shred files and wippe entire disks.

Let's check that one again:
Disk MaintenanceFree Up SpaceRemove DuplicatesExplore diskDisk cleanupDisk defragmentDisk repairSoftware ControlSystem TweaksService OptimizationDisaster RecoveryFile RecoveryRescue CenterRegistry MaintenanceRegistry RepairRegistry DefragmentSystem StatusSystem InformationSystem TasksSystem ServicesLocked FilesComputer PrivacyErase Computer HistoryShred FilesWipe disksSpeed Up InternetInternet OptimizationMemory Optimization
It is quite probable that Auslogics BoostSpeed is the best program on the market for system repair and optimization EVER. Even if you don't know how to use the options listed above, that is why this program is great. It really DOES it for you. It really does repair your registry, with money behind it that went into big time research and development.

Their previous freeware products have been used regularly by IT professionals, but this product includes absolutely everything. There is nothing missing in this program, and updates are absolutely frequent. It is the one application I would recommend to every member of without hesitation. Even if you do not know what these settings mean, this program will optimize and repair your system without any doubt. Today, there are so many programs that "claim" to do this and do that. When we saw Auslogics offering a commercial solution I had to start offering it on my website after I saw what it could do. I had to make a video about it. I had to find a way to provide a discount to members.

I have recommended it to my mother, my grandparents, and I will bring it up to a client I am currently working with tomorrow who is asking for Windows XP. This is the program that you need to automatically manage your system and keep it up-to-date, speedy, and performing in top condition.

Windows 7 Forums Rating: 10/10 Stars

Don't take my word for it. CNET gave them 5/5 stars too!

Watch our YouTube video for an exclusive discount offer.

"David Candy" wrote:

Set up how you want it then reboot then turn off Remember each
folders view settings. The existing settings are used and
contimnue to be used but for the first folder opened. Or read
the last section of this post and think of the order you do
the Apply To All in.

EG If My Comp is Icons and Control Panel is thumbnails and
you open a window on My Comp all folders viewed with that
window will be icons. If you open a window on Control Panel
then all are thumbnails.

Hi David, I have just caught up with this very interesting post
which you made a couple of weeks ago.

I have been customizing my XP Pro and using lots of registry
tweaks and as a result my folders forget *some* of their
settings. The folder manage to remember the POSITION and SIZE
and SHAPE of their window.

But the folders forget settings to do with displaying the ADDRESS

I can confirm I have marked the check box "Remember Each Folder's
View Settings" under Advanced Settings on the View tab of Folder
Options in Control Panel. But XP behaves exactly in the way you
describe it when that box is *not* checked.

How can I fix this problem?

As a repair, I followed all of the steps you posted. For
convenience I quote your steps below this message.

In addition to your steps, I have done what is in MSKB article
813711, "Your View Settings or Customizations For a Folder are
Lost or Incorrect" . and so I increased the two entries for
'BagMRU Size' to a very large value of 18000.

(I figure have 4,000 folders on the C partition and about the
same on the D partiton and even more on some other partitions all
attached at the same time.)

None of this works. My folders still behave as if I have not
checked the 'Remember Each Folder's View Settings'. Could the
entry in the registry for this very checkbox itself be corrupted?
In other words, this setting is not properly being read as

What should I do to solve this?

Can anyone else here advise me on this problem?

Thanks in advance for any help.


-------- STEPS FOLLOWED (QUOTING DAVID'S TEXT) -------------

The store may be corrupt. Type regedit in Start Run and delete
all these keys.

Delete these keys or values from the registry. This will reset
many things like saved folder settings. Type Regedit in Start -
Run. Right click taskbar and choose Task Manager. Processes
tab and end processs for explorer. (Your Desktop and Start Menu
now disappears).

In Regedit navigate to each of these keys and delete them:

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurre ntVersion
Explorer and delete the value Shellstate

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurre ntVersion
ExplorerCabinetState and delete the value Settings

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurre ntVersion

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurre ntVersion
ExplorerStreamsMRU (may not exist)

HKEY_CURRENT_USERSoftwareMicrosoftWindowsShell BagMRU

HKEY_CURRENT_USERSoftwareMicrosoftWindowsShell Bags

HKEY_CURRENT_USERSoftwareMicrosoftWindowsShell NoRoamBagMRU

HKEY_CURRENT_USERSoftwareMicrosoftWindowsShell NoRoamBags

Then in Task Manager, File - Run type explorer. (Start menu and
Desktop come back).

David, in addition I have put 18,000 for 'BAGMRU SIZE' following
the MSKB article

After making al the registry changes I immediately rebooted the

-------------- END OF STEPS FOLLOWED -------------------

=========== REST OF ORIGINAL POSTING FOLLOWS =============

Understanding Saved Views and Browsing Folders

In Windows 2000 Professional, the view you use is not always
permanently saved in Windows Explorer. You can control whether
the views you use are saved permanently or temporarily by using
the Remember Each Folder's View Settings check box on the View
tab of the Folder Options dialog box (see figure 9.3).

By default the 'Remember Each Folder's View Settings' option is
enabled. When you choose to leave this setting enabled, the
following happens:

a.. The changes you make to a folder's view is automatically
saved when you close the folder.

b.. The view you use to view one folder is not applied to
other folders.

c.. When you open a folder, it opens in the view you used
when you last viewed it.

When you clear the check box for 'Remember Each Folder's View
Settings', the following happens:

a.. When you start Windows Explorer, the first folder you
view displays in the folder's saved view. Windows Explorer holds
that view in temporary memory and applies it to all the folders
that you visit while Windows Explorer remains open unless you
manually alter the view.

b.. As you browse to other folders (after the initial folder
is opened), the saved view for each folder is ignored, and when
you quit Windows Explorer, the folder view that you have been
using to view multiple folders is deleted from temporary memory.

c.. The next time you open Windows Explorer, once again, it
is the saved view of the first folder you open that determines
how you view multiple folders.

Setting All Folders to the Same View

Some users want to have all their Windows Explorer folders set to
the same view. In Windows 2000 Professional, the default
setting is that any change made to a folder's view is
automatically saved when you close the folder and is not applied
to other folders. However, you can set all folders to the same
view by using the Folder Options command as described in the
following procedure.

To set all folders to the same view
1.. In My Computer or Windows Explorer, set the view to your
2.. On the Tools menu, click Folder Options.
3.. In the Folder Options dialog box, click the View tab.
4.. Under Folder Views, click Like Current Folder.

Important: The 'Remember Each Folder's View Settings' check box
on the View tab of the Folder Options dialog box (see Figure 9.3)
affects how the view settings of individual folders are applied
and saved. For more information about the impact of clearing
this check box, see "Understanding Saved Views and Browsing
Folders" earlier in this chapter.


And check:

HKCUSoftwareMicrosoftWindowsCurrentVersionPol iciesExplorer
Data type Range Default value
REG_DWORD 0 | 1 0

Prevents users from saving certain changes to the
desktop. Users can change the desktop, but some changes,
such as the positions of open windows and the size and
position of the taskbar, are not saved when users log
off. Shortcuts placed on the desktop are always saved.

This entry stores the setting of the 'Don't save settings
at exit' Group Policy. Group Policy adds this entry to the
registry with a value of 1 when you enable the policy. If
you disable the policy or set it to Not configured, Group
Policy deletes the entry from the registry and the system
behaves as though the value is 0.

Value Meaning:
0 = (or not in registry) The policy is disabled or
not configured. Changes to the desktop are saved.
1 = The policy is enabled. Some changes to the desktop
are not saved.


You have to do 'Apply To All' while in a file folder.

For each type of object (File Folder, Control Panel, My Computer,
etc) that you do an Apply to All in it's clsid and the settings
are created/updated at

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurre ntVersion

as well as a higher set of defaults at

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurre ntVersion

Plus if you hold down control and click close it also updates

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurre ntVersion

This is mainly setting irrelevent things except it holds the
global sort, which all the others override. But File Open dialog
boxes only use this setting, so it basically only affects sorting
in File Open dialogs. But it seems that sometimes an earlier
windows versions setting get written here and other settings then
aren't saved.

============ END OF TEXT FROM ORIGINAL POSTING ==============

[newsgroups widened]

We are having problems getting "Offer Remote Assistance" to work in our
Child Domain (part of an Active Directory Forest). In Offer Remote
Assistance, when we Click the Connect Button from a Windows XP SP2 computer
with Windows Firewall Enabled, an error box "Permission denied" is displayed
immediately, as if it never even gets far enough to try to communicate to
the destination XP SP2 computer (no hard drive activity, no event log
activity, no dropped traffic by the firewall). Interestingly, when we put
in a W2K3 box as the destination, we received a different error "Access to
the requested resource has been disabled by your administrator" and it
actually does "talk" to the W2K3 box over the network as you can hear the
disk grind at the moment it attempts to connect. We have not used GPOs to
Enable Remote Assistance on our W2K3 boxes.

So, the list of what we have done with related Microsoft KB Articles:

- Through Group Policy, have Enabled both 'Solicited Remote Assistance' and
'Offer Remote Assistance' at
Computer Configuration / Administrative Templates / System / Remote
- Added a couple of Domain Admin Groups who are also in the Local
Administrators group on all computers with the domaingroup format to
the Group Policy above
- Added/Changed the DCOM Registry Key as such on ALL involved computers:
- Opened all of the items below in the Windows Firewall through Group
%WINDIR%SYSTEM32Sessmgr.exe:*:Enabled:Remote Assistance
%WINDIR%PCHealthHelpCtrBinariesHelpsvc.exe:*:E nabled:Offer Remote
%WINDIR%PCHealthHelpCtrBinariesHelpctr.exe:*:E nabled:Remote Assistance -
Windows Messenger and Voice
135:TCP:*:Enabled:Remote Assistance Port
- We have even Enabled to "*" 'Allow remote administration exception',
'Allow file and printer sharing exception' and 'Allow Remote Desktop
exception' in the Firewall as well
- Even though all of our computers are Windows XP SP2, since we have left
this group Policy as 'Not Configured' we don't believe it applies to us.
(And attempting to modify this as KB stated caused all sorts of other DCOM
related problems)
Simple File Sharing is disabled since all computers are within our Domain
(Domain Computers), so this article doesn't apply to us. We have verified
that this checkbox is NOT selected on all of the computers involved.

Right-Click, Properties on 'My Computer', Remote Tab on all involved
computers has the 'Allow Remote Assistance invitations to be sent from this
computer' checked.

Resultant Set of Policies (RSoP) verifies that all appropriate Group
Policies are being applied correctly.

All involved computers are on the same subnet and no other firewalls exist
other than the Group Policy-enforced Windows Firewall configured as
mentioned above. In fact removing the Windows Firewall on both the 'Expert'
and 'Novice' computers generates the same error message 'Permission denied'.

The 'Remote Desktop Help Session Manager' service is set to Automatic and in
the Running state on the computer that the 'Offer Remote Assistance' is
being made from and under the security context of a Local AND Domain
Administrator account - this user is part of one of the groups added to the
Group Policy above.

'Offer Remote Assistance' is being initiated from a Shortcut to:
hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington, C=US/Remote%20Assistance/Escalation/unsolicited/unsolicitedrcui.htm

Remote Desktop works correctly for all involved computers.

Generating a Remote Assistance request and sending via email works
perfectly. Only Unsolicited (Offer) Remote Assistance does not work.

We use Group Policy to "lock down" most of the Security Settings under 'User
Rights Assignments' and 'Security Options'. See list of settings below:
Policy Security Setting
Access this computer from the network MYDOMAINDomain Admins,MYDOMAINDomain
Act as part of the operating system
Add workstations to domain
Adjust memory quotas for a process LOCAL SERVICE,NETWORK
Allow logon through Terminal Services Administrators,Remote Desktop Users
Back up files and directories Administrators
Bypass traverse checking Users
Change the system time MYDOMAINDomain Admins,MYDOMAINDomain
Create a pagefile Administrators
Create a token object
Create global objects Administrators,INTERACTIVE,SERVICE
Create permanent shared objects
Debug programs Administrators
Deny access to this computer from the network
Deny logon as a batch job
Deny logon as a service
Deny logon locally
Deny logon through Terminal Services ASPNET
Enable computer and user accounts to be trusted for delegation
Force shutdown from a remote system MYDOMAINDomain Admins,Administrators
Generate security audits LOCAL SERVICE,NETWORK SERVICE
Impersonate a client after authentication ASPNET,Administrators,SERVICE
Increase scheduling priority Administrators
Load and unload device drivers Administrators
Lock pages in memory
Log on as a batch job
Log on as a service NETWORK SERVICE
Log on locally MYDOMAINDomain Admins,MYDOMAINDomain Users,Administrators
Manage auditing and security log Administrators
Modify firmware environment values Administrators
Perform volume maintenance tasks Administrators
Profile single process Administrators
Profile system performance Administrators
Remove computer from docking station Administrators,Users
Replace a process level token LOCAL SERVICE,NETWORK SERVICE
Restore files and directories Administrators
Shut down the system Administrators,Users
Synchronize directory service data
Take ownership of files or other objects Administrators

Policy Security Setting
Accounts: Administrator account status Not Applicable
Accounts: Guest account status Not Applicable
Accounts: Limit local account use of blank passwords to console logon only
Accounts: Rename administrator account Not defined
Accounts: Rename guest account Not defined
Audit: Audit the access of global system objects Disabled
Audit: Audit the use of Backup and Restore privilege Disabled
Audit: Shut down system immediately if unable to log security audits
DCOM: Machine Access Restrictions in Security Descriptor Definition Language
(SDDL) syntax Not defined
DCOM: Machine Launch Restrictions in Security Descriptor Definition Language
(SDDL) syntax Not defined
Devices: Allow undock without having to log on Disabled
Devices: Allowed to format and eject removable media Administrators
Devices: Prevent users from installing printer drivers Disabled
Devices: Restrict CD-ROM access to locally logged-on user only Disabled
Devices: Restrict floppy access to locally logged-on user only Disabled
Devices: Unsigned driver installation behavior Warn but allow installation
Domain controller: Allow server operators to schedule tasks Not defined
Domain controller: LDAP server signing requirements Not defined
Domain controller: Refuse machine account password changes Not defined
Domain member: Digitally encrypt or sign secure channel data (always)
Domain member: Digitally encrypt secure channel data (when possible) Enabled
Domain member: Digitally sign secure channel data (when possible) Enabled
Domain member: Disable machine account password changes Disabled
Domain member: Maximum machine account password age 7 days
Domain member: Require strong (Windows 2000 or later) session key Enabled
Interactive logon: Do not display last user name Enabled
Interactive logon: Do not require CTRL+ALT+DEL Disabled
Interactive logon: Message text for users attempting to log on
Interactive logon: Message title for users attempting to log on Not defined
Interactive logon: Number of previous logons to cache (in case domain
controller is not available) 0 logons
Interactive logon: Prompt user to change password before expiration 14 days
Interactive logon: Require Domain Controller authentication to unlock
workstation Enabled
Interactive logon: Require smart card Not defined
Interactive logon: Smart card removal behavior Lock Workstation
Microsoft network client: Digitally sign communications (always) Disabled
Microsoft network client: Digitally sign communications (if server agrees)
Microsoft network client: Send unencrypted password to third-party SMB
servers Disabled
Microsoft network server: Amount of idle time required before suspending
session 720 minutes
Microsoft network server: Digitally sign communications (always) Disabled
Microsoft network server: Digitally sign communications (if client agrees)
Microsoft network server: Disconnect clients when logon hours expire Enabled
Network access: Allow anonymous SID/Name translation Not Applicable
Network access: Do not allow anonymous enumeration of SAM accounts Enabled
Network access: Do not allow anonymous enumeration of SAM accounts and
shares Enabled
Network access: Do not allow storage of credentials or .NET Passports for
network authentication Enabled
Network access: Let Everyone permissions apply to anonymous users Disabled
Network access: Named Pipes that can be accessed anonymously
Network access: Remotely accessible registry paths
SystemCurrentControlSetControlProductOptions,Sy stemCurrentControlSetControlPrintPrinters,Syst emCurrentControlSetControlServer
Applications,SystemCurrentControlSetServicesEve ntlog,SoftwareMicrosoftOLAP
NTCurrentVersion,SystemCurrentControlSetControl ContentIndex,SystemCurrentControlSetControlTer minal
ServerUserConfig,SystemCurrentControlSetControl Terminal
Network access: Shares that can be accessed anonymously
Network access: Sharing and security model for local accounts Classic -
local users authenticate as themselves
Network security: Do not store LAN Manager hash value on next password
change Enabled
Network security: Force logoff when logon hours expire Enabled
Network security: LAN Manager authentication level Send NTLMv2 response
onlyrefuse LM & NTLM
Network security: LDAP client signing requirements Require signing
Network security: Minimum session security for NTLM SSP based (including
secure RPC) clients Require message integrity,Require message
confidentiality,Require NTLMv2 session security,Require 128-bit encryption
Network security: Minimum session security for NTLM SSP based (including
secure RPC) servers Require message integrity,Require message
confidentiality,Require NTLMv2 session security,Require 128-bit encryption
Recovery console: Allow automatic administrative logon Disabled
Recovery console: Allow floppy copy and access to all drives and all folders
Shutdown: Allow system to be shut down without having to log on Disabled
Shutdown: Clear virtual memory pagefile Disabled
System cryptography: Use FIPS compliant algorithms for encryption, hashing,
and signing Disabled
System objects: Default owner for objects created by members of the
Administrators group Object creator
System objects: Require case insensitivity for non-Windows subsystems
System objects: Strengthen default permissions of internal system objects
(e.g. Symbolic Links) Enabled

Any suggestions would be greatly appreciated - thank for help in advance.

There seems to be a crying need for a macro-run mechanism that offers a global name search.

In Word97SR2 I choose Tools, Macro, Macros, and am presented with a small window through which I must scroll to locate my macro.

Trouble is, I have about ten global/startup templates, and I can't remember which template stores the macro (so I can't restrict my search using MACROS IN), and my failing memory causes me to think I called it RemoveAllGraphics, but you know it might be DeleteAllGraphics or something else. The macro will have "Graphics" in the name, because it is designed to get rid of any picture-like elements in the current document. Oh yes, it might be called KillAllPictures, but I doubt it. I wrote it around about the time I was switching user macro prefixes from cmd_ to udf_, although if I never moved it from development, it probably has neither prefix.

So what I need is a box within the Tools, macro, macros box that allows me to key in a short text string and return a sub-set of macros, only those that contain my text string anywhere in their name.

Shouldn't be too difficult, and ought to save a whole lot of time opening up global templates (what a pain THAT is!) and doing a search within each template.

Who is going to write it?

I have a series of batch files to copy data to and fro between hard disk and flash stick. They have operated successfully for a couple of years from icons on the desktop with no probelms.
I now have a second flash stick that I use for another job and used Notepad to amend the original batch files to suit the second situation.
However the second batch files won't run from shortcut or from Windows Explorer. All I get is an hourglass for about half a second and nothing else.
The batch file runs fine from the command prompt.
Even more puzzling is that if I take the original batch file that runs fine and make a copy of it using Windows Explorer then the copy won't run either.
The original batch file is attached (as a text file)

Any help would be greatly appreciated.

(Edited by HansV to make URL clickable - see Help 19)


I'm using Word as part of my Office XP professional suite, retail box, and right now I'm facing a problem with a peculiar type of text. I download most of my philosophy books from this address , try for example, Immanuel Kant's "Prolegomenna to Any Future Metaphysics", you'll find that you will be presented with a .txt document, almost a notepad. In order to improve the presentation of the text, I simply copy and past the whole ".txt" webpage into an empty word document. After I do that, I click the "show/hide non-printing marks" and I find that at the end of each line there's a paragraph break, a pilcrow, rather than a bent arrow, the sign of a line break.

I have tried everything, from autoformat, which did nothing to the pasted text, except maybe applying a new 'head style' to it, while the line retained their short form which wrapped before the end of the line. Can someone tell me how to get rid of these pilcrow line breaks? Please if someone can try the text from the above URL, and see for him/herself the wrapped line which are cut "short" before they reach the line's end.

p.s. I'm running my professional office xp suite on a windows xp home edition, 3.2 GHz, Petium 4, 1GB 3200 DDRAM Kingstone pc system.

Can someone please help me with this problem?

All I need to do is to get rid of the pilcrow markers, and making lines wrap up to their ends in a justifiable and neat way.

ashraf kadry

I have a text file with 3 lines per record and 109 char/line.
I used Input() to get data from file and InStr() to jump to pertanent information within string.
However I get an "Invalid procedure call or argument" error on the InStr() code.
I cannot find anything about using either function that would cause this problem.
The following is a sample and all variables are defined discreetly as appropriate.
Any suggestions?

Do While Not EOF(1) ' Loop until end of file.
strIncoming = Input(109, #1) ' Get 109 characters.
Debug.Print strIncoming ' Print to Debug window.
intIndex = InStr(0, strIncoming, "CSE=", vbTextCompare)

I have a couple of issues I would like to resolve:

1) When I open Outlook and then start a new message, invariably the "Formatting" toolbar is displayed on the same line as the "Standard" toolbar. I then drag it down a line so it is directly beneath the "Standard" one. After sending an e-mail and then opening another new message window, the "Formatting" toolbar has moved over to the right margin from the left where I dragged it before. This is a real annoyance. Any suggestions on how this might be resolved so that this toolbar stays put? Likewise, in the main window, the "Advanced" toolbar invariably isn't displayed when I open Outlook for the first time, even though I choose to display it immediately thereafter.

2) I have Outlook configured to check for new messages every 10 minutes. However, when I close the program, it continues to check for new mail. When one arrives I get the little "new mail" icon in the SystemTray (XP Home), but double clicking on it displays an error. If I open Outlook to read the new mail the icon remains in the SystemTray even after all the new messages are read, even though it should disappear immediately after clicking on the first new message. If it is of any help, when I open Task Manager, Outlook is shown as running in "Processes" even after it is closed. And sometimes there are even two instances of Outlook listed. Yep... weird! So, anyone willing to tackle this one?

Ack... forgot another important item!

3) Lately, when I copy some text from any number of sources and try to paste it into an e-mail (HTML), I only get a symbol (see the little screenshot). What's happening to my copy/paste function???



Bought this PC at Microcenter about 2 years ago. All was well until recently when I am getting the Not running genuine windows error. I had a problem with a keyboard recently and had to do a system restore from about 2 weeks back.
I've pasted the mga diagnostic below. How can I fix it?
Diagnostic Report (1.9.0027.0):
Windows Validation Data-->
Validation Code: 0x8004FE21
Cached Online Validation Code: 0x0
Windows Product Key: *****-*****-WJ2H8-R6B6D-7QJB7
Windows Product Key Hash: ckKNc+BBPDWmo1LUlOkraNjlQ34=
Windows Product ID: 00359-OEM-8992687-00006
Windows Product ID Type: 2
Windows License Type: OEM SLP
Windows OS version: 6.1.7601.2.00010300.1.0.003
ID: {CBBC9EBB-ADCF-4049-8FB1-22366DB5095B}(1)
Is Admin: Yes
TestCab: 0x0
LegitcheckControl ActiveX: N/A, hr = 0x80070002
Signed By: N/A, hr = 0x80070002
Product Name: Windows 7 Home Premium
Architecture: 0x00000009
Build lab: 7601.win7sp1_gdr.110622-1506
TTS Error:
Validation Diagnostic:
Resolution Status: N/A
Vista WgaER Data-->
ThreatID(s): N/A, hr = 0x80070002
Version: N/A, hr = 0x80070002
Windows XP Notifications Data-->
Cached Result: N/A, hr = 0x80070002
File Exists: No
Version: N/A, hr = 0x80070002
WgaTray.exe Signed By: N/A, hr = 0x80070002
WgaLogon.dll Signed By: N/A, hr = 0x80070002
OGA Notifications Data-->
Cached Result: N/A, hr = 0x80070002
Version: N/A, hr = 0x80070002
OGAExec.exe Signed By: N/A, hr = 0x80070002
OGAAddin.dll Signed By: N/A, hr = 0x80070002
OGA Data-->
Office Status: 109 N/A
OGA Version: N/A, 0x80070002
Signed By: N/A, hr = 0x80070002
Office Diagnostics: B4D0AA8B-604-645_025D1FF3-364-80041010_025D1FF3-229-80041010_025D1FF3-230-1_025D1FF3-517-80040154_025D1FF3-237-80040154_025D1FF3-238-2_025D1FF3-244-80070002_025D1FF3-258-3
Browser Data-->
Proxy settings: N/A
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Win32)
Default Browser: C:Program Files (x86)Mozilla Firefoxfirefox.exe
Download signed ActiveX controls: Prompt
Download unsigned ActiveX controls: Disabled
Run ActiveX controls and plug-ins: Allowed
Initialize and script ActiveX controls not marked as safe: Disabled
Allow scripting of Internet Explorer Webbrowser control: Disabled
Active scripting: Allowed
Script ActiveX controls marked as safe for scripting: Allowed
File Scan Data-->
Other data-->
Office Details: {CBBC9EBB-ADCF-4049-8FB1-22366DB5095B}1.9.0027.06.1.7601.2.00010300.1.0.003x64*****-*****-*****-*****-7QJB700359-OEM-8992687-000062S-1-5-21-2086857786-1397154865-1144760544GatewayDX4831American Megatrends Inc.P01-A020091117000000.000000+000FB023407018400FC04090409Eastern Standard Time(GMT-05:00)03ACRSYSACRPRDCT109
Spsys.log Content: 0x80070002
Licensing Data-->
On a computer running Microsoft Windows non-core edition, run 'slui.exe 0x2a 0x800700C1' to display the error text.
Error: 0x800700C1
Windows Activation Technologies-->
HrOffline: 0x8004FE21
HrOnline: N/A
HealthStatus: 0x0000000000000040
Event Time Stamp: 3:10:2012 19:25
ActiveX: Registered, Version: 7.1.7600.16395
Admin Service: Registered, Version: 7.1.7600.16395
HealthStatus Bitmask Output:
Tampered File: %systemroot%system32sppcext.dll|sppcext.dll.mui

HWID Data-->
OEM Activation 1.0 Data-->
OEM Activation 2.0 Data-->
BIOS valid for OA 2.0: yes
Windows marker version: 0x20001
OEMID and OEMTableID Consistent: yes
BIOS Information:
ACPI Table Name OEMID Value OEMTableID Value
SSDT DpgPmm CpuPm

Any ideas on how to fix it?

You reboot your PC and have it boot to the Windows 7 install DVD.

Once the DVD is loaded, you can choose install or repair. In many cases, repair works.

If you are an enterprise customer, you would be provided a copy of DART (Microsoft Diagnostics and Recovery Toolset). It looks just like a recovery disk (it does not install an OS), but adds an additional option which opens another window providing you with about another dozen tools, which can come in handy. Search Microsoft's site and I believe it is now publicly available, hovering around v7ß3.

Neither of the above resolves my situation -- I cannot get to the Windows 7 desktop to run an in-place upgrade (now referred to as a repair installation).
Anyway, if you choose install, you are prompted with Upgrade or Custom, where the former would retain all of your programs & their settings, only requiring you to redo any tweaks you might have made to the OS, and the latter will wipe out all those settings, requiring that you reinstall all your programs from scratch.

With Windows 7 installed, if you choose Upgrade, you will be presented with text indicating that the PC started by booting the DVD and in order to run an upgrade (in my case, it would be an in-place upgrade), it has to be done from the Windows desktop (not verbatim).

If you cannot get to the desktop you cannot directly do an in-place upgrade (now referred to as a repair installation), as was provided for in previous Windows incarnations (I have "worked with" Microsoft since DOS 1.0).

Almost every mention of repair installation I see repeats, and is based upon, Microsoft's mantra that you cannot do an in-place upgrade if you booted first to the DVD -- ask any Microsoft tech, and you will hear that almost word for word from each of them.

If Microsoft states that xyz are your only supported solutions and all three do not work, you can either accept that you are screwed, or delve deeper into what is possible, but not Microsoft supported.

It is the latter solution that I am looking for. I have no interest in whether Microsoft supports the solution; my interest is in whether it resolves my problem.

I was using Paragon Partition Manager 11 to defrag the MFT and then compress the MFT. I saved the last of my drives (C & D) for last (making sure all the others were fine first), and that required a reboot, where Paragon's software did its thing, totally mangling my boot-up.

I am running Windows 7 Ultimate SP1 64-bit, running at 4.140Mhz, 12G RAM, 5 internal HDDs and 7 external HDDs and all are fine ("chkdsk /b", along with the latest TestDisk, via various LiveCDs were used to determine that). Disconnecting (not just disabling) all drives except Drive-C had no positive effect.

A writable Windows 7 SP1 DVD (downloaded and created from the Partner Portal's Action Pack) is being used.
I have already had this to the Microsoft Professional Tech group who then escalated it to a Sr Engineer, after I documented all the steps I took on my own (both Windows and Linux-based). We are actively working on it, but I would love to have the solution before he does...

So, thinking outside the box, how can you make the DVD believe that it did not start the PC?

Win 98SE and Word Offce 97 are guilty parties but behaviour is also exhibited in IE5.5.

In place of text I often get little squares though the item prints correctly. Appeared to happen after reading someone elses' Word Document sent as an email attachment. Tried so far:

- Ran up to date anti-virus software - nothing found
- Delete and re-install all fonts.
- Delete and recreate template for Word
- Checked no references to CodePage in autoexec.bat that might be forcing a difference codeset from the Windows setting - not an issue.
- Updated video drivers and reduced screen colors per MS KB article!

Still have the problem.

Thought I had read about this in WOW at one point but can't find in that KB.

Any ideas? TIA


To the regret of many, the image resizer is gone from Windows Live Mail 2011. Still exists in WLM 2009, though. With 2011 you can no longer select photos using Windows Explorer, resize them and have them attach to your email. The image resizer that did that is gone. Instead, you get a pasted-in image of your picture which shows up in the body of the email. But the attached photo is a full size file which can be many megabytes in size.

I discovered that someone found the way force Windows Live Mail 2011 to behave like Windows Live Mail 2009 and Outlook Express did. You can pick your pictures - one or many - in Windows Explorer, and smaller resized files will be attached to your email. In the body of the email is simply a list of the photo numbers - exactly as it was in Outlook Express and Windows Live Mail 2009. Below is how you do this.

Here is where I learned this:

See the message by CAR who has my everlasting gratitude for coming up with this awesomely simple and efficient solution!!!!!

What you do is create a small text file in the same folder as the one where you plan to get the pictures from. Save with any name - such as SmallTextFile.txt. Now select your photos - one or many - and include your small text file. Right click, choose Send-To: Mail recipient, Click that, and you will get an image resize window. Pick your size and click ATTACH. Your email will open with the small file size photos attached. You will *not* see the images of your attached photos in the body of the email. You will just see a list of photo numbers. You can now go up to the attached files and delete your small text file and go into the body of the email and delete the name of the small text file so people won't be looking for it.

The beauty of this is that you do not use an external resizer which causes you to have to save the small resized photo files someplace - possibly right in with your full size files in your Windows My Pictures folder (or whatever you've named it). So these extra small files are not sitting there taking up space.

The danger is that Microsoft will discover this workaround and wreck it.

Interestingly enough, though, that means the image resizer IS hidden in Windows 7 somewhere. Anyone able to take a crack at locating it? I'd like to get my hands on it. Maybe there is a way to put it into the next version of WLM if they circumvent this workaround and ruin it.

After working fine for almost a month after a major system restore and virus purge, I am now getting emails stripped of the header, but mostly email from yahoo, rocketmail and some emails are transferring to the computer when outlook is started and are going into the inbox, some to junk mail, without the to, from, subject and date in the email header and the message body contains the entire email in html code as text, and any attachments are stripped. When I check the webmail site prior to opening outlook, the messages are ok, but as soon as outlook receives them they are screwed up.

I can forward the email from the service to a gmail account then forward it back and get the email as a forwarded ok, but attachments are stripped still.

I was hit by a Trojan called Auleron.A (spelling) a month ago and got rid of the Microsoft Security Essentials my sister had and used Malwarebytes then McAfee to clear the machine and now have the new McAfee. Full scans still clean. I don't want to disable the email scan but wonder if that is what will be needed.

I use:
Windows XP Service pack 3
Outlook 2003, set to not view as plain text
McAfee's latest and greatest virus software

As a Realtor my sister has to get the emails without all the hoops to jump through. Please has anyone else seen this or am I missing the problem?


Remember that you can watch any of the videos in 720p HD!

My mum loves Windows XP and pretty much doesn't want to use anything else. Windows 8 has been released and obviously she will need to update her operating system eventually. Before she updated to Windows 8 however I let her try it out first on my own computer to see if she liked it. SHE HATED WINDOWS 8 and here's the video showing her using it for the first time:
A mother struggles to use windows 8 for the first time - YouTube

When I posted a link to that video on this forum a week ago, a user named "strollin" left the following comment:

"What's the point of these type of videos? If you sat someone down in front of a computer running XP, OS X, Linux or whatever and told them to start using it they would have a similar experience."
-Original Forum Post Here

Really? Well... I decided to put this to the test. Strollin said that if I put her in front of Linux she would have a similar experience. So to see if he was right I downloaded and installed the most popular distribution of Linux available: Ubuntu. And guess what... SHE LOVED IT and is going to use Ubuntu rather than Windows 8 when she gets a new computer. These were the tasks I got her to complete within Ubuntu which she did easily without any help unlike the struggle she went through with windows 8:

Tasks Given:
- Change your desktop background
- Visit the gmail website
- Write and save a text document
- Quit Firefox
- Calculate 680 x 45 =
- Find where your downloaded applications are stored
- Turn off your computer

Here's the video of her using Ubuntu for the first time:
Mothers First Ubuntu 12.10 Experience - YouTube

So that just goes to show that Windows 8 is less user friendly, less intuitive, uglier and harder to use for a windows user than Ubuntu. You know somethings wrong with windows 8 if a loyal windows user has more difficulty using it than another operating system altogether.

Now I've pretty much knocked about and bullied Windows 8 a lot in this topic making it look bad so what do I think of it? I actually like it! Today we are moving away from desktop computers and towards tablet computers. For me windows 8 on a desktop computer is a massive NO NO but on a tablet its awesome. Its optimized for touch screen and I'm going out next year to buy a Microsoft Surface with Windows 8 Pro.

Points to discuss:
1. Will you upgrade your desktop computer from an earlier version of windows to windows 8?
2. Does windows 8 suck on desktop computers to compared of previous windows operating systems?
3. Would you prefer to run Ubuntu on your desktop computer rather than windows 8?
4. If Ubuntu was compatible with everything windows 8 was compatible with would you prefer to use Ubuntu?
5. Which operating system (Windows 8 or Ubuntu) looks better on a desktop computer?
6. What other operating systems would you like to see her try?

In a fast paced world, three years after Windows 7, Microsoft’s upcoming successor OS, Windows 8 remains a hard sell. Does that mean it is not worthy of the buzz and hype?

Browse a tech magazine lately? Check out a news site about technology? Chances are, you will read something about Windows 8. Just two weeks ago, Microsoft released the Consumer Preview for Windows 8. It hasn’t even hit store shelves yet, and people are already complaining. This is nothing new in tech circles: Everyone is resistant to change. Sometimes, that resistance to change can be helpful, and even good feedback for developers. Other times, it can result in a shouting match that just remains unwinnable. But like many things, thinking in absolutes is often deconstructive, and seldom objective. Business men and women will judge Windows 8 with business acumen; savoring each bit of financial data and sales indicators to prove a point about the new system. Decision-makers in IT circles will look at security and reliability before weighing in with a more structured cost-benefit analysis that deals in infrastructure. Home users are likely to place more value on aesthetics, performance, and ease-of-use as major factors in the upgrade model.

It is the middle of the month: March 15, 2012 to be precise. It is hard to believe that already three years have gone by since the release of Windows 7. Many IT business people, including server administrators, are just starting to become acclimated with the Windows 7 client environment, its off-shoot productivity software, and the Windows Server 2008 family of products, including Windows Server 2008 R2. In one worldview, short and steady wins the race. While more tech savvy companies clearly saw the benefit of migrating quickly upon release, many SMBs, mid-range companies, and home users remain in a Windows XP limbo – either due to the economic mess that most of the world is dealing with, budgetary constraints, or simply a lack of knowledge about how to port all of their important data over to a Windows 7-based network. But as time has gone on, these groups are a minority, for as much as is known. While much of the third world may still be using Windows XP, and even older systems, it is difficult for that data to be chomped up and read by skeptics and true-believers. In agrarian, rural, and largely undeveloped lands, Internet access still remains a commodity that is seldom traded, and where mobile phone companies continue to make inroads.

Back here in the west, the difference is noticeable in how a company conducts its business, especially when you walk into one running Windows XP and Server 2003. It is not uncommon to see pending Windows Updates on every workstation, versus an up-to-date Windows 7 network. If the IT tasks are outsourced, how that time is spent, and for what purpose, will likely face scrutiny and prioritization. For instance, the administration of an important database may take precedence over the application of client operating system updates. Many system administrators may simply ignore, or be unaware of, the capability of domain controllers and file servers to push out updates across the internal network using WSUS. In many offices, however, you will be likely to find a hybrid network. With a lack of EOL policy and strategy, many businesses end up with certain departments stuck between Windows XP and Windows 7, and that difference takes place when they purchase new hardware – not due to a timetable, but out of necessity. A hybrid network of these systems is not exactly the best medicine for either a business or group of home users who rely on their Windows computer systems day-to-day activities, but it may be better than nothing.

A Trip to Seattle: Home to 90’s Alternative Music, Starbucks Coffee, and Microsoft
On April 1, 2011, I received the Microsoft MVP award for Windows Expert – Consumer. It was a real treat to know that Microsoft had recognized my contributions in the form of setting up forum websites and participating in them. I was certainly very thankful for the award, and presumably happy to know that I could continue to do what I do best, as that is why I received it. I wasn’t the first to be recognized by Microsoft for my contributions to my own website: Ross Cameron (handle: kemical) became one of our first Microsoft MVP’s. One of our former members, Greg (handle: cybercore), had contributed thousands of helpful posts on and was nominated. As time went by, we were fortunate enough to see other MVP’s join our website, including Shyam (handle: Captain Jack), Pat Cooke (handle: patcooke), Bill Bright (handle: Digerati), and Ken Johnston (handle: zigzag3143). These people are experts in their field and genuinely reflect an attitude of altruism towards people. Such traits are hard to find, especially over the Internet, and in a field that is driven by individual competitiveness that forces group cohesion as a necessity. I started communicating with one MVP as a result of a disagreement, but have since gained an enormous amount of respect for her: Corrine Chorney, the owner of SecurityGarden. When I made a video that contained an error or two, about ESET Smart Security, I was suddenly contacted by a fellow MVP: Aryeh Goretsky. These types of people live and breathe technology, and thus, even having a brief e-mail exchange can be a breath of fresh air. It becomes recognizable and clear to me that Microsoft’s selection process and choices for those who receive this award is hardly based on pure number crunching, but on gauging a person’s enthusiasm and demonstrated expertise in a field. Understanding how that translates to a much broader audience is compelling. To me, this is a good thing, as it shows that even one of the world’s most successful corporations, in this case Microsoft, perhaps in one of the few acts of selflessness that one could expect from a multi-national corporation, finds customers who have made a mark in information technology and celebrates that. I become hopeful that they recognize the countless others who make contributions on a day-to-day basis. With half a dozen certifications under my belt, and nearly a decade and a half of experience, I am but one person. And for every Microsoft MVP I have met, their dialogue always translated into real energy and enthusiasm. How many countless others have not received an award, or merit, for helping someone “fix their box”? I suspect that number is in the millions. This in no way belittles the award, because to me, such an award really is about helping others.

Often times helping others is giving someone your opinion: even if your opinion runs contrary to running a system consisting purely of Microsoft software. One example is Windows Live: I have a fundamental disagreement about how I chose to use Windows Live, and whether or not I want Windows Live Services embedded into my operating system experience: something that home users with Microsoft-connected accounts will notice almost immediately upon starting the OS. I do not, in any way, undervalue the development of these services, or their potential market value to consumers. I simply have a difference of opinion. And this should no way diminish someone’s ability to receive an award. I am not an employee or pitch man for Microsoft products, but someone who conveys his own thoughts and expertise in that area. To me, the award would have little value if I was expected to tout the benefits of using Microsoft Security Essentials over a paid anti-malware suite. I think that even the developers of the software themselves would take exception to misinformation. And to Microsoft’s credit, they have asked me nothing of the sort. To me, that is a fundamental sign of an award that encourages community participation and expertise in a given area of technology, from a company that is now expected to set standards on the world stage.

Not everyone made it to this summit: For many of them Redmond, WA is far, far away. For me, living in New York, that also rings true. But it sure are the people who make it worthwhile – even when you’ve never met them in person, the way they behave and conduct themselves, towards you, speaks volumes. And so I’ve learned a lot from every Microsoft MVP that I have met – both online and off; in a five minute conversation, or a fifteen hundred word e-mail.

During the Microsoft MVP Global Summit in the Seattle-Bellevue-Redmond area, I had the opportunity to meet some of the most interesting and eclectic groups of people in information technology that I’ve encountered in years. Truly, the revolution taking place around technology in Seattle, and its famous campus grounds located at 1 Microsoft Way in Redmond, is in no way limited to laboratories that are seldom, if ever, open to the public. Quite to the contrary, acclimating with Microsoft’s extensive community of worldwide supporters and individual contributors doesn’t just result in hearing success story after success story (although that is fun too). Of the thousands of people invited to the event, from all over the world, including Japan, Asia, Indochina, North America, Brazil, and the world at large, I found myself welcomed by a remarkable group of individuals. These men and women were of no traditional demographic one would think of – in fact quite the opposite was at hand. At 29 years old, I met kids younger and more successful than myself, who had generated their own start-up firms. I also met much older men and women, who witnessed the transformative nature of technology and got involved, one way or the other. These men and women came from all walks of life, but I am reminded, in particular, of a few of them I met who had a real impact on me. As someone who had come so far to be a part of this event, I did feel uneasy knowing that I was there alone. The individuals I met at the summit were polite, courteous, helpful, and informative. It was not difficult to see why they are considered experts in their field.

Whether the issue for them was something simple, like MP3 players like Zune, the Xbox, MS SQL, or the Microsoft Windows family of client and server products, this entire network of community supporters really outlined why Microsoft continues to have far-reaching success around the world. The level of enthusiasm for their technologies is clear, concise, and breaks down the traditional barriers of race, color, nationality, and gender inequality.

At that summit, I was witnessing not just what technology would be capable of doing in the future, but as a first timer, I got to see with my own eyes what it had done for just about every participant I was able to strike up a conversation with. Having been severely jet-lagged and exhausted from my trip, I travelled all the way from New York City to Seattle-Tacoma airport in a few hours. Having travelled, for the first time, outside of my own time zone, suspended at 38,000 feet in the air, I found myself dizzy, drowsy, and often times downright sick once I got off the airplane. It was something really unfamiliar to me, but in a way, strange thoughts began to fill my head. I realized that in Seattle, it nearly almost always rains once per day. There is certainly less sunlight there than in New York. Perhaps this lack of sunlight had inadvertently made people more likely to turn on a computer and create some kind of innovative programming. It was a silly thought, but staring at the horizon in the distance, I could not help but think about Mount Rainier, Lake Washington, and the land I was now interconnected with. In many cases a landmark home to science fiction, Seattle’s own Space Needle is a national treasure. A marvel of all aerodynamic ingenuity west of the Mississippi River valley, the Space Needle is essentially a giant UFO-shaped tower that is capable of housing restaurants, sight-seeing tours, and shines a giant beam of light that was part of the original design, but was only recently added.

Perhaps, I thought to myself, this is how the term “cloud computing” had caught on. With a lack of major sunlight ever permeating this area, to my knowledge, and with rain and humidity always on the horizon in a constant lake effect, it suddenly made sense to me how the area had become famous for its murky alternative rock grunge music in the 1990’s, the Jimi Hendrix Experience, the evangelical computer programmers, and a number of activities, like concerts and music performances, that are usually held in-doors! In a way, it all made sense to me now, and I spent a great majority of my time taking in the sights, sounds, and hospitality of an entirely different area of the country. The most populous city in the northern United States is also home and origin to Starbucks. It all began to make sense to me that it would be here, more than anywhere else in the USA, that they would need fresh coffee beans from Jamaica available at a moment’s notice. And as humorous and sophomoric as that may read, I still think there is some truth to this.

This summit was my first experience with my Microsoft MVP award for Windows IT Expert – Consumer on the road. It was certainly a bumpy ride, and I did not take advantage of all of the event activities I could have. Windows product group experts and Microsoft employees were available, nearly from the break of dawn to the dark hours of night, to provide on and off-campus sessions to enthusiastic individuals. Looking back, the path was worthwhile. While most of the people I met had embedded themselves in this event for many years, I was certainly a newcomer. Determined to act the part, I tried my best to overcome the massive jetlag I had encountered, and vowed to myself to never eat sushi after getting off of a six hour flight again. Who could not be anxious when arriving in such a foreign place compared to the east coast of the USA? I have certainly flown and driven up and down that area most of my life, visiting nearly all of the north and south, but I had no idea what to expect near Redmond. An acquaintance of mine from Los Angeles was able to help me deal with the insomnia and time difference that comes with this type of travel, and she probably helped me in a way that she still doesn’t know – all from a few text messages. I am constantly reminded that technology itself has made us all interconnected, no matter where we are. At the Microsoft MVP Global Summit, what I did find were individuals, many of whom who had a certain selflessness about them, and a desire, above all things, to learn more, experience more, and help even more.

Upon immediately striking up a conversation with anyone at the event, it was absolutely easy to see how these men and women achieved recognition of excellence from Microsoft. While many young people who attended the event had created innovative ways to help others by setting up websites or studying the inner-workings of the Microsoft entertainment platform, others had been part of the commercial information technology circles and big businesses that have changed the environment of the Internet. I even caught a glimpse of two individuals who appeared to be working for a former web host that one of my websites was hosted on. These businesses, powered by ingenious individuals, have swept the Internet. And while many people appeared to be there as part of a corporately backed package, it was clear to me that most others had made a name for themselves by creating their own platform for innovation and success. Most important, and pronounced to me, was that each and every person there reached that point through acts of selflessness -- for helping others. In each and every instance, you could go around the area and know that you were surrounded by people who could speak your language: whether that be ASPX, XML, C, PHP, JavaScript, or BBCode. While a person there from Asia may not have had any comprehension of what I was talking about if he did not speak English, if I showed him Process Monitor in Windows, I could probably communicate with him on some technical level.

To contrast that, I came home to an environment back in New York where the Windows 8 Consumer Preview had just been released. It was no surprise to me that Windows 8 had been getting some slag for replacing the Windows Start Orb and Start Menu with the Metro User Interface (Metro UI). Windows 8 still has some major feature improvements going for it. This early in the game, there is no question that many of these features have likely gone undocumented, exist under-the-hood, or simply have not reached a stage in development that was acceptable for the Consumer Preview. First, it is important to note that the Consumer Preview is as much of a beta release for public testing as it is a marketing tool for Microsoft. When we examine how this has been released to the public, it is not hard for me to conclude that it is also a way to gauge public reaction to the first serious and inherent differences to the way the Microsoft Windows GUI has been presented – ever. Other operating system releases have taken the idea of the Start Menu and added search capabilities and refined a core concept. Slowly, but surely, we see an improvement that has occurred over time, with the look and feel of Windows remaining consistent over the ages.

The Consumer Preview Was Released To Test Your Reaction; Not Just The OS

In fact, this is a public release of Microsoft Windows to appear in limelight, in what is essentially a beta (and presumably near release candidate stage), with some features either completely omitted or broken. But not all is lost for Windows 8. There are some under-the-hood changes that show promise. I am not a Windows developer or programmer (most of my tinkering involves Linux, C, HTML, PHP, and JavaScript), but I can start to appreciate the level of changes that are being made on a core level as I get more time to become acquainted with this system and allow various whitepapers and documents to enter my lexicon.

Those looking to upgrade, or who will receive the upgrade already as part of a plan, like Microsoft VLK Software Assurance, will reap some benefits by making the upgrade to Windows 8. Businesses that have been around long enough will be familiar with creating and following a comprehensive End of Life (EOL) cycle plan. Such plans are usually coordinated between an enterprise administrative team that manages the day-to-day changes of internal certificate authorities, domain controllers, and mail servers. This group usually (and hopefully) has the training and forethought necessary to look at the official Microsoft release timetable, as well as the support for commonly used hardware and software. Assessments can be made to better understand how, where, when, and why this software and hardware is deployed, and under what conditions it is upgraded or phased out entirely. Not only does this level of planning bring clarity to what could otherwise become a source of enormous administrative overhead, but it also helps to mitigate the risk associated with allowing systems to continue running under-the-radar and without proper security auditing. Under such a scenario, businesses may choose to have their internal IT department perform network-wide audits of all systems. It is an affordable alternative to bringing in an outside specialist, and comparisons with Microsoft’s official support timetable can help make the transition to new hardware and software – as well as what comes with that -- such as training and significant infrastructure investment -- a more conceivable possibility.

Home users can depend on a much more simple approach, and that is to monitor requirements needed for tasks like school, work, and entertainment, while keeping up-to-date with Microsoft’s in-band and out-of-band security patches. As mentioned previously, Microsoft already publishes a roadmap to indicate when mainstream support, and even updates, will be terminated for their operating systems. Combining all of these ideas together, it is not unreasonable to come to a conclusion that one can continue using Windows 7 for a few more years without much difficulty. When the time comes, an upgrade will be made easy, as the large system manufacturers and independent system builders will, no doubt, bundle OEM copies of the system after RTM (“release-to-manufacturer”). On the side, one could begin to upgrade a small office or a home network with new computers when the need arises, in order to take advantage of the new feature set that is sure to be setting a precedent going forward.

Very large enterprise networks usually already make use of proprietary, custom software and hardware. Those businesses can begin the transition planning in phases, and will have access to fully licensed Microsoft support personnel who work in the corporate sales division of the company. Those resources can be accessed by standard enterprises (approx. 200 clients systems) and by mid-range offices (approx. 50-200 client systems) using Microsoft Gold Certified Partner program members that also specialize in employee training, resource management, and all-inclusive maintenance plans. Even a few well-trained and certified IT consultants and managers could handle a migration and post-migration scenario with the right level of planning and funding.

Stay positive, here is some deductive reasoning as to why not all is lost, and how the feature improvements that Windows 8 customers will benefit from may actually start to appear after the OS hits store shelves. (The kind of stuff that may not be readily apparent in the incomplete Consumer Preview version):

Virtualization Scores A Win

Hyper-V Virtualization included in Windows 8 will allow you to take your computing experience to the next level. If you are not entirely enticed by the prospect of running Windows 8, or still have a co-dependent relationship with legacy applications, Hyper-V will be sure to help you in that area; much like Microsoft Virtual PC brought Windows XP onto the desktop for many Windows 7 users. While Hyper-V isn’t about to take the throne away from VMWare’s line of virtualization products just yet, especially Workstation and ThinApp, expect to see the inclusion of Hyper-V as an experience that has the potential to compartmentalize the installation of applications – even really old ones. With Hyper-V and Metro as platforms likely to be directly controllable and manageable from Windows Server 8, IT admins can rejoice at the concept of virtualizing what is left of the desktop – and preventing inappropriate use of computer system resources at work. With full control of Metro and Hyper-V under Active Directory, system management is about to get a whole lot easier. Windows 8 fits as the one OS that office managers can control directly from Windows Server 8 without remorse. Limiting access to the desktop will reduce headaches for employees who may only be obligated to launch specific company-approved Metro apps.

Metro: The User Interface Revolution
Metro UI will not be alien to anyone who is old enough to remember Microsoft Encarta, or to any youngster who has already owned a Windows Phone. I still remember using Microsoft Encarta’s slick navigation system to look up John F. Kennedy’s 1961 inaugural address. This was one of the first times I saw decent video footage in an encyclopedia. Back in those days, everyone was on dial-up, and an encyclopedia like Encarta was the be-all and end-all of factoid finding for non-academics and kids still in grade school. So expect Metro-powered applications, programmed in C++, C#, HTML, JavaScript, and even VisualBasic. This programming platform, dubbed, Windows Runtime or WindowsRT for short, is object-oriented and just getting started. With enough knowledge of HTML and JavaScript, many people out there with limited knowledge of C++ could create some pretty snazzy object-oriented apps that make use of jQuery and YUI hosted over the web. With the launch of the Windows App Store, don’t be surprised to see some amazing third party apps put long-time industry staples to shame. Once you start looking into the development platform for Metro, then you start to realize that it isn’t just a gimmick for touch screen users. Ostensibly, a great deal of time developing the .NET Framework is about to pay off, in bundles, for everyone who starts using Metro.

Gamers Not Doomed; HID Development Pushed Forward by Windows 8 OS
Gamers likely won’t be left out of the picture. Metro apps are designed to run in full screen, and as all hardcore gamers know, most high intensity games actually throw you into full-screen mode any way. The difference is likely to be negligible, but who wouldn’t like a concise way to manage all entertainment software and keep it running in the background every once in a while? Single player games that enter the market as instant classics like TES: Skyrim could suddenly appear more interactive in the future. Don’t be surprised to see some form of Windows 8 incorporated into the next version of Xbox (Xbox 720?) with DirectX 11 support. It would be nice to see cross-compatibility with the Xbox and Windows PC. Imagine if you could run any console game on a PC and vice versa: Now that kind of unification would prevent a lot of people from buying all those Media Center extenders and going wild on home entertainment systems. Only time will tell how far Microsoft will take us down the rabbit hole. For gamers, that is a great thing.

Multi-monitor and multi-touch support will bring Windows 8 to tablets and phones like never before with certified Metro applications that are programmed for Windows Runtime (WindowsRT). Expect a lot to happen in how we use our desktop and laptop systems. While major advancements in human interface devices are years away, it appears to be one of the major cornerstones of IBM Research and Microsoft Research. Unification across platforms is a recipe for redundancy, but in the case of sensitive data, redundancy is a very good thing. We want to be able to access our office files from home and our home files from the office, without necessarily having to do cartwheels with third party software. The integration of SkyDrive, and ultimately, shell extensions for third-party apps like Dropbox, is a given. Microsoft is never going to take over the cloud-hosted backup market, but they could pull off a pretty neat way of sharing, updating, and collaborating on projects between tablets, phones, desktops, laptops, game consoles, and more. Kinect for Windows is going to be scoffed at in the beginning, but once everyone has such a device linked up to their monitor, moving your hand around to change the active Window on your computer isn’t going to be that bad of a trade-off. In 2009, I gave a speech to a number of people in the public sector about what I saw as the cornerstone for future technology. That presentation included the fact that a device like the SmartBoard would be obsolete within five years’ time, due to the decreasing price of touch screen computers, and the ability for computing devices to detect human movement. While it didn’t go over well with the locals, it is happening, right now. That is something to be excited about. Whatever touch screen advancements Microsoft introduces with Windows 8 will once again push the hardware market to accommodate the software. This means all sorts of new human interface devices are already in development, even from third parties (see: Google Goggles/Google Glasses as one superlative example).

A New World for Software and Hardware Development

It’s not just a Microsoft world: Software companies, game studios, and all sorts of IT companies depend on the reliability and performance of Microsoft products and services, even when their customers aren’t in Microsoft Windows. This happens whenever an e-mail passes through an Exchange server, or a large database is designed for interoperability between a metadata retrieval system and Microsoft Access. Companies that specialize in document management, database administration, and even brand marketing will reap massive benefit from an interface that contains a display mechanism that has the potential to plot and chart raw data into something visually understandable. For example, if I tell you we ordered a hundred pizzas, each consisting of eight slices, and we only have 10 minutes to finish 25 slices, you’re going to wonder how many pizzas we have left. Once data entry software, even stuff that was initially designed with a Mac in mind, is designed for Metro, we’re not just going to be able to see how many pizza slices we have left – we may have the option to order some extras, or watch other people eat the ones left in 10 minutes. It’s that kind of world we’re delving into. We don’t see how great Metro can be: Only because software companies known for their great innovative capabilities like Google and Apple are just getting started on WindowsRT and Metro. This stuff is not going away, and when all the great innovator’s in the world get involved, we’re going to see sparks fly off the third rail.

Negativity Bias
Many people who try the Windows Consumer Preview may be inexperienced with running beta software. And when your whole operating system is a big chunk of bugs, in many cases unbranded, and in some cases feature incomplete, there is going to be a heck of a lot to complain about. I admit that I’m one of them. Take a look at my post about Windows 8 being a platform to sell Windows Live connected services. Well, of course that is what Windows 8 is, but it has the potential to be much more. Studies show us that, on average, people tend to remember a negative outcome 2.5x more than they do a good one. That means you’re 2.5 times more likely to remember when you got a bad haircut then when you got a good one. You’re 2.5 times more likely to dwell on the day you lost your job, than you are to remember the years you spent at the very same job when you contributed an enormous amount of productivity to the company’s bottom line. You’re 2.5 times more likely to remember that turbulence on the airplane. It was unbearable for ten minutes, and now you’re 2.5 times less likely to remember the time you struck up a great conversation with someone on that long flight. You’re 2.5x more likely to remember that woman or man who rejected you on that first date then you are to remember the laughs you shared going into the restaurant. This negativity bias is something we usually learn about in the first or second year of undergraduate psychology, but very few of us even remember or know what it is. In general, your body is trained to remember when bad things happened more than good things, and actually dwell on it. It is truly a response from the Stone Age, and is a very healthy response. It keeps you in balance. But in today’s high tech and demanding world, it can be taken too far.
So yes, we can look at Windows 8 and positively say, “Maybe this thing won’t be so bad. Maybe I can learn it, and enjoy it.”

The True Test: Greater Than The Sum of Its Parts?

Don’t forget that Windows 8 will include a Start on Demand model for all system-related services. For years, I found myself sending Windows XP, Windows Vista, and Windows 7 customers to a web page called Black Viper ( This site contained detailed guides on how to configure your Windows operating system to use as few services as absolutely necessary. That site became especially popular during the Windows Vista release. Essentially, the site goes through every single service running on your system and will tell you, not only what the default start setting is for it, but how best to optimize it to suit your needs. If you were trying to squeeze every last drop of performance out of the operating system, without much care for its ability to perform certain operations, you could always use BlackViper’s “Service Configurations” lists to decide whether or not it was safe to make sure that something like the Distributed Link Tracking Client service or the World Wide Web Publishing Service could be completely disabled or not. If I haven’t lost you on this one, Microsoft has come up with a novel solution that is sure to improve your experience with Windows 8, and that is by using “Start on Demand”. Under Start on Demand, when Windows 8 needs a service, it launches it – only when. So that, in and of itself, will save resources. And when we look at what is coming up with memory deduplication, we are looking at true advancement in operating system performance at its most basic level.

Yes, the Consumer Preview is flawed, but for all its flaws, let us all think about these things and realize that the best is yet to come for an operating system ahead of its time.

Page 1 of 12.
Results 1...20 of 228