Host a process window inside your applications window
The following snippet will allow you to host the window of any application inside your own application. This isn’t a recommended practice but it’s a fun method that might spawn some interesting ideas.
In order to get this working we will need to pinvoke two Win32 functions, SetParent
and SetWindowPos
.
Place the following lines in your class
1 2 3 4 | [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("user32.dll", EntryPoint = "SetWindowPos")] public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, int wFlags); |
Shortening a URL using bitly’s API in C#
Using the snippet below you can convert links in your application from this
1 | http://www.fluxbytes.com/ |
to this
1 | http://bit.ly/WVk1qN |
This is especially important in cases where you have a fairly long URL which you want to post somewhere and you either don’t want to use such a long URL, or simply you are limited by characters. An example of that situation would be a URL such as
1 | http://www.google.com/url?sa=t&rct=j&q=c+sharp+convert+string+to+binary&source=web&cd=1&cad=rja&ved=0CDQQFjAA&url=http%3A%2F%2Fwww.fluxbytes.com%2Fcsharp%2Fconvert-string-to-binary-and-binary-to-string-in-c%2F&ei=T79SUcOVI4rEPOeogPgP&usg=AFQjCNEihqo_KsRZuGpb0-ZpWdqjdqr_sA |
which can be shortened down to
1 | http://bit.ly/WVuXF4 |
The first thing you are going to need it an account from bitly.com. After you have created an account, log in and navigate to https://bitly.com/a/your_api_key. The page will contain your username and your API key which are both needed.
Convert string to binary and binary to string in C#
The following two snippets allow you to convert a string to binary text and also to convert binary back to string.
String to binary method:
1 2 3 4 5 6 7 8 9 10 | public static string StringToBinary(string data) { StringBuilder sb = new StringBuilder(); foreach (char c in data.ToCharArray()) { sb.Append(Convert.ToString(c, 2).PadLeft(8, '0')); } return sb.ToString(); } |
Binary to string method:
1 2 3 4 5 6 7 8 9 10 | public static string BinaryToString(string data) { List<Byte> byteList = new List<Byte>(); for (int i = 0; i < data.Length; i += 8) { byteList.Add(Convert.ToByte(data.Substring(i, 8), 2)); } return Encoding.ASCII.GetString(byteList.ToArray()); } |
Usage:
1 2 3 4 5 | // returns "01100110011011000111010101111000011000100111100101110100011001010111001100101110011000110110111101101101" StringToBinary("fluxbytes.com") // returns "fluxbytes.com" BinaryToString("01100110011011000111010101111000011000100111100101110100011001010111001100101110011000110110111101101101"); |
Posted in C#.
Tagged binary, binary to string, C#, csharp, snippet, string to binary, winforms
Create and extract .zip files in C#
Sadly there aren’t many flexible or efficient ways to create .zip files in .NET prior to .NET 4.5. Thankfully some people took the initiative and created some very easy to use libraries for creating/extracting and updating .zip files. My two all time favourite are DotNetZip and SharpZipLib.
For this example I will be using the DotNetZip
library.
First you will need to download the library (.dll) either from http://dotnetzip.codeplex.com/ or from http://www.fluxbytes.com/?dl_name=DotNetZipLib_v1.9.1.8.rar. The file should contain quite a few libraries, so choose the one that suits your needs the most and add it as a reference in your project.
Posted in C#.
Tagged C#, csharp, DotNetZipLib, SharpZipLib, snippet, tutorial, winforms