Resource Explorer (DLL/Exe) using C#

After long time we are with the Resource Explorer.
This is verymuch usefull for the resource management in the Application/DLL.

Purspose

    You are having the images/icon in other dll then you can load and use that particular image/icon using the below concept

Source Code:

public partial class frmAssemblyHandling : Form

{

public frmAssemblyHandling()

{

InitializeComponent();

}

private void btnSelectDLL_Click(object sender, EventArgs e)

{

//the required resources to filter from the available

ArrayList arImageFilter = new ArrayList();

arImageFilter.AddRange(new string[] { ".png", ".ico", ".bmp", ".png" });



OpenFileDialog fd = new OpenFileDialog();

fd.Filter = "DLL Files (*.Dll)|*.dll|Application Files (*.exe)|*.exe";

if (fd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

try

{

lblAssemblyPath.Text = fd.FileName.ToString().Trim();

//load the selected assembly

var asm = Assembly.LoadFile(lblAssemblyPath.Text.Trim());

string resName = asm.GetName().Name + ".g.resources"; //open the resources

using (var stream = asm.GetManifestResourceStream(resName))

using (var reader = new System.Resources.ResourceReader(stream))

{

//filtering the resource and add the path to listbox

lstResources.DataSource = reader.Cast<DictionaryEntry>().Where(x =>

arImageFilter.Contains(System.IO.Path.GetExtension(x.Key.ToString()))).Select(entry =>

(string)entry.Key).ToArray();

}

}

catch (Exception ex)

{

lblAssemblyPath.Text =
string.Empty;

MessageBox.Show(string.Format("Unable to load the resource(s) from {0}",

fd.FileName.ToString().Trim()), "Resource Explorer",

MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}

}

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

if (!lblAssemblyPath.Text.Trim().Equals(string.Empty))

{

string sAssemblyPath = lblAssemblyPath.Text.Trim();

if (System.IO.File.Exists(sAssemblyPath))

{

var asm = Assembly.LoadFile(sAssemblyPath);

                    string resName = asm.GetName().Name + ".g.resources";
using (var stream = asm.GetManifestResourceStream(resName))

using (var reader = new System.Resources.ResourceReader(stream))

{

//select the specific resource

//and convert it to stream->image and display in the picture box

pictureBox1.Image = Image.FromStream((reader.Cast<DictionaryEntry>().Where(x =>

x.Key.Equals(lstResources.SelectedItem.ToString())).Select(entry =>

(System.IO.
Stream)entry.Value).FirstOrDefault()));

}

}

}

}

}


Screen Shots

1. Application Interface


2. Sample Resource (DLL)






 

Comments

pavloyahr said…
The polygamous Casino - OKlahomacasinoguru
The polygamous Casino offers you 양방배팅 everything 블랙 잭 전략 you 예스 벳 88 need to know about the 브라 벗기 world's most 월드 벳 famous slots and table games.

Popular posts from this blog

How to check the Hybrid Connection in Azure Website (Webapp)

Know more about Azure Website KUDU?

Screen Zooming Tool in Windows