Bypassing the Registry in Windows Store Apps and VB | CodeGuru

Bypassing the Registry in Windows Store Apps and VB

Introduction Hello again! I like writing articles based on my personal experiences and I like giving my own personal opinions on many things concerning Microsoft. Today’s article is no exception. Being curios, I like to explore the different realms between all of the different programming worlds. I like comparing them. I like pulling them apart […]

Written By
Hannes DuPreez
Hannes DuPreez
Oct 3, 2013
3 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Introduction

Hello again! I like writing articles based on my personal experiences and I like giving my own personal opinions on many things concerning Microsoft. Today’s article is no exception. Being curios, I like to explore the different realms between all of the different programming worlds. I like comparing them. I like pulling them apart and pasting them back together.

Coming from a desktop programming background, I realize that I need to change my outlook and shift my comfort zone (my focus) to mobile apps and Windows Store apps, in case an opportunity should come my way. Today’s topic will focus on a desktop concept (the registry) that is not present in a Windows Store app. Why not? Well, it is because a Windows Store app differs entirely from a desktop app.

Windows Store apps do not have direct access to the registry. Similar to an earlier article I wrote (Serialization in Windows Store Apps) Windows Store apps has limited capabilities because it is not a desktop app that resides on the user’s computer as normal desktop apps do. It does not have access to the whole system, as we are accustomed to. It simply does not function as a normal Desktop app we are used to. Get it? Good. Let us create today’s project to see how we can still store data similar to how a desktop app would store pieces of information in the registry.

Design

Open Visual Studio 2012 or Visual Studio 2013 and create a Visual Basic Windows Store app. I have named mine Registry_Ex_VB. You could obviously use any name you like. On the Main Page, add three buttons and a Textblock (as reflected in Figure 1).

Design
Figure 1 – Design

The resulting XAML code would look like the following:

 <Button x_Name="btDelete" Content="Delete" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="218,44,0,0" Grid.Row="1"/>
<Button x_Name="btRead" Content="Read" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="120,44,0,0" Grid.Row="1"/>
<Button x_Name="btWrite" Content="Write" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="26,44,0,0" Grid.Row="1"/>
<TextBlock x_Name="tbValue" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Grid.Row="1" Margin="38,115,0,0" Height="28" Width="242" FontSize="20"/>
Advertisement

Logic

Windows 8 Store apps cannot access the registry. We can however use the following two APIs:

  1. Windows.Storage.ApplicationDataContainer
  2. Windows.Storage.ApplicationDataContainerSettings

We will work with these now in our application.

Coding

As always, let us add the necessary Imports statements (I am predictable, aren’t I?) :

Imports Windows.Storage

This gives us access to all the Storage functionalities necessary for our app. Add the following member variable (so that we can keep track of what was stored and what needs to be read):

 Private adcLocalStorage As ApplicationDataContainer = _
ApplicationData.Current.LocalSettings 'Create a Local Settings Object

Add the next code segment behind the Write button:

 'Write Info To Data Container
Private Sub btWrite_Click(sender As Object, e As RoutedEventArgs) Handles btWrite.Click

'Create Main Data Container
Dim adcMainContainer As ApplicationDataContainer = _
adcLocalStorage.CreateContainer("Reg_Example", ApplicationDataCreateDisposition.Always) 'Always Create Container

'If Main Storage Key Present
If adcLocalStorage.Containers.ContainsKey("Reg_Example") Then

'Create A Setting And Store Data Inside It
adcLocalStorage.Containers("Reg_Example").Values("Reg_Setting") = "Hello Hannes" 'Data To Be Stored

End If
End Sub

Here, we create a DataContainer object named Reg_Example. We specify that we will always need this setting to be created. This is nice, because we will not have to worry to test whether or not this container already exists or not – although you can. This is just a small example for you to build on. We then store the “Hello Hannes” string into the datacontainer’s value Reg_Setting.

Add the next code segment to read this data back into our Windows Store app:

 'Read Info From Data Container
Private Sub btRead_Click(sender As Object, e As RoutedEventArgs) Handles btRead.Click

'Determine If Container Is Present
Dim blnContainer As Boolean = adcLocalStorage.Containers.ContainsKey("Reg_Example")

Dim blnSetting As Boolean = False 'Determine If Setting Is Present

If blnContainer Then 'If Container Present

'If Setting Present Inside Container
blnSetting = adcLocalStorage.Containers("Reg_Example").Values.ContainsKey("Reg_Setting")

'Get Setting Values And Display In TextBox
tbValue.Text = adcLocalStorage.Containers("Reg_Example").Values("Reg_Setting")

End If

End Sub

Inside the Read button, we quickly make sure that the key Reg_Example does in fact exist; we then check if it has a valid setting that we can read. After all of this, we simply read the setting into our app and display it in a textblock.

Add the last piece of the puzzle (so to speak):

 'Delete Data Container
Private Sub btDelete_Click(sender As Object, e As RoutedEventArgs) Handles btDelete.Click

adcLocalStorage.DeleteContainer("Reg_Example") 'Delete

End Sub

This deletes the specified datacontainer object.

When run, your app should resemble Figure 2.

Running the app
Figure 2 – Running the app

I am including the source files below, just in case you have missed a step or two.

Conclusion

That about wraps things up for us today! Let me move on to newer topics to write about, until then, cheers and good luck!

About the Author:

Hannes du Preez is a Microsoft MVP for Visual Basic for the sixth year in a row. He is a trainer at a South African-based company providing IT training in the Vaal Triangle. You could reach him at hannes [at] ncc-cla [dot] com.

Hannes DuPreez

Ockert J. du Preez is a passionate coder and always willing to learn. He has written hundreds of developer articles over the years detailing his programming quests and adventures. He has written the following books: Visual Studio 2019 In-Depth (BpB Publications) JavaScript for Gurus (BpB Publications) He was the Technical Editor for Professional C++, 5th Edition (Wiley) He was a Microsoft Most Valuable Professional for .NET (2008–2017).

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.