Tag Archives: csharp
Using the snippet below you can convert links in your application from this
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
which can be shortened down to
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.
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:
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'));
Binary to string method:
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));
// returns "01100110011011000111010101111000011000100111100101110100011001010111001100101110011000110110111101101101"
// returns "fluxbytes.com"
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
First you will need to download the library (.dll) either from http://dotnetzip.codeplex.com/ or from http://www.fluxbytes.com/?dl_name=DotNetZipLib_v126.96.36.199.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.
If you are looking for a way to set a global hotkey for your C# application that can be used without your form having focus I have created a decently commentated example for you below that you can use.
public partial class ExampleForm : Form
private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
None = 0,
Alt = 1,
Control = 2,
Shift = 4,
WinKey = 8
int id = 0; // The id of the hotkey.
RegisterHotKey(this.Handle, id, (int)KeyModifier.Shift, Keys.A.GetHashCode()); // Register Shift + A as global hotkey.
protected override void WndProc(ref Message m)
if (m.Msg == 0x0312)
/* Note that the three lines below are not needed if you only want to register one hotkey.
* The below lines are useful in case you want to register multiple keys, which you can use a switch with the id as argument, or if you want to know which key/modifier was pressed for some particular reason. */
Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF); // The key of the hotkey that was pressed.
KeyModifier modifier = (KeyModifier)((int)m.LParam & 0xFFFF); // The modifier of the hotkey that was pressed.
int id = m.WParam.ToInt32(); // The id of the hotkey that was pressed.
MessageBox.Show("Hotkey has been pressed!");
// do something
private void ExampleForm_FormClosing(object sender, FormClosingEventArgs e)
UnregisterHotKey(this.Handle, 0); // Unregister hotkey with id 0 before closing the form. You might want to call this more than once with different id values if you are planning to register more than one hotkey.