Windows Live Essentials: Error 0x80070643 during install

Pain in the ass this is. I hate the installers that Microsoft use because:

  1. Errors make no sense
  2. The "more information" link takes me to my fucking email
  3. I can't copy-pasta the error text so I have to type it out manually

Basically the error I had was I uninstalled an old version, grabbed a 2011 installer from Microsoft's website when I searched for "windows live writer" and to download the installer (which was 1.1mb).

At the 99% end of the installation process, it threw up an ugly error 0x80070643. The hell does that mean?

I thought I needed a reboot to put the (new) system into a clean state. Nope.

I cleaned out registry values with TuneUp Utilities Registry Cleaner. Nope.

So in frustration, I looked for another download. This time I searched for "Windows Live essentials" which gave me the 2012 installer, sized at 1.2mb. This made all the difference!

Standard Microsoft operational procedure. For a great example, refer to Xbox One debacle(s).

Using the 2012 installer, I suspect that Microsoft didn't think far ahead when it came to upgrades.

After it eached 100%, I got Windows Live Writer 2012 without any hiccups at all. All my stuff was updated and nothing seemed lost in the process.

Windows: Remove "AMD Vision Engine Control Center" from context menu with a one line command

Ugh, you're already in my taskbar! What use do you even serve by existing there!?

 image image

To get rid of it, you'll need admin rights for this to work. Look for "Command Prompt" in the start menu (and "Run as Administrator" if you have UAC enabled).

Paste in this command:

reg DELETE "HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\ACE" /f

If all goes well, you should see "The operation completed successfully".

Enjoy your clutter free menu =)

image image

Windows: EXE files locked by System Process PID 4

Firefox downloads were failing, I couldn't delete files properly, Steam wouldn't update/install, there were random issues with moving files. That's just to name a FEW things that was driving me batshit insane over the past few hours with my new computer.

Get out of my way! I ain't in the mood for your shit!

An easy way to test this is to copy a new exe file somewhere and try to delete it. It may disappear, but when you refresh the folder it'll still be there. Checking out the locks on Process Explorer will show 2 processes locking it, System (pid 4) and Explorer.

For some reason, this manic behaviour was all caused by disabling the "Application Experience" service. Simply re-enable it and everything should just work again.


Android: How to make an activity background transparent/translucent

I'm currently in the process of updating my File Dialog selection library and found a way to give it a subtle facelift.

Much like how Dropbox has this beautiful floating Dialog that doesn't seem to belong to any specific Activity, we too can do this!

For your transparent activity, add "android:theme" to the AndroidManifest.xml declaration:

<activity android:label="@string/app_name" android:name="com.lamerman.FileDialog" android:theme="@android:style/Theme.Translucent.NoTitleBar">

The Translucent.NoTitleBar theme is already part of the SDK, so no need to create any new themes. As a reminder, if you're using activities from a library you'll have to set this on the AndroidManifest.xml declaration in YOUR app also.

This will work just fine up until API level 10 (Android 2.3 Gingerbread).  Once you hit Honeycomb, or when most people would realise Ice-cream Sandwich, this won't work.

Fortunately, there's not much prep-work required for the Activity.

public void onCreate(Bundle savedInstanceState) {

getWindow().setBackgroundDrawable(new ColorDrawable(0));

// ...


Screenshot_2013-08-22-09-34-46 Screenshot_2013-08-22-09-10-47

On the left we have the invisible translucent activity, even though it's used as a library. Right screenshot shows the app running from the launcher. I couldn't get it to shrink for some reason, but at the very bottom you can see phone, contacts, messaging and Chrome showing through.

This code will work back to Android API 4, which is pretty much standard with most things these days.


Windows 8: How to slipstream the ISO, strip out features and pre-configure the installation

Ever since learning this technique for Windows XP, I've always gutted out useless features from my Windows installation. There's no point bloating up the drive and wasting space with stuff I'll never use.

Note: You'll need to run this from a Windows 8, so set up a copy in VirtualBox or something.

First step is to grab WinReducer. At time of writing it's WinReducer 8 (v0.90 beta).

After extracting the contents of the zip file to C:\WinReducer, it should look like this.


Run whichever executable you're working on (x86 vs x64).

Setup is a bit tricky, but the setup screen helps a lot with the "Website Download" links.


Download the missing software mentioned to fill in both x86 and x64, by clicking on the links on the website download links.

Assuming default install paths:

  • Download and install 7zip 9.30 alpha (at time of writing)
  • Click the checkbox next to 7zip and go to "C:\Program Files (x86)\7-Zip"
  • Select 7z.exe
  • Click on the download link for ImageX. It'll take you to a forum where you can grab "GetWaikTools.7z"
  • Use 7z and open GetWaikTools.7z and run the exe
  • Use the following settings


  • When asked, select "C:\WinReducer8\APPS"
  • It'll then proceed to download a bunch of files into that folder. This tool saves you from downloading and installing hundreds of MBs for no reason.
  • After it's all done, select ImageX from "C:\WinReducer8\APPS\Waik_4\x86"
  • "oscdimg" should be in the same folder also.
  • For "SetACL", there's a tiny box on the right hand side which takes you straight to the download link without having to scroll
  • Download and extract the EXE version of SetACL to "C:\WinReducer8\APPS".
  • Choose the appropriate SetACL file from "C:\WinReducer8\APPS\SetACL (executable version)\32 bit"
  • Finally, download and install ResHacker.
  • Select it from "C:\Program Files (x86)\Resource Hacker" and select "ResHacker.exe"


Don't forget to select the appropriate versions for the x64 (amd64) counterpart.

You should no longer have any red fields to fill in.


Some advice to keep in mind:

  • 7zip v9.20 is the current stable version, but WinReducer requires 9.30 which is (currently) only available in alpha from the right hand side column (it's stupid and doesn't explain why)
  • GetWaikTools will give you ImageX and oscdimg tools for both x86 and x64.
  • This process could be much simpler, but hey it's still beta.


Once you're done, click Save and continue.


  • If you've got a Win8 ISO, click "Extract an ISO" and then Open.
  • If you've already extracted a copy somewhere, then just click Open and select the folder.



Notable features?

  • Remove Earth, Flower and High Contrast themes
  • Skip Metro and boot straight to desktop
  • Remove charms/Windows Sidebar
  • Strip out Metro apps (starting to see a pattern here? hehe)


After you're done removing things and going through the settings, click Apply. Watch as it ever so slowly removes all the stuff you've chosen.


lol sports, might as well get an Xbox One.

As with Windows 7, this will take some time so be patient.

Once you're done, you have the option to save the WIM (Windows setup image) or to "save WIM and create ISO". I chose the latter since I wanted to test it out straight away. Again, it'll take even more time to save and compile the damn image.

After a fairly light trim, I managed to reduce my Windows 8 Pro image from 3.41gb to 2.80gb.

Ran into no problems whatsoever when trying it out on a VirtualBox VM. Not bad I must say!

Personally Windows 8 still isn't for me, but I'm sure there are plenty of people out there content with it who wouldn't mind a slightly less bloated experience. To those people, enjoy!


Then again, there are others who enjoy Mac and won't STFU...

Windows 8: Sign into Windows WITHOUT a Microsoft account

It's nice knowing that I'd still be able to use my computer in the case my online account gets compromised.

Also, I live in Australia. Getting a stable internet connection is hard enough. As we've seen from Sim City and Diablo 3, online-only has been proven painful for everyone involved.

Already signed in with a Microsoft account?

If you've already logged in with an online Microsoft account, you can convert it to a local account.

In Metro, type in "Users" and select "Settings". By default it searches Apps and you may have nothing in the results.


Now click on "Switch to a local account".


Follow the prompts. New password is optional.

Adding a non-Microsoft account user

For future reference, after Windows 8 installation you can create a local user immediately by clicking on "Sign in without a Microsoft account" at the bottom.

image From there the steps are fairly straight forward.


Windows 8: Restore Start Menu, skip straight to desktop after login and disable Metro

My first time trying out Windows 8 after it's initial release was not pleasant to say least.

But now that the Windows 8 hacks and tweaks have had time to evolve and stabilise, I guess it won't hurt to give it another shot.

As nice as this tablet interface is for touch screens, it has no place on my desktop PC. Seriously, Windows 8 uptake would have been much better if the whole Metro bullshit was optional.

There are still people out there who need to produce content, not just consume it. Breaking the workflow for millions of those users worldwide because of touch screen devices was a poor decision.

Anyway, I could bitch on for hours about the stupid decisions made at Microsoft of late *cough*Windows 8, NSA, XBOX ONE*sneeze*

Let's make it usable!


There are a few alternatives out there which work well, but I was after a very "authentic" Start Menu replacement.

Start 8 is great, but not free. As good as it is, I don't like the idea of having to pay extra in order to get something working "right".

Start Menu X simply didn't give off the legitimate vibe at all. The screenshots look fine, but it wasn't close enough to the traditional UI I was after.

Classic Shell is a good one, but it changed quite a bit too much for my liking.

Pokki is a nice menu by SweetLabs but as I said before, I wanted a more traditional menu. This also includes an "app store" which looks pretty handy, but I'm not really after that sort of functionality.

Start Menu Reviver just looks like all sorts of wrong.

Restoring the Start Menu

Head over to IObit's page to grab a copy of their Start Menu 8 software. At time of writing, I used v1.1.0 (4.60MB).

My first attempt at using it was a bit funny, but it was probably due to Internet Explorer causing all sorts of mayhem on the machine. After I reinstalled it worked fine.

The setup is a straight forward, no fuss process. The program takes effect straight away without the need to reboot.

After the install you'll be greeted with this screen which allows you to pick the start menu orb image.

win8 after install image


Skip straight to desktop and disable Metro!

General settings has all sorts of goodies which made me very excited.

First of all, Start Menu 8 disables Metro so when you press the Windows button it'll show the start menu, not the stupid Metro screen.


"Skip Metro Screen" is one of those must-have features. Rather than waiting on the Metro screen and wasting CPU usage, you can just skip that shit and go straight to desktop mode. Ain't nobody got time for that!

Another nice feature is "Deactivate Metro Hot Corners", which removes the annoying Windows 8 Sidebar (Windows Charms Bar).


Other customisable options include the ability to show/hide menu items.

Overall, very impressed with how easy it is to set up and that it doesn't even require a reboot to take effect. There's only one issue I've noticed and that it briefly shows the Metro screen before starting up and switching to Desktop mode.

Other than that, if you're using Windows 8 on a desktop then please do yourself a favour and stop handicapping your system!

The link again for IObit Start Menu 8.

Android: How to fix NetworkOnMainThreadException by disabling strict mode

First and foremost, let me make it clear that I strongly advise against this. The reason why this was introduced in Android Honeycomb 3.1 is because people just didn't know they were running long IO tasks on the main thread.

Google was sick and tired of being blamed for the sluggish performance of Android so they turned it into an exception. The UI thread now times IO tasks and raises exceptions whenever it runs longer than a given threshold.

So now it's your problem, and only you can fix it.

Yeah it stinks, but it's the truth.

You can of course disable this, but it's actually better to fix the cause than to hide the symptom. The reason why I'm sharing this is because it can be used as a "quick-fix" before you take the time to fix it properly.

Turning it off is quite simple, it's just a 2 liner.

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

Unless you're supporting Android 2.x. Then it becomes a huge pile of... reflection.

Big thanks to pixel on StackOverflow for writing this up!

* This snippet allows UI on main thread.
* Normally it's 2 lines but since we're supporting 2.x, we need to reflect.
private void disableStrictMode() {
// StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
// StrictMode.setThreadPolicy(policy);

try {
Class<?> strictModeClass = Class.forName("android.os.StrictMode", true, Thread.currentThread().getContextClassLoader());
Class<?> threadPolicyClass = Class.forName("android.os.StrictMode$ThreadPolicy", true, Thread .currentThread().getContextClassLoader());
Class<?> threadPolicyBuilderClass = Class.forName("android.os.StrictMode$ThreadPolicy$Builder", true, Thread.currentThread().getContextClassLoader());

Method setThreadPolicyMethod = strictModeClass.getMethod("setThreadPolicy", threadPolicyClass);

Method detectAllMethod = threadPolicyBuilderClass.getMethod("detectAll");
Method penaltyMethod = threadPolicyBuilderClass.getMethod("penaltyLog");
Method buildMethod = threadPolicyBuilderClass.getMethod("build");

Constructor<?> threadPolicyBuilderConstructor = threadPolicyBuilderClass.getConstructor();
Object threadPolicyBuilderObject = threadPolicyBuilderConstructor.newInstance();

Object obj = detectAllMethod.invoke(threadPolicyBuilderObject);

obj = penaltyMethod.invoke(obj);
Object threadPolicyObject = buildMethod.invoke(obj);
setThreadPolicyMethod.invoke(strictModeClass, threadPolicyObject);
catch (Exception ex) {
Log.w("disableStrictMode", ex);

Seriously, so messy but it works so I can't complain.


Android: Retain instance of WebView content on rotation

Unlike fragments, the WebView doesn't retain it's own instance very easily. Nothing more annoying than a web page reloading itself when you rotate the screen...

The way I managed this before in CodePeeker was to save the whole HTML string into memory and set it whenever the screen was rotated. This was slow, horribly inefficient with memory and just plain embarassing.

There have been numerous attempts at fixing it on StackOverflow, but the solution found by Andrea Bresolin seems to be the magic bullet that fixes it. His trick with keeping the WebView out of the layout XML was the missing voodoo ingredient I needed for the fix.

I managed to simplify his solution down a little further and update it for the newer API levels.

First of all, you'll need to extract your WebView out from the layout XML and move it into the code. For this to work, this control has to be created dynamically.

public class CodePeekerActivity extends Activity {
private WebView m_webview = null;
// ...

Secondly, ensure that your app manages the configuration changes upon rotation. In AndroidManifest.xml, add configChanges to your Activity declaration.


Override Activity.onSaveInstanceState().

// Save the state of the web view when the screen is rotated.
protected void onSaveInstanceState(Bundle outState) {

Lastly, take control of your Activity's onCreate().

public void onCreate(Bundle savedInstanceState) {

// Load layout
// ...

// Create WebView
m_webview = new WebView(this);

// Add WebView to Activity
// ...

// Reload the old WebView content
if (savedInstanceState != null) {
// Create the WebView
else {
// ... and any other configuration here

// ...

Just be sure that you're only restoring when the savedInstanceState data exists.

If you set any options before calling WebView.restoreState(), then the call to restore won't work!

Once that's all in place, you can rotate until your heart's content!



Copyright © Twig's Tech Tips
Theme by BloggerThemes & TopWPThemes Sponsored by iBlogtoBlog