add on failed to run Results

Page 1 of 8.
Results 1...20 of 153

Sponsored Links:

I keep getting the annoying message "Add-on for this website failed to run. Check the security settings in Internet Options for conflicts". I have everything enabled except those that are not secure (pink highlight). What items should be checked? How do I find the add-on that is trying to run? Yes, this is a safe site, I've been using it for about nine years but I just started getting this pop-up recently. Thanks.

I have Windows XP SP3 and IE8. Also recently I have had the RAM increased to 1.25 GB.

Almost since then with IE8 some websites giving me this "An add-on for this website failed to run. Check the security settings in Internet options for potential conflicts".......BTW, no problem with Firefox.

I have read various articles on the web and played about with "Security Settings" of IE8 but no avail.

Any suggestions please?

Hey all,

Occasionally when I start up my HP ProBook 4520s I get an error saying
"Failed to connect to a windows service. Windows could not connect to the System Event Notification Service service. This problem prevents standard users from logging on to the system. As an administrative user, you can review the System Event Log for details about why the service didn't respond.". When this happens all task bars go grey and there is no longer a Windows theme. Basically looks like a really old version of windows. Also when I try restart it takes about 15 minutes to reboot. Most of the time a reboot fixes the problem temporarily.

I tried looking in the system log, but there are so many items from the last 15minutes and I cannot figure out which one corresponds to the error.

Has anyone experienced anything like this before?

Thanks in advance. Attached Thumbnails   Share Share this post on Digg Technorati Twitter
Reply With Quote .postbitlegacy .postfoot .textcontrols a.post_info_button, .postbit .postfoot .textcontrols a.post_info_button { background: url(/images/post_infobox.png) no-repeat transparent left; padding-left: 20px; } .postbitlegacy .postfoot .textcontrols a.post_info_button:hover, .postbit .postfoot .textcontrols a.post_info_button:hover { background: url(/images/post_infobox-hover.png) no-repeat transparent left;   JavaScript must be enabled 05-08-2012 #2 zvit Tier 2 Moderator Enjoys Windows 7 Forums  
Join Date Nov 2009 Age 40 Posts 1,246 Re: "Failed to connect to a windows service" on startup Some things to try:

Try doing a System Restore at boot using a restore point dated before this error to see if it fix this.

Start computer in safe mode.
logon on to administrator.
Click the start button
Search "cmd.exe"
Select it and then "ctrl - shift - enter" to allow elevation request
Type in - "netsh winsock reset" press enter
Then Restart your computer

Your firewall might be stopping the connection. COMODO is the worst for this. Try shutting down the firewall and reconnecting.

Add the DNS and IP address in your file C:WINDOWSsystem32driversetchosts (open in Notepad) To do this:
1) Got to START/RUN and type in CMD
2) Ping to the DNS address, like Giveaway of the Day - free licensed software daily. Today: ThunderSoft Flash Gallery Creator 1.0 - ThunderSoft Flash Gallery Creator is a software easy to use to create business web photo gallery, interactive flash gallery. Provide ... Note the IP address
3) Open up C:WINDOWSsystem32driversetchosts (again open up with Notepad) and enter in the IP address followed by the DNS address (without the http://) and save the file. Now try to reconnect and see if it works.


If you have a wireless printer, remove it and restart.

If any of these don't help, get back to us.

I have a problem....

I have two programs that I need to run when the PC is on late at night.

I have my BIOS set to boot up the PC @ 1AM every day; then I "wanted" to run the backup and virus scan automatically then use shutdown.exe to shot down the PC @ 4AM.

Here is the problem...

First I am a novice at Windows 7 security and that really ruins my chances... if anyone helps I may need step by step because of my novice status.

CLAMWIN can run as a comamnd line but cannot scan my user folder (C:Usersxxxxx) due to security restrictions.

SEAGATE MANAGER (FreeAgent) cannot run as the command line at all. Seagate Manager MUST run when the user is logged on. I also imagine this tool will have security issues as well.

First, I was trying to create a second standard account on the PC then have the seagate manager run normally and then have the virus scan run from the clamwin scheduler. The reason I used the standard account is because i needed to have the password remvoed so the PC could boot into it; I then setup the time restrictions on it (to avoid it getting used for anything else). Well as you may already know this did not work. The first problem is the one mentioned above (clamwin could not get to my user folder to scan it). I tried to set it up to run as administrator but it failed. Clamwin ran but did not find any files to scan.

I then tried to create an administrator account and add the parental control (time) and could not.

I am lost....

I really want to have the PC boot into an account... run the virus and backup then log off (@ 1AM) but I cannot seem to figure out any way to get this to work.

Any thoughts????

I even thought of uninstalling all the SEAGATE crap and just find another backup utility to do the job... can WIN7 do this???

Anyway, please help!!

Hi guys,
I come back to you after some time away in a happy place where tech support is never needed, once again humbly requesting your expertise.

When my laptop hinge busted, I salvaged the HDD and decided to mount it in my next desktop build and use it until I bought another HDD to sell it with. This drive was partitioned with a dual boot of Win7pro64 and Backtrack 5r1 64, both were pretty well maintained, no foreseeable issues with swapping the drive, right?

Well, we seem to be having some technical difficulty, on both fronts. As this is sevenforums, Ill restrict this to my Windows 7 issues, but for any bilingual folks out there that are interested, I'm posting the other half of the dilemma on linuxquestions, sparing them the windows part of it lol. Ill add a link to it once its up.

Okay so here is the hardware setup I am working with.

Asus M5A97 mobo, amd970/sb950 chipset, is rated to support all components
AMD FX-8120 CPU Black Edition
16 GB G-Skill Sniper pc3-12800 ram
XFX nVidia GeForce 6800GT 256MB GDDR3 (I can hear your snickering )
Raidmax 630w PSU
Samsung Supermulti Optical
WD Scorpio Black Laptop SATA HDD

Everything listed is brand new, purchased online, save for the HDD of course. The video card was purchased used at the local computer shop, last-minute.

So just let me explain the nvidia card real fast I planned this build assuming my old HD3870 would work just fine, but it went out on me almost right away. I had it hookup up to a coby tv with a 1366x768 resolution, which is what the nvidia card is powering now as well, via DVI-I output to a DVI to HDMI adapter, then through an HDMI-HDMI cable to the tv, same as the HD3870 was (in case any of that proves relevant). My original intention was to leave this setup open for crossfire if I found another 3800 series. I should note that while the HD 3870 was working, I had booted it up alright and gotten to the boot animation for Windows 7 once. It then proceeded to reboot, after which my video card was toast and I could not get a successful POST. Now that the card is changed, here is what I am experiencing.

When I boot up, I get a POST beep, I go into the BIOS, everything is looking tip top. I select the HDD, everythings still going fine. Since I am running a dual-boot configuration, GRUB is my boot manager. I select the Windows 7 Boot Loader, and I have the option to run startup repair or try to boot normally. I tried the startup repair a few times. The first time it said attempting repairs, then said it would reboot and either boot successfully or continue startup repair. It does not boot up fine, in fact, I get a BSOD. I try the startup repair again, only for it to tell me the problem couldnt be fixed automatically. Well it gives me two options, to either view advanced details in a log file of some sort, or to log in to a user account to run some diagnostic utilities.

The log shows no errors of any kind - I went through each instance of startup repair and they were all negative for each category. There was one "root cause" listed for each attemp which said that 'a recent hardware change' may have caused this to happen. I was told by my college professor who holds an advanced certification for Windows 7 that you could swap a Windows HDD to another computer, and all that would happen is most hardware would default to Windows generic drivers, and you would have some short window of time to reactivate Windows within, due to some sort of built in anti-piracy feature throwing up red flags at the substantial hardware change. Have I been ill-informed, or do I have bigger problems than that?

I logged into my administrative account and the options provided are as follows: Startup Repair, System Restore, System Image Recovery, Windows Memory Diagnostic, and the Command Prompt.
Startup Repair just fails and loops me back, System Restore can't find any restore points (very odd), and System Image Recovery is unusable for me since I never made a backup image. I ran the memory diagnostic as well as chkdsk /f, as advised, and neither found any errors. Selecting the Commant Prompt option, my working directiory is x:windowssystem32. I can switch over to c:, and I can access all of my files, personal, applications, and system alike, which appear to be intact (much of this I have verified via examination from my Backtrack/Linux partition).

Well, I've taken the Windows 7 course, and I don't want to screw around with finding the perpetrator behind my misfortune if I don't have to - I'll just do a side by side install, throw everything on c: into the "Windows.Old" folder, and get the ball rolling on re-crafting my setup, followed by some housecleaning. I have my original product key, all I have to do is pop in that install disc, right? Save the day? I could not have been more wrong.

I actually get a blue screen error while booting from the install disc. This is burnt with an iso obtained from MSDNAA, a legitimate copy of Windows 7 Professional 64 bit, the SP1 Debug Rollup. It's what I used to install the Windows 7 that is currently failing that I'd used for well over a year, and the Windows 7 on another machine I'd built. The serial is registered to me and it was all free through my college. When I did my second install, upon activation I asked if I would need to request a new serial since this one had been used, and was told NO, that my serial is MSDNAA specific, usable as many times as I'd like for academic purposes. You cannot even retrieve these from the system using means that would otherwise produce the correct key - it will come back as five sets of five B's. These are the only two times it has been used and this most definitely does not count as a third since it is the same OS, HDD, owner, serial, and disc even.

Circling back to the BSOD, the interesting thing to me is that the exact same blue screen error comes up while booting my Windwos partition as while attempting to boot from CD to reinstall. Is that significant? I know the terminology sort of clumps them all into the same category, but surely there is a correlation, no? I thought perhaps I was going crazy, and Windows had set some bit switch on the HDD that says "Help, I'm supposed to be in a laptop!" but this does not explain the CD.

I have tried to boot into safe mode, have tried Automatic System Recovery (which im given to understand is the same as Startup Repair), but no cigar. ASR behaves as startup repair did and safe mode = bsod. I have attached a picture of the error screen for reference. I have a copy of Ultimate Boot CD for Windows on my USB drive, but there is a plethora of utils and I dont know how to use most of them. If there is a specific tool that could remedy the issue or shed some light on the situation, I can certainly collect info and report back.


Thanks in advance, all you guys!

I'm not certain if this has anything to do with Windows, or my motherboard, or overloading my system, or whatever. But I could use some input.

I built my current system in the summer of 2009. I tried to "futureproof" as much as I could by putting in a Corei7 processor (the low-end, 2.66 Ghz one), an Intel 80 GB SSD boot drive, a 10,000 RPM WD Velociraptor secondary drive, 12 GB of DDR3 1666Mhz RAM which I later learned my Gigabyte GA EX58-UD5 Motherboard DID NOT want to run natively any faster than 1333 Mhz, a 2GB DDR5 ATI 4870 Sapphire video card, and a BD-write drive I already had I'd installed in a prior system, as well as a DVD-writer and a card reader/writer with additional built-in USB ports and an E-SATA port.

This particular motherboard came with 10 SATA 2 ports and 10 USB ports (not to mention more I got with the Coolermaster Haf 937 case I used and that card reader, plus a couple firewire ports (I LIKE lots of connectivity). I never used all my SATA2 ports, although quite a few were hooked up, what with the connections for the case and card reader (which has since bit the dust)...

Anyway, a year or two later, after SATA 3 and USB came out, Newegg had 600GB WD Velociraptor SATA3 drives on sale for LESS than I'd paid for my 300 GB SATA 2 drive, and since I largely used external drives for a lot of my storage, and those were becoming available in USB 3, I found an ASUS card (U3S6 -- PCI-E 4) that had two internal SATA 3 connectors and two external USB3 connectors, and away I went. (I also added an additional internal SATA 2 7200 Hitachi 2 TB drive as a primary file storage drive at that time, with the first SATA 3 external a 2 TB SATA 3 to use as backup.) Those drives all show up FINE when I boot up, but often after a few hours, or a day or two, they'll just "disappear" from my list of drives. I find this QUITE disconcerting, as the 80GB Intel SSD has proven too small, what with the 14 GB WinSXS is now taking up, and I just ordered a 256 GB SSD that comes with Acronis True Image from Newegg to clone it to -- and of course it's SATA3. As I didn't have any more SATA 3 slots left, I also ordered another SATA 3 card. The ONLY slot I had left was a PCI-E -1 slot, which it appears that card is designed for, but as this new drive will be my BOOT drive, with Windows and all my PROGRAMS running off it, I certainly don't need the system "losing IT" in the middle of a session! (Note, the SATA 2 Hitachi drive NEVER fails to show up. Neither do the 300 GB Velociraptor nor the 80 GB Intel SSD, which are all on the built-in SATA 2 BUS).

Any thoughts? I've considered replacing this motherboard, as it's had some issues (BOTH of the two gigabit ethernet connections that came with it petered out, and I had to buy an add-on card to get my gigabit ethernet back (one WASTED PCI slot)! However, I've yet to find ANY other motherboards that have anywhere NEAR the connectivity this Gigabyte board came with. Or is that the problem? Did Gigabyte overload this board?

The other day I thought to update the BIOS on the board, and although it took two reboots, I haven't "lost" any of those drives since (been on, or in "Sleep" mode ever since), so maybe it needed a BIOS update. I also went into the BIOS "Intelligent Tweaker" and toned down any settings that warned might create an unstable system (I was already pretty conservative with those, but I went a bit more conservative).

Any other thoughts are greatly welcome, and I really appreciate anyone who's actually bothered to read all my blathering.

Jeff Hayes

This video covers the basics of setting up a Windows Store app project in Visual Studio 2012 for the Windows Phone 7 app we are going to migrate. We also discuss the migration strategy, scoping the features within the port, and the advantages of using a Windows Store project template as our solution base. For more information on migration, please visit the Migrating a Windows Phone 7 app to a Windows Store app guidance.
The final source code for the WIndows Store App Viewer for Khan Academy is available for download.

Installing the Developer Tools

You can download and install everything necessary to follow along as we build the Windows Store project in this series. However, you must first install a copy of Windows 8. To view and build the project files, you will also need to download Microsoft Visual Studio Express 2012 for Windows 8.

The Khan Academy Phone App

To show the migration in action, we will use the open source Khan Academy Windows Phone 7 app, developed by Joel Martinez. This app retrieves a list of video playlists from the Khan Academy website and lets the user watch them. Our Windows 8 Store app will be called “Viewer for Khan Academy”.
If you’re not familiar with Khan Academy, they are a “not-for-profit organization with the goal of changing education for the better by providing a free world-class education for anyone anywhere.” Their website, hosts thousands of videos over a wide collection of topics and are offered freely to anyone with an interest in learning. They support Open Source data and have a rich collection of APIs that expose their library to the developer community as well.
Joel Martinez is a mobile app developer who created a popular Windows Phone 7 app that accesses this rich collection of videos. By providing his original Windows Phone 7 viewer of Khan Academy app as an Open Source project and writing about the process extensively on his blog at, he has helped developers learn the basics of Windows Phone 7 development leveraging public videos found online.
If you have a Windows Phone and want to try out the original Windows Phone 7 version, you can download it from the Windows Phone Store. The app's source code is also available for download.
The Windows Phone app was developed in Silverlight so uses XAML for its interface syntax with C# code behind. When the app is first run, it calls the public Khan Academy APIs which return a collection of video playlists. In the phone app, these playlists are not organized by topic:

Selecting a playlist brings up a collections of videos, which when clicked send the user to the video player on the phone to stream in the video content:

Joel Martinez developed the phone app with solid logical abstraction following an MVVM pattern. The Phone app also leverages both network calls to the Khan Academy APIs as well as local storage of retrieved data for improved responsiveness:

If requested data has not previously been retrieved and stored locally, the app makes a request to the cloud and stores the data in IsolatedStorage. Updating local storage data with cloud responses is done in the background.

Determining the Migration Strategy

When porting a Silverlight for Windows Phone 7 app to Windows 8, there are several considerations you should take into account. Do you want to migrate as quickly as possible, or do you want to invest more time in the new features Windows 8 makes available? Are you going to want to share as much reusable code as possible, or maintain different solutions per platform? How greatly will the User Interface be affected as you migrate from a smaller form factor to a larger tablet or desktop Interface?

In our case, the Windows Phone app relies heavily on hitting the Khan Academy servers and requesting data as discussed above. It also makes use of Windows Phone's IsolatedStorage. C# 5.0 introduced two new keywords async and await and this Async Pattern is used extensively in modern Windows 8 apps for handling I/O functions. Since our app uses these types of commands extensively, this would be a big change.
While it is possible to convert synchronous methods written in C# that do I/O internally to functions that return Task to a task continuation middle man, this method would be inherited more from the current .NET way of handling asynchronous tasks. We decided to invest in learning the modern asynchronous pattern implementations in WinRT for both handling server requests and storing app specific data. The Async / Await pattern is a significant addition to how all developers will be creating Windows 8 apps moving forward, so after our early explorations, we decided to create a fresh code base.
If your phone app does not use extensive I/O code that would benefit from the new Async / Await pattern, you may wish port primarily your models and view models, versus starting from scratch as outlined in such MSDN articles as
However, in either case, it is recommended that you don't try and bring over your XAML UI files directly. We discuss this further below.

Scoping the Solution

Once we determined a migration strategy for the existing Phone features, we wanted to see what benefits the new form factor and platform would afford. A core design principle for Windows 8 apps is “Winning as One”. This means that to the degree you app can leverage common features provided in the operating system and implemented consistently across apps, the greater the overall experience for the user will be. To that end, the Windows 8 operating system introduces Contracts and other features that apps can leverage to extend their functionality and provide a consistent, polished experience for their users.

While staying true to the functional goals of the phone app, there were three Contracts we wanted to leverage in the port to Windows 8. Since Khan Academy contains thousands of videos that cover a wide range of topics, exposing this data in our viewer through a Search Contract was essential. Once the app has loaded a video, the ability to send a link to a someone also made a lot of sense, so we would add this through the Sharing Contract. Since the primary content of the app are videos, leveraging the PlayTo Contract would allow the user to enjoy the experience on a larger screen if available.
Other than taking advantage of the Contracts made available through Windows 8, we wanted to keep the core functionality similar between phone and tablet. However, we decided to aggregate the information a little better in the Windows 8 version and group the playlists together by topic, something that is missing in the simple list interface of the Phone app.

Working with the Project Templates

To whatever degree you want to tweak versus rewrite your code, your XAML files are a different matter. The general advice is to start fresh, preferably from one of the new Windows 8 Project Templates found in Visual Studio, and then bring in the relevant UI elements under the root node. There are several reasons for this.

For one thing, the platform changes how navigation is handled. While on Windows Phone, navigation is usually handled with the NavigationService object, in Windows 8 it is primarily handled through Frames and Pages. Also, all the form factor considerations of Windows 8, including snapping, orientation and variable resolution support, require a common structure that doesn't exist in Windows Phone. If your existing phone app was designed with good view models and proper use of MVVM patterns, this UI migration will be much easier.

The best way to understand the differences between UI design from Windows Phone to Windows 8 is to open up the blank templates for Windows 8 Applications in Visual Studio 2012 and see how they work. We chose the Grid App template as the basis for our migration project.The Grid App template is a multi-page project that navigates among groups of items, so this template worked perfect for our list of Khan Academy videos.

There are several advantages of using a Windows Store Template as your starter project, instead of simply creating a “Blank Project” in Visual Studio. These include:

A Common Folder that comes packed with very usefull classes and assets to assist in Windows 8 app development, including BindableBase.cs.CommonLayoutAwarePage.cs from which you can inherit your pages and have instant hooks into the system events when dealing with snapping, rotation and orientation.CommonStandardStyles.xaml which gives you a default template on which to extend your app styles and templates.A DataModel folder with provides a strong foundation for data binding and MVVM architecture for your app.
Unlike Windows Phone apps which handle navigation through a URI based navigation service, Windows 8 handles initialization and navigation through frames and container view models.
If you create open up a new Grid App Template, you will notice an App.xaml file. This is the first page loaded when a Windows 8 app stats. App.xaml.cs in turn calls its LaunchApp() function to direct the app to whatever startup page you wish to present.
We took this opportunity to create our data model for the app. With our KhanDataSource created, the common initialization practice is to create a Frame and use it to navigate to your startup page, passing along your Data Model if applicable. In our case, our startup page will be HubPage.xaml. Both the XAML elements of HubPage.xaml and the structure of our Data Model, KhanDataSource will be analyzed more in the next Quickstarts.

public async void LaunchApp( ApplicationExecutionState previousExecutedState){ DataSource = new KhanDataSource(); await DataSource.LoadAllData(); var rootFrame = new Frame();[…] if ( rootFrame.Content == null) { if ( !rootFrame.Navigate( typeof(HubPage), JsonSerializer.Serialize(DataSource.TopicGroups))) { throw new Exception(“Failed to create initial page”); } } Window.Current.Content = rootFrame; Window.Current.Activate();}All the C# templates and most apps will follow this same routine. When an app is launched, App.xaml fires its LaunchApp() event. If a Data Model is required, it may be created at this time and loaded from data either locally or from the cloud, and get passed into the startup page of your app for data binding to the UI. During the subsequent series of Quickstarts, we will look closely at each of these steps and how we implemented them in the Windows Store Khan Academy App.
There are also some great posts on Dev Center that dive deeper into general migration strategies if you want to research the specifics of this topic further:

Migrate/port a Windows Phone 7 app to a Windows Store appRoadmap for Windows Store apps using C# or Visual BasicC#, VB, and C++ Project templates for Windows Store apps
In the next Quickstart, we'll jump straight into working with data and the new asynchronous pattern in Windows 8.
If you have any questions, comments, or feedback feel free to join in the discussion.
Twitter: @rickbarraza, @joelmartinez


In the previous Quickstarts, we have introduced the app and looked at handling data requests and formatting. In this next video, we will look at binding that data to the interface.
Binding and Windows 8 Templates

Data binding plays a central role in the Windows Store project templates available in Visual Studio 2012. For our project, we used the Grid App template available in Visual Studio 2012 as our base for the Khan Academy app. So let's see how this template is setup.
As we discussed in the first Quickstart of this series, creating a new project based on the Grid template will populate your project with sample pages and assets, a common folder of useful classes, and a data folder with a view model all ready to go. The default XAML pages such as GroupedItemsPage.xaml will also be wired up as they will inherit from LayoutAwarePage.cs in the Common folder to common system events of initialization, navigation and orientation.
But also notice the inclusion of a new class called BindableBase.cs in the Common folder. The default Data Model comes with every Template project inherits its collection elements from this class and by studying how the sample pages are wired up to the default Data Model is a great way to get up to speed quickly on Data Binding basics in Windows 8.

Let’s take a closer look at the Data Model for a Grid App Template project, DataModelSampleDataSource.cs. This class has a collection of Groups in an ObservableCollection called AllGroups. Each group in AllGroups contains an ObservableCollection of DataItems. Both the SampleDataGroup and SampleDataItem inherit from the SampleDataCommon class.
The SampleDataCommon class, in turn, inherits from CommonBindableBase.cs, which we introduced above, and which allows all the objects to be bound by the UI controls.

public abstract class SampleDataCommon : AppName.Common.BindableBase In this Grid App Template, when the app first starts and App.xaml loads the landing page called GroupedItemsPage.xaml, the following code is run:

protected override void LoadState( Object navigationParameter, Dictionary pageState) { var sampleDataGroups = SampleDataSource.GetGroups( (String)navigationParameter); this.DefaultViewModel["Groups"] = sampleDataGroups; } In this template sample, we create our Data Model by calling the SampleDataSource’s GetGroups() function, which returns an IEnumerable of SampleDataGroup values. This bindable collection of Groups is then assigned to the DefaultViewModel's Group element.
But what is a DefaultViewModel[“Groups”] element anyway? Remember, these UI Pages we are exploring in the Template project all inherit from CommonLayoutAwarePage.cs:

public sealed partial class GroupedItemsPage : AppName.Common.LayoutAwarePage { public GroupedItemsPage() { this.InitializeComponent(); } […] And here we see the true power of leveraging the Windows Store Project Templates as a basis for projects. LayoutAwarePage.cs is a robust implementation of a Windows 8 app page that provides several important conveniences: app view state to visual state mapping, page navigation event handlers and mouse and keyboard shortcuts, state management for navigation and process lifetime management, and most relevant to us right now, a default view model too:

public LayoutAwarePage() { if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) return; // Create an empty default view model this.DefaultViewModel = new ObservableDictionary(); […] The last piece of the puzzle for binding is found in the resources of the page:

Here, a CollectionViewSource is being bound to the Groups element of the DefaultViewModel, which we just set to the response of SampleDataSource.GetGroups(). A CollectionViewSource allows you to sort, filter and group the underlying data without directly manipulating the data.
Finally, the control on the page that will display the information has its ItemsSource property bound to the groupedItemsViewSource, which is a CollectionViewSource.

Since there are no custom styles yet, the Item Template pulls from some standard templates also found in the Common folder to make everything work. If the CollectionViewSource has properly grouped data and the IsSourceGrouped property is set to true, the GridView takes care of the rest.

The Khan Academy View Model

In the Khan Academy app, we follow a very similar pattern with a couple of changes.
First, as we’ve seen in the previous two Quickstarts, we are instantiating our KhanDataSource View Model from App.xaml directly in it’s LaunchApp() handler and then passing it along when we navigate to our landing page of choice.

public async void LaunchApp( ApplicationExecutionState previousExecutedState) { DataSource = new KhanDataSource(); await DataSource.LoadAllData(); var rootFrame = new Frame(); […] if ( rootFrame.Content == null) { if ( !rootFrame.Navigate( typeof(HubPage), JsonSerializer.Serialize(DataSource.TopicGroups))) { throw new Exception(“Failed to create initial page”); } } Window.Current.Content = rootFrame; Window.Current.Activate(); } When HubPage.xaml.cs, receives our Data Model upon initialization in its LoadState() handler, it uses this Data Model for its own local binding as shown below:

protected override void LoadState( Object navigationParameter, Dictionary pageState) { ObservableCollection items = JsonSerializer.Deserialize( navigationParameter as string); this.DefaultViewModel[“Groups”] = items; this.groupGridView.ItemsSource = items; } Another difference between the KhanDataSource and the default SampleDataSource that comes with Template projects is an additional tier of data. Instead of having a simple collection of groups that contain items, the data returned from Khan Academy is organized by the app into top level Topics ( such as Math, Science, Hummanities, etc.), which each contain a collection of playlists ( Algebra, Arithmetic, Calculus, etc..). Each of these playlists is made up of a series of VideoItems that play the actual lessons.
To add an additional layer of complexity, to achieve a Hub experience in our welcoming page, we wanted to display multiple types of content to give the user a richer selection of items. However, having multiple types of content on the same container creates both a visual and navigational challenge.
For example, most of the groups displayed in HubPage.xaml are made up of playlist objects that have a title and description but no associated graphic.

Selecting a playlist object should take you to the ItemDetail.xaml page.
But we also wanted to feature at a top level videos from two specific playlists, New & Noteworthy and Talks & Interviews. These videoItems do have a associated thumbnail of the video they represent and clicking on these elements should take you to the VideoPage.xaml instead of the ItemDetail.xaml page.

We will discuss how we visually differentiate the styling of these two different types of objects in the next Quickstart. But for now, let us look at how we handle the Items being selected:

void ItemView_ItemClick(object sender, ItemClickEventArgs e) { if ( e.ClickItem.GetType() == typeof(PlaylistItem)) { this.Frame.Navigate( typeof(ItemDetailPage), JsonSerializer.Serialize(e.ClickedItem)); } else if ( e.ClickedItem.GetType() == typeof(VideoItem)) { this.Frame.Navigate( typeof(VideoPage), JsonSerializer.Serialize(e.ClickedItem)); } } Since we are sharing a data binding between two different types of content, we query the type of the item and pass the clicked item to the appropriate page.
If the user selected a video, we would go to the video player page which uses the video player from the Microsoft.Metro.PlayerFramework referenced in the Project. Selecting a playlist, though, takes you to the ItemDetailPage.xaml to show you the list of videos in that list. The data binding on the ItemDetailPage.xaml page works the same way once it receives the serialized ClickedItem as a navigationParameter in its LoadState() method.

protected override void LoadState( Object navigationParameter, Dictionary pageState) { PlaylistItem playlist = JsonSerializer.Deserialize
( navigationParameter as string); this.DefaultViewModel[“Group”] = playlist; this.DefaultViewModel[“Items”] = playlist.Videos; } The other pages in the Khan Academy app follow the same pattern. An item is selected, the app's Frame then Navigates to the appropriate Page, passing the selected item as a parameter, and finally the loaded Page parses the passed in object, and populates its local View Model with the appropriate data.
Now that our components are displaying the appropriate data and navigating to the correct Pages, it's time to add visual identity. In the next Quickstart, we will look at custom styling.
If you have any questions, comments, or feedback feel free to join in the discussion.
Twitter: @rickbarraza, @joelmartinez


Hey guys!

I've been looking all over the internet for some help on this problem of mine without any real luck, so I'm hoping someone here can help me out.

My problem is that sometimes when I start up my computer (from both hibernation and shutdown), windows freezes(sort of) on startup. It will start up after quite some time and everything seem to be running in slow-motion. I can move the pointer and perform actions in 1-2 sec intervals with about 5-6 seconds between them.

When starting up in safe-mode it will freeze totally upon loading the file CLASSPNP.SYS.

At first I was concerned about some hardware malfunction, but since everything works fine on Ubuntu (dual-boot) I assume this is a software error.

The only fix I've been able to apply is using system restore, but this may have to be done several times for the problem to disappear and takes forever since the computer is running in "slow-motion".

Also sometimes when i leave the computer off for a day or two (or just use Ubuntu instead) it will boot up win7 just fine.

Since the problem occurs quite randomly and without any warnings it's been quite hard to debug/gather information on the system while crashing, but here is what I have been able to figure out so far:

* While problem occurs, both cpu cores are working at 95-99%. Processes(random ones) take turns on using 99%.
* Screen will glitch heavily and message will appear in tray-bubble: "windows nvidia kernel mode driver stopped responding".

Things i have tried:

* Installing newest Nvidia graphics driver.
* Installing older Nvidia graphics drivers.
* Full format and fresh install of windows7.

In the reliability monitor i was able to gather this information:

* Problem: Windows failed to start because of missing system files
Description: A recent driver installation or upgrade might have prevented Windows from starting.

* Problem: Video hardware error
A problem with your video hardware caused Windows to stop working correctly.

Problem signature
Problem Event Name: LiveKernelEvent
OS Version: 6.1.7600.
Locale ID: 1044

Extra information about the problem
BCCode: 117
BCP2: FFFFF88010020354
BCP3: 0000000000000000
BCP4: 0000000000000000
OS Version: 6_1_7600
Service Pack: 0_0
Product: 256_1
Bucket ID: X64_0x117_Tdr:3_TdrVTR:1_IMAGE_nvlddmkm.sys
Server information: 114dfcd0-702c-47e0-9a3d-e8672e86fb40

The last one occurs about 20 or so times with the same info except for the BCP1.

Finally I'll add som system info...

Computer: Asus K61IC
CPU: Pentium Dual-Core T4300 2.10GHz
GRAPHICS: Nvidia GeForce GT220M
OS: Windows 7 Professional 64bit 6.1.7600

I hope someone can help me out, or at least point me in the right direction.

C9 Netduino Shield Series - Using Arduino Shields with a Netduino - Part II

In our previous article, we examined what an Arduino shield is, how to build a simple custom shield and discussed how to quickly identify shields that are good candidates for a Netduino adaptation versus shields that may not be.
In this article, we’ll take a popular Arduino Logger Shield produced by Adafruit and we’ll interface it with a Netduino / Plus microcontroller

The Arduino Logger Shield is an excellent one to start with because it offers immediate benefits to a Netduino / Plus user:

Time-keepingSD card storageTwo user-controllable LEDsA small prototyping areaAn onboard 3.3v voltage regulator for clean analog readings and power decoupling
In our C# data logging application, we'll interact with the time keeper, the SD card storage and its 'card detect' pin, the two LEDs as well as a temperature sensor (not included with the shield).
Before diving into the details associated with the hardware, you may want to take a look at the C# objects representing the hardware:

public static readonly string SdMountPoint = "SD";public static OutputPort LedRed = new OutputPort(Pins.GPIO_PIN_D0, false);public static OutputPort LedGreen = new OutputPort(Pins.GPIO_PIN_D1, false);public static InputPort CardDetect = new InputPort(Pins.GPIO_PIN_D3, true, Port.ResistorMode.PullUp);public static readonly Cpu.Pin ThermoCoupleChipSelect = Pins.GPIO_PIN_D2;public static DS1307 Clock;public static Max6675 ThermoCouple;and their initialization:

public static void InitializePeripherals() { LedGreen.Write(true); Clock = new DS1307(); ThermoCouple = new Max6675(); InitializeStorage(true); InitializeClock(new DateTime(2012, 06, 14, 17, 00, 00)); ThermoCouple.Initialize(ThermoCoupleChipSelect); TemperatureSampler = new Timer(new TimerCallback(LogTemperature), null, 250, TemperatureLoggerPeriod); LedGreen.Write(false);}The SD card, represented by the SdMountPoint string, communicates with the application over SPI. The presence of the SD card in the reader is determined through the CardDetect input pin.
The LEDs are simple outputs that we'll turn ON / OFF as the peripherals gets initialized and file I/Os take place with the SD card.
The clock communicates with the application over the I2C protocol. The clock's most important functions are accessed through the Set() and Get() methods respectively used to set the time once and to get updated time stamps afterward.
The thermocouple communicates over SPI with the application. It exposes a Read() method which caches a raw temperature sample accessed through the Celsius and Fahrenheit properties.
Note: the Netduino Plus already features a built-in microSD card reader, in which case, having another one on the shield is not really needed. Except for this hardware difference, everything else discussed within this article applies equally to the regular Netduino and the Netduino Plus.
Interfacing with the Arduino Logger shield’s hardware

Adafruit is pretty good about making usable products and generally provides Arduino libraries to use with their hardware. Indeed, the Arduino Logger Shield is well documented and comes with two C++ libraries: SD which implements a FAT file system and supporting low-level SD card I/O functions. RTCLib which wraps the I2C interface required to communicate with the DS1307 real time clock.
The SD Card Interface

Let’s deal with the SD card reader and the file system first: a quick review of SD.h reveals two C++ classes:

class File : public Stream {} exposing standard read, write, seek, flush file access functions.class SDClass {} exposing storage management such as file and directory operations.
This is good news because the .NET Micro Framework on the Netduino already supports file streams and directory management through the use of the .NET MF System.IO assembly. This assembly comes with the .NET MF SDK port to the Netduino.

By the same token, interfacing with an SD card is provided by an assembly built by Secret Labs named SecretLabs.NETMF.IO which comes with the Netduino SDK.

SecretLabs.NETMF.IO provides two functions for 'mounting' and 'un-mounting' an SD card device and the associated FAT file system so that it can be made usable by the .NET MF through assemblies such as System.IO.
It's important to note that the SecretLabs.NETMF.IO assembly must not be deployed with an application targeting the Netduino Plus: on boot, the .NET Micro Framework implementation specific to the Netduino Plus automatically detects and mounts the SD card if one is present in its microSD card reader. This functionality is redundant with the MountSD / Unmount functions provided by the SecretLabs.NETMF.IO assembly which is only needed on Netduino SKUs without a built-in SD card reader.
How does the .NET MF interact with the SD card through the shield?

At this point, it's a good time to review the Arduino Logger Shield's pin-out and the shield's schematics:

As we know from our previous article, pins D10-D13 map to the SPI interface and pins A4-A5 map to the I2C interface of the Netduino. On the shield's schematics, the SPI interface leads us to the SD & MMC section of the diagram, connected through a 74HC125N logic-level shifter chip indicated as IC3A-D.
The role of the logic-level shifter is to ensure that logic voltages supplied to the SD card do not exceed 3.3v, even if they come from a microcontroller using 5v logic levels, such as the Arduino. When using an SD card with a Netduino, a level-shifter is not required since all logic levels run at 3.3v on the AT91SAM7x chip but it doesn't interfere with any I/O operations either when the voltage is already 3.3v.

The SD card reader in itself is just a passive connector, giving access to the controller built into the SD card. It also provides a mechanical means (i.e. switches) of detecting the presence of a card in the reader (see JP14 pin 1) as well as detecting if the card is write-protected (see JP14 pin 2). We'll make use of the card detection pin in the sample temperature logging application later on.
For background on how SD cards work, the following application note "Secure Digital Card Interface for the MSP430" is excellent and much easier to digest than the extensive 'simplified' SD card protocol specifications provided on the SD Card Association site. The following table taken from the "Secure Digital Card Interface for the MSP430" shows the pin out of an SD card and the corresponding SPI connections:

An SD standard-compliant card can support 3 distinct access modes, each one providing different performance characteristics:

SD 1-bit protocol: synchronous serial protocol with one data line, one clock line and one line for commands. The full SD card protocol command set is supported in 1-bit mode.SD 4-bit protocol: this mode is nearly identical to the SD 1-bit mode, except that the data is multiplexed over 4 data lines, yielding up to 4x the performance of SD 1-bit mode. The full SD card protocol command set is supported in 4-bit mode.SPI mode: provide a standard SPI bus interface (/SS, MOSI, MISO, SCK). In SPI mode, the SD card only supports a subset of the full SD card protocol but it is sufficient for implementing a fully functional storage mechanism with a file system.
As you might have guessed, the .NET Micro Framework on the Netduino makes use of the SD card in SPI mode (see DeviceCodeDriversBlockStorageSDSD_BL_driver.cpp). The block-oriented SD card I/Os are abstracted thanks to the FAT file system provided by the System.IO assembly (see DeviceCodeDriversFSFATFAT_FileHandle.cpp and FAT_LogicDisk.cpp).
The role of the SecretLabs.NETMF.IO assembly on the Netduino (or its built-in equivalent on the Netduino Plus) is to initialize the SD card in SPI mode during the 'mounting' process by sending the proper set of commands as defined in the SD Card protocol.
In the C# code of the AdafruitNetduinoLogger sample application, which we will review as a whole later on in the code walkthrough section, the following function takes care of the SD card initialization:

public static void InitializeStorage(bool mount) { try { if (mount == true) { StorageDevice.MountSD(SdMountPoint, SPI.SPI_module.SPI1, Pins.GPIO_PIN_D10); } else { StorageDevice.Unmount(SdMountPoint); } } catch (Exception e) { LogLine("InitializeStorage: " + e.Message); SignalCriticalError(); }}Once mounted, the file system is accessed through System.IO calls such as this:

using (var tempLogFile = new StreamWriter(filename, true)) { tempLogFile.WriteLine(latestRecord); tempLogFile.Flush();}Using the StreamWriter class in this context made sense for writing strings as used in the sample application:

However, there are many other file I/O classes available in System.IO that may be better suited depending on the scenario.
The DS1307 real time clock

Our next step is to examine the interface with the DS1307 real time clock (RTC). We'll start by extracting the most important parts of the DS1307 datasheet and reviewing how it's wired up on the shield's schematics.
DS1307 features

Real-Time Clock (RTC) Counts Seconds, Minutes, Hours, Date of the Month, Month, Day of the week, and Year with Leap-Year Compensation Valid Up to 210056-Byte, Battery-Backed, General-Purpose RAM with Unlimited WritesI2C Serial InterfaceProgrammable Square-Wave Output SignalAutomatic Power-Fail Detect and Switch CircuitryConsumes Less than 500nA in Battery-Backup Mode with Oscillator Running
Note: If you need to measure the time something takes in milliseconds, a time granularity that the DS1307 clock does not provide, you can use the Utility functions provided by the .NET Micro Framework like this:

var tickStart = Utility.GetMachineTime().Ticks;// var elapsedMs = (int)((Utility.GetMachineTime().Ticks - tickStart) / TimeSpan.TicksPerMillisecond);This timing method relies on the CPU's internal tick counter and is not 100% accurate due to the overhead of the .NET MF itself but may be sufficient in most scenarios. In addition, the internal tick counter rolls over every so often, something that should be taken into account in production code.
DS1307 register map

Accessing the clock's features comes down reading and writing to and from a set of registers as described on page 8 of the datasheet.

Page 9 of the DS1307 datasheet provides more details about the square wave generation function of the clock, which we will not be using here. The generated square wave signal is available on the shield through connector JP14 on pin 3 as you can see on the schematics below and can be used to provide a slow but reliable external clock signal to another device such as a microcontroller.

DS1307 I2C bus address

The final piece of the puzzle needed before we can use the DS1307 is the device's address on the I2C data bus and its maximum speed (specified at 100 KHz on page 10 of the datasheet). The device address is revealed on page 12 as being 1101000 binary (0x68) along with the two operations modes (Slave Receiver and Slave Transmitter) of the clock. The 8th bit of the address is used by the protocol to indicate whether a 'read' or a 'write' operation is requested.
Note: I2C devices sometime make use of 10-bit addresses. If you aren't familiar with the I2C data bus, you should read the section of the datasheet starting on page 10 which provides a good foundation for understanding how I2C generally works.
It can be summarized as follows:

I2C is a 2-wire serial protocol with one bidirectional data line referred to as SDA and one clock line, referred to as SCL.The I2C bus is an open-drain bus (i.e. devices pull the bus low to create a '0' and let go of the bus to create a '1'). To achieve this, I2C requires a pull-up resistor on the SCL and SDA lines between 1.8K ohms and 10K ohms. I2C devices do not need to provide pull-ups themselves if the bus already has them.The I2C master (i.e. the Netduino microcontroller) always provides the clock signal, generally between 100 KHz (or lower) for standard speed devices or 400 KHz for high-speed devices. There's also a 'Fast Mode Plus' allowing for speeds up to 1MHz on devices supporting it. There can be more than one master on the bus even though this is uncommon.An I2C device can have a 7-bit or 10-bit address, allowing for multiple I2C devices to be used on the same bus.I2C read and write operations are transactions initiated by the I2C master targeting a specific device by address. Some I2C slave devices can notify their master that they need to communicate using a bus interrupt.A transaction is framed by 'start' and 'stop signals, with each byte transferred requiring an acknowledgement signal.

At this point, we have all the pieces needed to communicate with the RTC using I2C transactions.
Using the I2C protocol with the .NET Micro Framework

On the Arduino, the library used with the shield to communicate with the DS1307 is a C++ library called RTClib. The header of the library declares a DateTime class, similar in functionality to the standard .NET Micro Framework DateTime class provided by System in the mscorlib assembly. We'll use the standard .NET MF data type to work with the clock instead.
The next declared class is RTC_DS1307 which implements the driver for the DS1307 chip using the Wire library to wrap the I2C protocol. The .NET Micro Framework also supports the I2C protocol through to the Microsoft.SPOT.Hardware assembly. Here again, we'll use the .NET MF implementation of I2C in order to communicate with the clock. However, the I2C transaction patterns implemented by the C++ driver can still provide a useful guide for writing a C# driver for the DS1307 when you don't know where to begin just based on the datasheet.
For instance, the following functions taken from RTClib.cpp shows the call sequence used with the Wiring API to address the date and time registers of the clock:

int i = 0; //The new wire library needs to take an int when you are sending for the zero registervoid RTC_DS1307::adjust(const DateTime& dt) { Wire.beginTransmission(DS1307_ADDRESS); Wire.write(i); Wire.write(bin2bcd(dt.second())); Wire.write(bin2bcd(dt.minute())); Wire.write(bin2bcd(dt.hour())); Wire.write(bin2bcd(0)); Wire.write(bin2bcd(; Wire.write(bin2bcd(dt.month())); Wire.write(bin2bcd(dt.year() - 2000)); Wire.write(i); Wire.endTransmission();}DateTime RTC_DS1307::now() { Wire.beginTransmission(DS1307_ADDRESS); Wire.write(i); Wire.endTransmission(); Wire.requestFrom(DS1307_ADDRESS, 7); uint8_t ss = bcd2bin( & 0x7F); uint8_t mm = bcd2bin(; uint8_t hh = bcd2bin(;; uint8_t d = bcd2bin(; uint8_t m = bcd2bin(; uint16_t y = bcd2bin( + 2000; return DateTime (y, m, d, hh, mm, ss);}The final class is RTC_Millis, a utility class converting time data into milliseconds, effectively providing the functionality of the DateTime.Millisecond property on the .NET MF.
Having assessed that the functionality of RTClib only handles date and time registers and knowing the role of the other clock registers, we can proceed with implementing a complete DS1307 C# driver, supporting the square wave and RAM functions, using the native I2C protocol support of the .NET Micro Framework.
The driver starts by defining key constants matching the clock registers according to the datasheet:

[Flags]// Defines the frequency of the signal on the SQW interrupt pin on the clock when enabledpublic enum SQWFreq { SQW_1Hz, SQW_4kHz, SQW_8kHz, SQW_32kHz, SQW_OFF };[Flags]// Defines the logic level on the SQW pin when the frequency is disabledpublic enum SQWDisabledOutputControl { Zero, One };// Real time clock I2C addresspublic const int DS1307_I2C_ADDRESS = 0x68;// Start / End addresses of the date/time registerspublic const byte DS1307_RTC_START_ADDRESS = 0x00;public const byte DS1307_RTC_END_ADDRESS = 0x06;// Start / End addresses of the user RAM registerspublic const byte DS1307_RAM_START_ADDRESS = 0x08;public const byte DS1307_RAM_END_ADDRESS = 0x3f;// Square wave frequency generator register addresspublic const byte DS1307_SQUARE_WAVE_CTRL_REGISTER_ADDRESS = 0x07;// Start / End addresses of the user RAM registerspublic const byte DS1307_RAM_START_ADDRESS = 0x08;public const byte DS1307_RAM_END_ADDRESS = 0x3f;// Total size of the user RAM blockpublic const byte DS1307_RAM_SIZE = 56;Next the driver defines an I2C device object representing the clock:

// Instance of the I2C clockprotected I2CDevice Clock;In the class constructor, the I2C clock device is initialized, specifying its address and speed in KHz:

public DS1307(int timeoutMs = 30, int clockRateKHz = 50) { TimeOutMs = timeoutMs; ClockRateKHz = clockRateKHz; Clock = new I2CDevice(new I2CDevice.Configuration(DS1307_I2C_ADDRESS, ClockRateKHz));}The driver retrieves the date and time from the clock through a Get function returning a DateTime object.

public DateTime Get() { byte[] clockData = new byte [7]; // Read time registers (7 bytes from DS1307_RTC_START_ADDRESS) var transaction = new I2CDevice.I2CTransaction[] { I2CDevice.CreateWriteTransaction(new byte[] {DS1307_RTC_START_ADDRESS}), I2CDevice.CreateReadTransaction(clockData) }; if (Clock.Execute(transaction, TimeOutMs) == 0) { throw new Exception("I2C transaction failed"); } return new DateTime( BcdToDec(clockData[6]) + 2000, // year BcdToDec(clockData[5]), // month BcdToDec(clockData[4]), // day BcdToDec(clockData[2] & 0x3f), // hours over 24 hours BcdToDec(clockData[1]), // minutes BcdToDec(clockData[0] & 0x7f) // seconds );}Let's break it down:

A 7-byte array is allocated which will receive the raw date and time data registers, starting at address DS1307_RTC_START_ADDRESS (0x00) and ending at DS1307_RTC_END_ADDRESS (0x06).An I2C transaction object is allocated, comprising two parameters:
A 'write' transaction object telling the DS1307 device which register address to start reading data from. In this case, this is DS1307_RTC_START_ADDRESS (0x00), the very first time-keeping register.A 'read' transaction object specifying where the clock's time-keeping data registers will be stored, implicitly defining the total number of bytes to be read and acknowledged.
Clock.Execute is the function calling into the .NET MF I2C interface to run the prepared transactions. The second parameter specifies a time out value expressed in milliseconds before the transaction fails, resulting in a generic exception being thrown.When the transactions succeed, a DateTime object is instantiated with the 7 time-keeping registers returned by the 'read' transaction. Each register is converted from Binary Coded Decimal form to decimal form using a custom utility function:

protected int BcdToDec(int val) { return ((val / 16 * 10) + (val % 16));}Conversely, the driver provides a Set function to update the clock's time-keeping registers. Because the driver doesn't expect a response from the DS1307 in this scenario, the I2C transaction is write-only. The fields of the DateTime parameter corresponding to the time -keeping registers are converted from decimal form to BCD form and stuffed in a 7-byte array before executing the transaction.

public void Set(DateTime dt) { var transaction = new I2CDevice.I2CWriteTransaction[] { I2CDevice.CreateWriteTransaction(new byte[] { DS1307_RTC_START_ADDRESS, DecToBcd(dt.Second), DecToBcd(dt.Minute), DecToBcd(dt.Hour), DecToBcd((int)dt.DayOfWeek), DecToBcd(dt.Day), DecToBcd(dt.Month), DecToBcd(dt.Year - 2000)} ) }; if (Clock.Execute(transaction, TimeOutMs) == 0) { throw new Exception("I2C write transaction failed"); }}The rest of the functions provided by the C# driver implement the other DS1307 features, such as

SetSquareWaveHaltSetRAMGetRAMThe [] operator used to access a specific clock registerWriteRegister
In all case, these functions are wrappers around the 'read' and 'write' I2C transaction model, involving the appropriate DS1307 registers as defined in the datasheet.
Using the Adafruit Arduino Logger Shield as a temperature logger

To illustrate the points discussed so far, we'll use the Adafruit Arduino Logger shield with a Netduino and a MAX6675 thermocouple amplifier for the purpose of recording ambient temperature samples at ten second intervals.
Each record includes a date, a time and the temperature expressed in Celsius and Fahrenheit. The records are written to daily files in CSV format for easy export to a spreadsheet, making the application easily adaptable for acquiring data from different sensors:
Date Time Celsius Fahrenheit 6/14/2012 15:35:00:05 18.75 65.75 6/14/2012 15:35:10:05 18 64.4 6/14/2012 15:35:20:05 18.5 65.29 6/14/2012 15:35:30:05 18 64.4 6/14/2012 15:35:40:05 18 64.4 6/14/2012 15:35:50:05 18.75 65.75
Device Connections

Instead of permanently soldering the temperature sensor to the prototyping area of the shield, female / female jumper wires were used to make connections between the shield's own pin headers as well as the thermocouple's male pin headers.

The following table enumerates these connections:
Shield Pin Destination Pin 3v (Power header) Max6675 VCC GND (Power or Digital I/O header) Max6675 GND D13 (Digital I/O header, SPI CLK) Max6675 CLK (SPI CLK) D12 (Digital I/O header, SPI MISO) Max6675 DO (SPI MISO) D2 (Digital I/O header, used as SPI /SS) Max6675 CS (SPI /SS) L1 (LEDS header) D1 (Digital I/O header) L2 (LEDS header) D0 (Digital I/O header) CD (SD card detect) D3 (Digital I/O header) Reading temperature using an Adafruit Max6675 Thermocouple amplifier breakout board

The Max6675 thermocouple amplifier chip on the breakout board is a read-only SPI device. When the CS pin (SPI /SS) of the device is asserted with a 1ms delay before reading, the chip returns a 12-bit value on its DO pin (SPI MISO) corresponding to the temperature measured by a K-type Thermocouple wire. The resulting C# driver for the Max6675 is short:

using System;using Microsoft.SPOT;using Microsoft.SPOT.Hardware;namespace Maxim.Temperature{ public class Max6675 : IDisposable { protected SPI Spi; public void Initialize(Cpu.Pin chipSelect) { Spi = new SPI( new SPI.Configuration( chipSelect, false, 1, 0, false, true, 2000, SPI.SPI_module.SPI1) ); } public double Celsius { get { return RawSensorValue * 0.25; } } public double Farenheit { get { return ((Celsius * 9.0) / 5.0) + 32; } } protected UInt16 RawSensorValue; protected byte[] ReadBuffer = new byte[2]; protected byte[] WriteBuffer = new byte[2]; public void Read() { RawSensorValue = 0; Spi.WriteRead(WriteBuffer, ReadBuffer); RawSensorValue |= ReadBuffer[0]; RawSensorValue = 3; } public void Dispose() { Spi.Dispose(); } ~Max6675() { Dispose(); } }}Temperature logger application walkthrough

Let's review the key parts of the temperature logging application code and how it interacts with the devices connected to the shield.

public static readonly string SdMountPoint = "SD";Defines an arbitrary string used to refer to the SD card when using StorageDevice.MountSD and StorageDevice.Unmount functions.

public static readonly int TemperatureLoggerPeriod = 10 * 1000; // millisecondsDefines the interval between temperature samples.

public static OutputPort LedRed = new OutputPort(Pins.GPIO_PIN_D0, false);Defines an output connected to pin D0 controlling the state of the red LED on the shield.

public static OutputPort LedGreen = new OutputPort(Pins.GPIO_PIN_D1, false);Defines an output connected to pin D1 controlling the state of the green LED on the shield.

public static InputPort CardDetect = new InputPort( Pins.GPIO_PIN_D3, true, Port.ResistorMode.PullUp);Defines an input connected to pin D3 used to determine if an SD card is inserted in the SD socket.

public static ManualResetEvent ResetPeripherals = new ManualResetEvent(false);Defines a manual reset event object that will be used in the main application loop to determine when to re-initialize the shield's peripherals.

public static readonly Cpu.Pin ThermoCoupleChipSelect = Pins.GPIO_PIN_D2;Defines D2 as the SPI chip select pin connected to the Max6675 Thermocouple board.

public static Timer TemperatureSampler;Defines an instance of a timer object which will drive temperature sampling.

public static DS1307 Clock;Defines an instance of the DS1307 real time clock driver.

public static Max6675 ThermoCouple;Defines an instance of the Max6675 thermocouple driver.

public static ArrayList Buffer = new ArrayList();Defines an array list instance which will be used as a temporary buffer when the SD card is removed from its socket.
The application's main loop is only concerned about the state of the peripherals:

It initializes the devices connected to the shieldIt waits indefinitely for a signal indicating that a hardware error occurredIt disposes of the current device instances and starts over

public static void Main() { while (true) { InitializePeripherals(); ResetPeripherals.WaitOne(); ResetPeripherals.Reset(); DeInitializePeripherals(); }}InitializePeripherals indicates that it is working by controlling the green LED on the shield. Its role is focused on object creation and initialization.

public static void InitializePeripherals() { LedGreen.Write(true); Clock = new DS1307(); ThermoCouple = new Max6675(); InitializeStorage(true); InitializeClock(new DateTime(2012, 06, 14, 17, 00, 00)); ThermoCouple.Initialize(ThermoCoupleChipSelect); TemperatureSampler = new Timer( new TimerCallback(LogTemperature), null, 250, TemperatureLoggerPeriod); LedGreen.Write(false);}If the initialization of a peripheral fails, the shield will quickly blink its LEDs, indefinitely:

public static void SignalCriticalError() { while (true) { LedRed.Write(true); LedGreen.Write(true); Thread.Sleep(100); LedRed.Write(false); LedGreen.Write(false); Thread.Sleep(100); }}The clock initialization function only sets the clock date and time when it is unable to find a file named 'clockSet.txt' on the SD card, ensuring that the initialization of the DS1307 only happens once in the InitializePeripherals function or until the file is deleted.

public static void InitializeClock(DateTime dateTime) { var clockSetIndicator = SdMountPoint + @"clockSet.txt"; try { if (File.Exists(clockSetIndicator) == false) { Clock.Set(dateTime); Clock.Halt(false); File.Create(clockSetIndicator); } } catch (Exception e) { LogLine("InitializeClock: " + e.Message); SignalCriticalError(); }}The LogTemperature function is the callback invoked by the Timer object every 10 seconds. The function indicates that it is working by turning the red LED on the shield ON and OFF.

public static void LogTemperature(object obj) { LedRed.Write(true);}The function reads the current time from the clock with Clock.Get() and takes a temperature sample with ThermoCouple.Read().

var tickStart = Utility.GetMachineTime().Ticks;var now = Clock.Get();ThermoCouple.Read();var elapsedMs = (int)((Utility.GetMachineTime().Ticks - tickStart) / TimeSpan.TicksPerMillisecond);Then, it concatenates a string containing the date, time and temperature expressed in Celsius and Fahrenheit, with each field separated by commas.

var date = AddZeroPrefix(now.Year) + "/" + AddZeroPrefix(now.Month) + "/" + AddZeroPrefix(now.Day);var time = AddZeroPrefix(now.Hour) + ":" + AddZeroPrefix(now.Minute) + ":" + AddZeroPrefix(now.Second) + ":" + AddZeroPrefix(elapsedMs);var celsius = Shorten(ThermoCouple.Celsius.ToString());var farenheit = Shorten(ThermoCouple.Farenheit.ToString());var latestRecord = date + "," + time + "," + celsius + "," + farenheit;To make the data more manageable, daily temperature files are created as needed, each one starting with the column headers expected for parsing the values in CSV format.

var filename = SdMountPoint + BuildTemperatureLogFilename(now);if (File.Exists(filename) == false) { using (var tempLogFile = new StreamWriter(filename, true)) { tempLogFile.WriteLine("date,time,celsius,fahrenheit"); }}The temperature sampling application lets the user remove the SD card from its socket so that the CSV files can be moved over to a PC for processing without losing data in the meantime. In order to do this, the application checks the state of the 'Card Detect' pin before attempting file system I/Os.
When the SD card is not present, the latest temperature record is preserved in the array list buffer until the SD card is put back in its socket. The array list data is then flushed to storage.

if (CardDetect.Read() == false) { using (var tempLogFile = new StreamWriter(filename, true)) { if (Buffer.Count != 0) { foreach (var bufferedLine in Buffer) { tempLogFile.WriteLine(bufferedLine); } Buffer.Clear(); } tempLogFile.WriteLine(latestRecord); tempLogFile.Flush(); }} else { LogLine("No card in reader. Buffering record."); Buffer.Add(latestRecord);}The temperature logging function expects to run out of memory if the array list buffer grows too large, in which case, all the records get purged. Other memory management strategies could be used to mitigate data loss in this case. However, this depends entirely on the requirements of the data logging application and is out of scope for this discussion.

catch (OutOfMemoryException e) { LogLine("Memory full. Clearing buffer."); Buffer.Clear();}The temperature logging function also handles file system exceptions caused by the removal of the SD card and reacts by signaling the ResetPeripherals event. In turn, this lets the application's main loop know that the peripherals, and most specifically the SD card, need to be recycled and initialized again in order to recover from the error.

catch (IOException e) { LogLine("IO error. Resetting peripherals."); Buffer.Add(latestRecord); ResetPeripherals.Set();}Conclusion

In this article, we took a shield designed for the Arduino and learned how to critically review the Arduino code libraries supporting it, drawing parallels with features offered by the .NET Micro Framework. This process allowed us to identify areas in the Arduino code which were not necessary to port over to C# such as SD card and file system handlers. It also allowed us to see the similarities in the way the Arduino and the Netduino handle I2C communications.
Most importantly, we also learned the importance of reviewing a device's schematics and component datasheets to ensure that important features have not been omitted and potentially incorrectly implemented when considering using an unknown library: in the case of RTClib, we saw that the implementation was limited to the basic date and time functions of the DS1307, leaving out other useful features such as the clock's built-in RAM and the square wave generation functions.
In our next article, we'll take on a much more complex shield and we will learn how to analyze Arduino libraries in depth before porting them from C/C++ to C#.

Fabien is the Chief Hacker and co-founder of Nwazet, a start-up company located in Redmond WA, specializing in Open Source software and embedded hardware design. Fabien's passion for technology started 30 years ago, creating video games for fun and for profit. He went on working on mainframes, industrial manufacturing systems, mobile and web applications. Before Nwazet, Fabien worked at MSFT for eight years in Windows Core Security, Windows Core Networking and Xbox. During downtime, Fabien enjoys shooting zombies and watching sci-fi.


I have been battling this network printer issue since 7000 became available. This may work with other brands of printers as well.

I am currently running 7022. I have an HP LaserJet 1018 connected locally via USB. Printing locally worked fine. The problem was trying to get remote machines printing to it over the network. After many attempts, trial and error, this is what finally worked.

I have two workstations running Windows 7022. Both were configured as "Work" networks, both in "Workgroup" workgroup. The important thing here is to disconnect your printers before you begin the Windows 7 installation. Once complete, Install the printer using your original printer installation CD that came with the printer. In my case it was the HP installation disk. Run this as adminstrator in Vista Compatability mode.

HP's installation requires you to leave the printer unplugged until it asks to plug it in. This was a bit buggy for me as I plugged in the printer (USB) when it asked but it just sat there scanning for new device. I clicked cancel and the drivers actually installed at this point continuing with the installation, odd. Once complete, I printed a test page OK

Next I disabled Windows Firewall (Private) completely. Ya I know but it was the only way I could get printing to work over the network. I would guess an exception can be made but not real good with windows firewall exceptions

Next I enabled the following: Network Discovery and File and Print Sharing under private network. (These options are located under Network and Sharing then in the left pane click "Change advanced sharing settings)
Next I created a folder called c:new folder and then shared this giving full control to "Everyone"
Next I shared the printer making sure "Everyone" had "Print" access. (permissions button)

Reboot Workstation

Once I rebooted I checked the event logs and received this error:
"The print spooler failed to share printer HP Laserjet 1018 series with shared resource name HP Deskjet F4100 series. Error 2114. The printer cannot be used by others on the network."
I have not found a solution for this error but was still able to print. Read on.

Moving to the remote Windows 7 workstation now, I made sure network discovery was enabled. I then doubled click network icon on the desktop (you can add this to your desktop by right clicking anywhere on your desktop and choosing "Personalize". Once opened, in the left pane click "change desktop icons" and then tick the Network box and click ok. It should now be on your desktop)

You should now see the primary Windows 7 workstation (printer workstation) listed. Double click to open it. You should now see your shares, the folder that you shared called new folder and then your printer. Right click on New Folder and select map a network drive. Tick both check boxes (Reconnect at logon" and "Connect using different credentials"), click finish. Now click " use another account" and enter username and password from primary workstation (printer workstation) that you normally login with.
Tick the "Remember my credentials" checkbox. click Ok. It should open and you should see the contents of this shared folder which is empty.

Now open Network (icon) again from your desktop and you see the New Folder and and Shared Printer again. Double click to open the Printer. It should now say connecting to printer, taking some time to install the printer driver from the other computer. At this point it should then open the print queue that is empty. Your printer is now added in your Hardware devices and set to default printer. Open your hardware devices right click on printer, choose printer properties and print test page. It should now print.

During all of my previous installs I left the printer connected during Windows 7 installation which windows found and installed. I suspect a driver issue with the windows driver for the hp printer. It is possible you can download the driver from the printers website but I did not have much luck with just the DRIVER download. I needed the setup wizard which asked me to plug in the printer at a certain point.

One other tip to try if you still have problems. On the remote workstation, click to add a new printer and make it local even though it is not connected. When asked which type of printer (list) select Have Disk and then point to the driver files from your installation cd (or if you downloaded them, make them available on the remote printer and point to this location) Finish the printer setup, then open Hardware Devices and delete the printer. Although you deleted the printer the drivers are still installed. Try the above steps again to print

Well, if you are having similar printing issues over your network, give this a try and hopefully it will work for you as well.


7 is almost immune to a piece of malware that has proven a real nightmare to users running older versions of the Windows client. Windows XP SP3 customers particularly have been hit extremely hard by Alureon, a rootkit that failed to play nice with a Windows kernel update and ended up rendering unbootable infected PCs earlier this year. Microsoft’s Malicious Software Removal Tool cleaned no less than 356,959 Windows computers infected with Alureon, with the Redmond company pointing out that the statistics are associated exclusively with the May release of MSRT. Out of all the machines cleaned by the software giant’s free security tool, only 3.5% were running Windows 7.

In this context, Alureon comes to prove just how unsafe are older versions of Windows, as XP SP3 PCs account for the bulk of infections, no less than 64.8%. The runner-up is XP SP2 with 13.6%, Vista SP2 with 7.3%, Vista RTM with 6.9% and Vista SP2 with 3.8%. Combined, machines running XP SP2 and SP3 make up 78.4% of all the Windows computers compromised by the rootkit. At this point in time, Virus:Win32/Alureon.H is the most prevalent flavor of the browser, having been cleaned from 155,394 PCs, Vishal Kapoor and Joe Johnson, from the Microsoft Malware Protection Center, note.

“The new .H variant is the most prominent in terms of prevalence. There were several changes to the design of the rootkit to avoid detection and cleaning, revealing that the rootkit is still under active development and distribution. One of the notable changes was to infect arbitrary system drivers instead of only the hooked miniport driver. Expectedly, this can have negative side effects on the machine depending on the chosen driver. For example, we’ve seen some machines having their keyboard disabled as a result of an infection. On other machines, Windows XP unexpectedly requests reactivation because the infection appears like a significant hardware change,” Johnson reveals.

The Redmond company indicates that the authors of Alureon are working to upgrade older versions of the rootkit to the most recent builds, which are better equipped to dodge antivirus products. The April version of the MSRT cleaned Alureon from 262,969 machines, namely 37% less compared with May. As far as the MSRT May malware families go, Alureon has climbed to the first spot, the software giant notes.

“Continuing the trend from last month, more than three-quarters of the infections occur on machines running Windows XP. This is likely due to better security in the later versions of the Microsoft Windows operating systems. The dominance of XP SP3 can be attributed to the combination of the above in conjunction with its high prevalence of use,” Johnson adds.

I've been posting over in the BSOD forums, and I've downloaded CPUID Hardware monitor in a bid to find out what exactly is wrong. Only thing is, I am not certain what I should be looking out for, so I've attached the monitoring data file to this post if anyone is able to help me make heads or tail of it.

My hardware setup:
ASUSTeK Computer INC. M4A78LT-M-LE
AMD Athlon II X4 640
Nvidia GeForce GT 240
Memory 4.00GB
Microsoft Windows 7 Ultimate 64-bit 7601 Multiprocessor Free Service Pack 1

I notice that the idle temperature for the graphics card is holding at 53 at the moment (it has a 105 degrees maximum under load). On Sunday I plan to run a series of tests to ascertain what happens prior to BSOD events as regards hardware performance, since the last three weeks none have happened - they all started in Windows, but seem to be more likely in games (add to that, they magically started after weeks of smooth running of said games). Replaced harddrive because that failed all the manufacturer tests, and the issue had been fixed...then came right back (obviously it wasn't the harddrive causing it ). I have kept off games for a bit because I rely on my brother to assist in fixing problems, and he's been away (if anything goes wrong, who do I have to blame?). Attached Files HWMonitor.txt (33.3 KB, 7 views) Share Share this post on Digg Technorati Twitter
Reply With Quote .postbitlegacy .postfoot .textcontrols a.post_info_button, .postbit .postfoot .textcontrols a.post_info_button { background: url(/images/post_infobox.png) no-repeat transparent left; padding-left: 20px; } .postbitlegacy .postfoot .textcontrols a.post_info_button:hover, .postbit .postfoot .textcontrols a.post_info_button:hover { background: url(/images/post_infobox-hover.png) no-repeat transparent left;   JavaScript must be enabled 03-23-2013 #2 Digerati Senior Member Grumpy ol' Retired Master
Join Date Oct 2009 Posts 904 Re: Using CPUID Hardware Monitor and what to look for? Although you did not actually say, I am assuming you are posting here because your system keeps crashing with BSODs.

What is the error code/message of the BSOD? Do you always get a BSOD, or does it sometimes just hang, or reboot.

I see nothing wrong in your attached file, but it really is not that informative. For example, it does not show what the PSU's +5VDC voltage is sitting at. I might suggest Speccy from the makers of CCleaner. It includes a great option to "publish" your system specs (less any personal information) and provides a convenient link to post to forums for easy review.Download, install and run Speccy
When the scan completes, click on File > Publish Snapshot,
Click Yes,
Copy provided link
Click Close.
Return to forum post, right-click in the post text field and select Paste to copy clipboard contents (link) into your post.
BSODs are often caused by a driver conflict or other hardware issue, perhaps caused by a flakey PSU, or high temps, or a failing motherboard or other component. The fact it is not happening now that you have backed off gaming suggests it could be heat (since gaming is so demanding), but it might be a problem with your graphics solution too (since games tend to tax graphics solutions too).

Obviously, because so many things can cause these symptoms, troubleshooting can be very difficult and time consuming and often works only by eliminating all potential causes before finding the real cause.

I might suggest you pull all but one stick of RAM and see if you have problems, swapping in your other sticks as a process of elimination.

I've a customer who has the same problem and I've waiting
to see if someone replied to this post for a fix. The
customer had a trojan removed from their PC and then
started receiving the same message whenever they tried to
run a dos program. When I started the machine in safe
mode everything worked fine. Today the PWSteal.Banker.B
trojan was reported by norton's on this computer which I
removed. This trojan was only discovered on June 17 and
is not supposed to affect XP. I decided to try running and sysedit to see if removing the trojan had
any effect on this problem. Much too my surprise and
relief it did. Hopefully this might help you if you go to
symantec's sight they have the information needed to
remove the virus. The file that the virus creates is
lsd_f3.dll in the system32 folder. Let me know if this

-----Original Message-----
I apologize for the lengthy post.

I'm running win xp pro (system came with win xp, I
upgraded immediately to
win xp pro. This current problem has nothing to do with
the upgrade to win
xp pro, which was done over a year ago) on an e-machine
T2625 AMD Athlon xp
2600+ 2.12GHz, 1GB RAM.
Note: My computer came with the primary partition
(system partition, C:
drive) configured to NTFS. All other partitions that I
have created on that
physical hard drive and on other physical hard drives
are FAT32.

A week ago, I had just finished fully cleaning my system
(a long process)
and then went to play tetris and BAM! A new problem. How
nice. I have a
number of dos programs, including tetris.exe, some old
astronomy dos
software, etc. which have worked fine on win xp pro for
quite some time
until recently (the last week) when they collectively
began to fail with an
"attempt to access invalid address" error. I cannot
ascertain the exact time
at which this problem began since I only use the DOS
programs infrequently.

Information which may be helpful:
The first thing I did was Google search with the
following string: "attempt
to access invalid address" xp dos.
This search brought some (perhaps) useful info, which I
will relay he

"Andrew" on June 02, 2004 said "Todays morning, after
one hour of work I
needed to restart computer becouse I was not able to
disconnect from
internet. There was no activity but it was not
disconnecting. After that I
can't start any DOS program on this computer, any dclick
in icon to program
is giving error: "Attempt to access invalid address".
When I try to run DOS
program from command prompt window I see : "Cannot
execute program". I scan
comp. for viruses - it did not find anything. Any sug.? "

"Bill Mason" on June 08, 2004 said "I currently have a
similar problem to
what you descibed. I found that if I start Windows in
the "safe" mode I can
then access what I need to. This is not a satisfactory
solution for me. I
would greatly appreciate any better cures if you are now
aware of any.
Thanks! "

"Christopher" on June 15, 2004 said "Same symptoms, XP
Pro. User reported a
few xxx popups while downloading NAV2004 just prior to
problem. Checked her
index.dat file and found NO record of browsing anything
but okay sites.
Tried NAV2004, Adaware, Spybot, TrojanHunter, turning
off servies, msconfig,
logged in as Administrator, checked config.nt and
autoexec.nt, nothing
worked. Finally had to use XP system restore and roll
back 3 days. Maybe
something nailed the Environment Variables ? Didn't
think to check those
until after restore. "

"manu (by manu24)" on June 30, 2004 said "same prob.
here with win xp home,
but sometime back i turned off my system restore for
some reason and forget
to turned it on, so now i cannot roll back, so what do
now? any suggestions.
manu "

end of thread

"akinsey " on June 7th, 2004 said " I have a user who is
running XP Home on
a newer HP Pavilion, which had a bad hard drive and was
replaced a week ago
under warranty at Best Buy. She cannot use any DOS
programs under XP, even
using any of the available compatibility modes. HOWEVER,
there was no
problem with ANY DOS programs running under XP prior to
the drive being
1) MS KB searches on DOS Compatibility Problems in XP
point to NTVDM
configuration problems. I.E.:
When you have problems with MS-DOS programs:
Test the NTVDM (Windows Virtual DOS Machine) subsystem:
1. Start / Run / / OK.
2. If a session does NOT
open, the NTVDM is
misconfigured. Check the Config.nt and Autoexec.nt files
in the
%SystemRoot%System32 folder for non-standard entries...
[snip] (enter) yields the error "attempt
to access invalid
address". (see attachment, error.JPG)
All appear in the windowssystem32 folder. I looked at
the config.nt and
autoexec.nt files and they're pure, exactly as extracted
from the XP cd.

"Paladisious" on July 1st, 2004 said "The exact same
thing is happening to
me in Win XP Home, except I formated my machine, and
since then I've
reinstalled windows and all those lovely classic DOS
games, but that
'invalid adress' error keeps coming up when I try to run

"noseBleeD " on July 1st, 2004 said "I am fairly sure
when it says the
address is invalid, it means it has gone beyond the end
of the memory
registers that are assigned to the program you are
trying to run.
Does this happen in safe mode?
This could be caused by a memory leak.
This could be caused by a bad virus that harmed your
hdd, and ram, or video
ram, or more.
I would verify the above posts like you said concerning
the winXp version
first, then try safe mode and see if problem still exist.
I would then boot into recovery console and run
chkdsk /f command.
I would the test memory with other known good memory and
if good, add more."

end of thread


"fcoen " on June 16, 2004 said "I have recently re-
installed windows 2000
server, but now all the dos programs that used to work
on it give an error:
"attempt to access invalid address". Not only that but
things like the edit
command give the same error. Any suggestions. Thanks. "

"MaddMaxx" on June 16, 2004 said "Did you switch from
FAT32 to NTFS?"

"fcoen " on June 17, 2004 said "yes..."

end of thread


"stevewdindas" on 06/09/2004 said "I have notebook that
has had and repaired
a number of viruses. However, even though it is
reporting clean after
several different scans whenever I try to run most .exe
applications it
reports the error "Attempt to access invalid address".
I have tried the
programme in safe mode and it works. Any suggestions?"

end of thread

"manu (by manu24)" on July 01, 2004 said "Hi, my comp
got hijacked with some
xxx dialer n dl.html file etc and some trojans. i got
rid of those now i m
facing this problem when ever i click some dos
application like my turbo
c++.exe or some other dos application i got this
error"Attempt to access
invalid address". unfortunately some time back i turned
off my system
restore so i m unable to rool back my system. plz help
me, ne suggestion
will br g8tly appreciated. Manu using win xp"

end of thread.

The most useful fact which I gathered from these threads
is that this is a
recent problem (Note the dates of the posts), since I
have tried many other
searches on Google, other search engines, and usenet
groups such as this and
found no other references to this problem. Therefore the
only references to
this problem are recent. This indicates to me that we
are dealing with a
virus, trojan, or malware which has began to show its
effects only in the
last month or so. Further evidence for this being a
recent virus is that
none of the above referenced threads includes any
definite answers or
solutions, just people trying to find answers to
(roughly) the same problem
at (roughly) the same time, indicating (to me) that this
is a new virus or a
new version of an old one.

MY Hijackthis log is clean:
"Logfile of HijackThis v1.97.7
Scan saved at 9:15:56 AM, on 7/2/2004
Platform: Windows XP (WinNT 5.01.2600)
MSIE: Internet Explorer v6.00 (6.00.2600.0000)

Running processes:
C:Program FilesStop-the-Pop-Up Litestopthepop.exe
C:Program FilesAVPersonalAVGNT.EXE
C:Program FilesAVPersonalAVGUARD.EXE
C:Program FilesAVPersonalAVWUPSRV.EXE
C:Program FilesAheadInCDInCDsrv.exe
C:Program FilesCommon FilesMicrosoft
C:Program FilesNorton UtilitiesNPROTECT.EXE
C:Program FilesSpeed Disknopdb.exe
C:Program FilesInternet Exploreriexplore.exe
C:Program FilesOutlook Expressmsimn.exe
C:Program FilesHijackThisHijackThis.exe

R1 - HKCUSoftwareMicrosoftInternet
ExplorerMain,Start Page_bak =
O4 - HKLM..Run: [NvCplDaemon] RUNDLL32.EXE
O4 - HKLM..Run: [NeroCheck] C:WINDOWSsystem32
O4 - HKLM..Run: [sureshotpopupkiller] "C:Program
Litestopthepop.exe" -minimized
O4 - HKLM..Run: [AVGCtrl] C:Program
FilesAVPersonalAVGNT.EXE /min
O4 - HKCU..Run: [NvMediaCenter] RUNDLL32.EXE
O4 - HKCU..Run: [ctfmon.exe] C:WINDOWSSystem32
O8 - Extra context menu item: &Define -
O8 - Extra context menu item: &Search the Web -
O8 - Extra context menu item: E&xport to Microsoft
Excel -
O8 - Extra context menu item: Look Up in &Encyclopedia -
O16 - DPF: {74D05D43-3236-11D4-BDCD-00C04F9A3B61}
(HouseCall Control) -
O16 - DPF: {9A9307A0-7DA4-4DAF-B042-5009F29E09E1}
(ActiveScan Installer
Class) -
O16 - DPF: {A3009861-330C-4E10-822B-39D16EC8829D}
(CRAVOnline Object) -"

I have already performed all of the usual tasks
associated with a difficult
1. Ran online panda-antivirus, trend micro, ranta-
antivirus, downloaded and
ran free AVG antivirus, then uninstalled it, and then
downloaded and ran
free AntiVir. Ran all of these again in safe mode except
for AVG free, which
doesn't like winXP safe mode and can't find core driver.
That's nine virus
scans which found nothing (due to the fact that, just
prior to noticing the
current problem, I had just run all of these scans and
more as part of
monthly maintenance).

2. In safe mode, and then again in regular mode, deleted
all files in the
following directories: Temporary Internet Files (for all
users, verifying it
to be empty, verifying that Content.IE5 was either empty
or deleted, for
each user and Admin and 'All usuers' and 'default user'
and localservices
and networkservices); Cookies; Windows/Temp;
Windows/Downloaded program
files (except for those downloaded program files
associated with the online
virus scanners); windows/prefetch; Windows/web;
C:recycler (except for
S-1-5-21-760979014-647424850-2722162428-1005, the actual
recycle bin, which
it won't let me delete); and then ran accessories|system
tools|disk cleanup
on all drives, in both regular and safe mode, deleting
everything which I
could (but everything was empty by then - in, fact,
everything had already
been empty because I had already done all of this just
prior to noticing the

3. Ran SpyBot search and destroy and Ad-Aware in regular
and safe mode.
Already clean.

Some things of note:
1. Since my primary partition (system c: drive) came as
NTFS, I have never
been able to access it directly when in DOS mode or when
booted from a DOS
floppy, since DOS can't recognize NTFS, so recently,
having finally grown
annoyed enough to do something about it, I searched the
net and downloaded
'ntfsdos', a DOS program which acts as a file system
driver for DOS/Windows
and that is able to recognize and mount NTFS drives for
transparent access.
It makes NTFS drives appear indistinguishable from
standard FAT drives,
providing the ability to navigate, view and execute
programs on them from
DOS. It is an older program which was apparently
necessary in the days when
FAt32 windows couldn't recognize NTFS. I mention this
merely for the sake of
completeness, since none of the other people in the
above referenced threads
mentioned this ntfsdos program, which is a relatively
rare program, and it
is unlikely that it would be present on any of their
systems, and therefore
unrelated to the present problem. However, one post
asked if the person had
changed from FAT32 to NTFS, but didn't explain why he
thought this might be
important, and although I didn't change from FAT32 to
NTFS, I just thought
I'd mention that I ran this NTFSDOS program so as to be
able to access NTFS
C: drive from DOS.

2. As suggested in one of the above-mentioned posts, I
ran, but
got the error "attempt to access invalid address". All
the usual dos
programs and associated files are present in system32
folder, and config.nt
and autoexec.nt appear to be fine.

3. My DOs stuff works fine in safe mode.

4. I don't seem to have the recovery console, or at
least I don't see it
listed when booting.

5. A month ago when last cleaning the system, I turned
off system restore
before running the virus scans, as always, but forgot to
turn it back on, so
if I want to restore windows I'll have to go back at
least a month. I'd
rather avoid that.

Sorry for the long post.
Any help is appreciated.



I know this may seem a long essay...but please...have

I recently was forced to uninstall SP2 because of the
following two errors: a ntfs.sys corruption and an
ntoskrnl.exe suspected conflict. I replaced the ntfs.sys
file and the ntoskrnl.exe file by expanding the needed
files from the file in the 'c:WindowsDriver
Cache' directory, however my computer continually
rebooted mid-way through the boot-screen process.

(Also to add, I am aware of a specific driver conflict
with AMD 64-bit machines, however I have an Athlon 3000+
machine, so that problem is out of the question)

Safe-Mode also ceased to well as the 'use last
known good configuration' option. So uninstalling SP2 was
my last hope. After following the instructions given by
an MS Technical Suppport Engineer, I was able to boot
into safe mode after deactivating all SP2 files. From
there on, I was able to uninstall SP2 completely.

Once finalised, my computer restarted. And hooray! I was
granted access into Windows. However, the unexpected
appeared. After logging into my Admin account, and
loading the PC restarted. Yet another issue.
Continualy it occured. Then, after attempting to boot
into safe mode for this second scenario, safe-mode would
not boot, restarting mid-way through loading again! This
unbelievable happening didn't set me off, not yet. I
booted into windows, logged into my Admin account, then
quickly 'ctrl + alt + del' and ended the
process: 'explorer.exe', therefore ceasing my PC to load
anything, and allowing me to use 'Run'. In Run, i opened
the Microsoft System Restore program (%SystemRoot%
System32restorerstrui.exe) allowing me to restore to
an earlier point. This rolled back my drivers before the
date of the SP2 Installation. However, after successfully
restarting and booting into windows, an attempt to boot
into safe-mode failed. It continually reboots mid-way
through loading, as it did primarily. Also, bundled with
this is another problem...somehow System Restore turned
itself off, and after turning it on...I noticed that all
my System Restore Points have been erased! They cease to
exist! Therefore...restoring to an earlier time may not
be an advisable option.

(P.S: After a long and anticipated 2 year wait...I feel
as though i've become an 'extended' beta tester for SP2)

So after reading my essay...any thoughts on how to fix
this issue? I managed to type this essay while waiting
for an SP2 Online Chat Support Engineer to reply back a
solution...It seems as though nobody knows what to do!

In agony and pleading before you,

Alvin Chan.

I want to append a linked table, and then add a description comment.
The code runs without errors BUT no description appears.
Am I doing this wrong

The code is below.

The table definitions and locations for the link are stored in a table.

Prior to ReLinking the tables links are deleted
( this is necessary because a folder containing the linked tables is deleted and refilled with new copies of the tables).
And yes I know we ought to be able to link to the originals
BUT, the application that uses them stops this.

================================================== =====================================
Function Re_Link_Tables()

Dim dbs As DAO.database, rst As DAO.Recordset, tdf As DAO.tabledef
Dim strSQL As String, strT As String, strProvider As String, strCnn As String, strLocalName As String, strSource As String
Dim strLinkDB As String
Dim intT As Integer, strErr As String
Dim prp As DAO.Property

strSQL = "SELECT * FROM sys_RDB_PDX_Tables ;"
intT = 0

On Error GoTo NoLinkError

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strSQL)

If rst.RecordCount = 0 Then
MsgBox "Tables are NOT defined to be linked", vbExclamation
Set rst = Nothing
Set dbs = Nothing
Re_Link_Tables = False
Exit Function
End If

'Table OK, so Proceed with the Link
Do While Not rst.EOF
intT = intT + 1
strProvider = rst("Provider") 'Connection String Provider
strLocalName = rst("LocalTableName") 'Connection String local table
strLinkDB = rst("SourceTable") 'Connection Table to Collect
strSource = rst("DataSource") 'Connection String Database (is the folder for paradox)
'Now Link it
Set tdf = dbs.CreateTableDef(strLocalName)
tdf.Connect = strProvider & "DataBase=" & strSource
tdf.SourceTableName = strLinkDB
dbs.TableDefs.Append tdf
'Now set the Linked table name as the Property
'Try to set the property
On Error Resume Next
tdf.Properties("Description").Value = strSource & "" & strLinkDB
If Err.Number = 3270 Then
'Could stop this here
Set prp = tdf.CreateProperty("Description", , strSource & "" & strLinkDB)
tdf.Properties.Append prp
Set prp = Nothing

End If
On Error GoTo NoLinkError
Set tdf = Nothing

Re_Link_Tables = True

Set prp = Nothing
Set tdf = Nothing
If Not rst Is Nothing Then rst.Close
Set rst = Nothing
Set dbs = Nothing

Exit Function

Re_Link_Tables = False
strErr = "Could Not Re Link all the tables" & vbLf & "Table " & intT & " " & vbLf & "Local name = " & strLocalName & vbLf & "From " & strSource & "" & strLinkDB & vbLf & "Could not be linked " & vbLf & "All tables after this failed to link!"
MsgBox strErr, vbCritical, "Re Link Paradox Tables Error"

Resume Tidy

Exit Function
================================================== =====================================


Excel does not offer a very good tornado diagram - a failing I thought I could quite happily ignore. Until one of our managers decided that tornado diagrams were the best possible way to convey information. Okay - they do work pretty well, but they are (in my experience) a bit of a pain in the neck to create, with lots of fiddling with repetitive formulas and the like. I decided that this was a good subject for automation, so I wrote the attached add-in. I have included a "test" file that you can use to create a tornado chart - it is cluttered with explanations in text boxes - I hope they help more than they hinder...

It would be very helpful to get comments from people here - what works, what doesn't, and what should be added. Coding issues are also up for discussion (even moreso) - I intended this as a learning opportunity for myself!

The Add-In allows you to:
Create the chart
Reverse the "direction" of colours - so if "good" outcomes are always blue you can accomodate both Costs (low is better, hence blue) and profits (higher is better...)
Change the colours applied to the chart (because I am a finance guy, not a graphic designer!)
Save or restore a default colour palette (this and the last option require that you click on the "select colours" button...)[/list]I developed the add-in in XL2000, and I have tested it in XL2003. Other than the toolbar being ugly in '03 it works fine there. I don't have XL-XP - if there are specific problems there I may end up asking for help.

To run the Tornado Tool
Install like any regular add-in - on installation, it will add a "Tornado Chart" option to your tools menu
when you have your data ready (or before) click Tools | Tornado Chart - it will bring up a utility toolbar
with the cursor in the data range (this is very important) click on "create Tornado Chart - from there is should be fairly evident what to do. It will overwrite data below the data range (a warning / exception handling for that is on the list for version 1.2)[/list]Thanks for your time

Hi. I have a simple macro that works fine in VBA within Outlook - I store it in VBAProject.OTM. The problem is, when I distribute this, end-users must set the security to LOW. I also have to override menu items by modifying outcmd.dat.
The solution is for me to create a COM AddIn, which I am doing with VBA6.
I have code samples from Professional Outlook 200 Programming (Slovak, Burhham, Gifford). The dll works perfectly - It adds menu items and buttons.
When I run this EXACT CODE in Outlook VBA, the menu and buttons are created AND they also run the simple macros. But once in the DLL, the buttons do not run the macros. I've even stripped down the macro to just a msgbox with still no luck. It's as if the DLL has shut down after its initial run. (It runs on Outlook start up, because I can get the menus to add, and even the test sub msgbox macro to run.) Could this be a security issue? But then why would it be allowed to run on startup but then fail?

I run several Access databases without problems. One of them recently fails to open the database object windown, either when pressing F11, when selecting from the menu, or when pressing the icon on the toolbar. No error appears; just nothing happens. An attempt to run the Report Wizard on this datbase returned an error "ActiveX component cannot create object." The basic input form appears without a problem and I can add or retrieve recores. The problem occurs with this one database only both on my PC running WINNT 4.0 and Access 97 and on my laptop running Windows 2000 and Office 2000. I've checked permissions which are fine; I work as Administrator on both machines. Does anyone have any suggestions?

I'm runnin

The macro TESTaddStyle is a testbed for the function addStyle,

addStyle is supposed to facilitate the addition of a set of character styles to the current document, loading them as well into the attached template.

addStyle is a stripped-down version of a recorded macro. I want only the emphasis charcteristics (bold, italic, underline) and the colour (green) to be affected.

Some notes:

1) From Word97, if I execute the command Format, Styles, New, AddTotemplate and the active document is itself a template, Word copes with it quite well; when I run the function addStyle on a template, Word97 barfs on the Application.OrganizerCopy with "Run-time error '4198' Command Failed". Hmm. I guess they use On Error within Word itself.

2) Despite cutting the ".size = 11" out of the recorded macro, running the function forces size=11 on the new font? How does Word97 do that?.

3) When recording the macro steps of creating a new character style, the size box is the only box to be loaded (to the value 11).

4) Unless I'm being a tad more stupid than usual at this hour of the morning, it seems that my macro always add italic font to the combination. My use of the boolean switches seems Ok to me (but see "stupid/blind" above).

5) Regarding points (2) and (5) above I've a suspicion that amounts to sneaking that deep within the bowels of Word97, the latest values for .size and .italic are being preserved from one call to the next, and are being dragged up by susequent calls.

6) I should test this out next time I get a head of steam under my other drive with Office XP, I know ....

Sub TESTaddStyle()
Call addStyle("csB", True, False, False)
Call addStyle("csI", False, True, False)
Call addStyle("csU", False, False, True)
Call addStyle("csBI", True, True, False)
Call addStyle("csBU", True, False, True)
Call addStyle("csIU", False, True, True)
Call addStyle("csBIU", True, True, True)
End Sub
Public Function addStyle(strStyleName, blnBold, blnItalic, blnUnderline)
ActiveDocument.Styles.Add Name:=strStyleName, Type:=wdStyleTypeCharacter
ActiveDocument.Styles(strStyleName).BaseStyle = "Default Paragraph Font"
With ActiveDocument.Styles(strStyleName).Font
.bold = blnBold
.italic = blnItalic
If blnUnderline Then
.underline = wdUnderlineSingle
End If
.ColorIndex = wdGreen
End With
' Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:= _
ActiveDocument.AttachedTemplate.FullName, Name:=strStyleName, Object:= _
End Function

Page 1 of 8.
Results 1...20 of 153