随机密码

using System;
 using System.Security.Cryptography;namespace ArLi.CommonPrj {
 public sealed class RandomStr {/********
 * Const and Function
 * ********/private static readonly int defaultLength = 8;
private static int GetNewSeed(){
 byte[] rndBytes = new byte[4];
 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
 rng.GetBytes(rndBytes);
 return BitConverter.ToInt32(rndBytes,0);
 }/********
 * getRndCode of all char .
 * ********/private static string BuildRndCodeAll(int strLen) {
 System.Random RandomObj = new System.Random(GetNewSeed()); 
 string buildRndCodeReturn = null;
 for(int i=0; i<strLen; i++) {
 buildRndCodeReturn += (char)RandomObj.Next(33,125);
 }
 return buildRndCodeReturn;
 }public static string GetRndStrOfAll() {
 return BuildRndCodeAll(defaultLength);
 }public static string GetRndStrOfAll(int LenOf) {
 return BuildRndCodeAll(LenOf);
 }/********
 * getRndCode of only .
 * ********/private static string sCharLow = "abcdefghijklmnopqrstuvwxyz";
 private static string sCharUpp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 private static string sNumber = "0123456789";private static string BuildRndCodeOnly(string StrOf,int strLen) {
 System.Random RandomObj = new System.Random(GetNewSeed()); 
 string buildRndCodeReturn = null;
 for(int i=0; i<strLen; i++) {
 buildRndCodeReturn += StrOf.Substring(RandomObj.Next(0,StrOf.Length-1),1);
 }
 return buildRndCodeReturn;
 }public static string GetRndStrOnlyFor() {
 return BuildRndCodeOnly(sCharLow + sNumber,defaultLength);
 }public static string GetRndStrOnlyFor(int LenOf) {
 return BuildRndCodeOnly(sCharLow + sNumber,LenOf);
 }public static string GetRndStrOnlyFor(bool bUseUpper,bool bUseNumber) {
 string strTmp = sCharLow;
 if (bUseUpper) strTmp += sCharUpp;
 if (bUseNumber) strTmp += sNumber;return BuildRndCodeOnly(strTmp,defaultLength);
 }public static string GetRndStrOnlyFor(int LenOf,bool bUseUpper,bool bUseNumber) {
 string strTmp = sCharLow;
 if (bUseUpper) strTmp += sCharUpp;
 if (bUseNumber) strTmp += sNumber;return BuildRndCodeOnly(strTmp,LenOf);
 }
 }
 }

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:52:21 得分:0 

文件夹选择对话框

using System;
 using System.Windows.Forms;
 using System.Diagnostics;
 using System.Runtime.InteropServices;
 using System.Collections;namespace ArLi.CommonPrj {
#region how use this?
 /*
 FolderBrowser fbObj = new FolderBrowser();
 fbObj.Title = "Select a Folder";
 fbObj.Flags = 
 BrowseFlags.BIF_NEWDIALOGSTYLE|
 BrowseFlags.BIF_EDITBOX|
 BrowseFlags.BIF_STATUSTEXT
 ;
 DialogResult result = fbObj.ShowFolderBrowser();
 if (result == DialogResult.OK ) {
 MessageBox.Show(fbObj.DirectoryPath);
 }
 */
 #endregion[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
 [ComVisible(true)]public class BROWSEINFO {
 public IntPtr hwndOwner;
 public IntPtr pidlRoot;
 public IntPtr pszDisplayName;
 public string lpszTitle;
 public int ulFlags;
 public IntPtr lpfn;
 public IntPtr lParam;
 public int iImage;
 } [Flags, Serializable]
 public enum BrowseFlags {
 BIF_DEFAULT = 0x0000,
 BIF_BROWSEFORCOMPUTER = 0x1000,
 BIF_BROWSEFORPRINTER = 0x2000,
 BIF_BROWSEINCLUDEFILES = 0x4000,
 BIF_BROWSEINCLUDEURLS = 0x0080,
 BIF_DONTGOBELOWDOMAIN = 0x0002,
 BIF_EDITBOX = 0x0010,
 BIF_NEWDIALOGSTYLE = 0x0040,
 BIF_NONEWFOLDERBUTTON = 0x0200,
 BIF_RETURNFSANCESTORS = 0x0008,
 BIF_RETURNONLYFSDIRS = 0x0001,
 BIF_SHAREABLE = 0x8000,
 BIF_STATUSTEXT = 0x0004,
 BIF_UAHINT = 0x0100,
 BIF_VALIDATE = 0x0020,
 BIF_NOTRANSLATETARGETS = 0x0400,
 }public class API {
 [DllImport("shell32.dll", PreserveSig=true, CharSet=CharSet.Auto)]
 public static extern IntPtr SHBrowseForFolder(BROWSEINFO bi);[DllImport("shell32.dll", PreserveSig=true, CharSet=CharSet.Auto)]
 public static extern bool SHGetPathFromIDList(IntPtr pidl, IntPtr pszPath);[DllImport("shell32.dll", PreserveSig=true, CharSet=CharSet.Auto)]
 public static extern int SHGetSpecialFolderLocation(IntPtr hwnd, int csidl, ref IntPtr ppidl);
 }public class FolderBrowser {
 private string m_strDirectoryPath;
 private string m_strTitle;
 private string m_strDisplayName;
 private BrowseFlags m_Flags;
 public FolderBrowser() {
 m_Flags = BrowseFlags.BIF_DEFAULT;
 m_strTitle = "";
 }public string DirectoryPath {
 get{return this.m_strDirectoryPath;}
 } public string DisplayName {
 get{return this.m_strDisplayName;}
 } public string Title {
 set{this.m_strTitle = value;}
 } public BrowseFlags Flags {
 set{this.m_Flags = value;}
 }
 public DialogResult ShowFolderBrowser() {BROWSEINFO bi = new BROWSEINFO();
 bi.pszDisplayName = IntPtr.Zero;
 bi.lpfn = IntPtr.Zero;
 bi.lParam = IntPtr.Zero;
 bi.lpszTitle = "Select Folder";
 IntPtr idListPtr = IntPtr.Zero;
 IntPtr pszPath = IntPtr.Zero;
 try {
 if (this.m_strTitle.Length != 0) {
 bi.lpszTitle = this.m_strTitle;
 }
 bi.ulFlags = (int)this.m_Flags;
 bi.pszDisplayName = Marshal.AllocHGlobal(256);idListPtr = API.SHBrowseForFolder(bi);
if (idListPtr == IntPtr.Zero) {
 return DialogResult.Cancel;
 } pszPath = Marshal.AllocHGlobal(256);
bool bRet = API.SHGetPathFromIDList(idListPtr, pszPath);
m_strDirectoryPath = Marshal.PtrToStringAuto(pszPath);
 this.m_strDisplayName = Marshal.PtrToStringAuto(bi.pszDisplayName);
 }
 catch (Exception ex) {
 Trace.WriteLine(ex.Message);
 return DialogResult.Abort;
 }
 finally {if (idListPtr != IntPtr.Zero) {
 Marshal.FreeHGlobal(idListPtr);
 }
 if (pszPath != IntPtr.Zero) {
 Marshal.FreeHGlobal(pszPath);
 }
 if (bi != null) {
 Marshal.FreeHGlobal(bi.pszDisplayName);
 }
 }
 return DialogResult.OK;
 }
 }
 }

获取资源文件内容

using System;
 using System.Reflection;
 using System.Resources;namespace ArLi.CommonPrj {
 internal class getResPrj {
 internal static object GetResOf(string resFullName,string resItemName) {
 Assembly myAssem = Assembly.GetEntryAssembly();
 ResourceManager rm = new ResourceManager(resFullName,myAssem);
 return rm.GetObject(resItemName);
 }
 }
 }

Top 

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:53:01 得分:0 

获取硬盘序列号

using System;
 using System.Runtime.InteropServices;namespace ArLi.CommonPrj {
#region how use this?
 /*
 string sVol = GetVolOf("C");
 */
 #endregionpublic class getvol{
[DllImport("kernel32.dll")]
 private static extern int GetVolumeInformation(
 string lpRootPathName,
 string lpVolumeNameBuffer,
 int nVolumeNameSize,
 ref int lpVolumeSerialNumber,
 int lpMaximumComponentLength,
 int lpFileSystemFlags,
 string lpFileSystemNameBuffer,
 int nFileSystemNameSize
 );public static string GetVolOf(string drvID){
 const int MAX_FILENAME_LEN = 256;
 int retVal = 0;
 int a =0;
 int b =0;
 string str1 = null;
 string str2 = null; int i = GetVolumeInformation(
 drvID + @":\",
 str1,
 MAX_FILENAME_LEN,
 ref retVal,
 a,
 b,
 str2,
 MAX_FILENAME_LEN
 );return retVal.ToString("x");
 }
 }
 }

Top 

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:53:36 得分:0 

禁止程序重复运行限制

using System;
 using System.Runtime.InteropServices;
 using System.Diagnostics;
 using System.Reflection;namespace ArLi.CommonPrj
 {
 public class one_instance_Check
 {
 public one_instance_Check()
 {
 }#region how use this?
 /* 
 using ArLi.CommonPrj;if (one_instance_Check.goCheck("Process Exist !")) {
 Application.Run (new Form1());
 }
 */
 #endregion[DllImport("User32.dll")]
 private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
 [DllImport("User32.dll")]
 private static extern bool SetForegroundWindow(IntPtr hWnd);private const int WS_SHOWNORMAL = 1;
public static bool GoCheck(string waringMessage_ifExist) {
 Process instance = RunningInstance();
 if (instance == null) {
 return true;
 }
 else {
 if (waringMessage_ifExist != null) {System.Windows.Forms.MessageBox.Show(
 null,
 waringMessage_ifExist,
 System.Windows.Forms.Application.ProductName.ToString(),
 System.Windows.Forms.MessageBoxButtons.OK,
 System.Windows.Forms.MessageBoxIcon.Exclamation
 );}
 HandleRunningInstance(instance);
 return false;
 }
 }private static Process RunningInstance() {
 Process current = Process.GetCurrentProcess();
 Process[] processes = Process.GetProcessesByName (current.ProcessName);//Loop through the running processes in with the same name
 foreach (Process process in processes) {
 //Ignore the current process
 if ( != current.Id) {
 //Make sure that the process is running from the exe file.
 if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") ==
 current.MainModule.FileName) {
 //Return the other process instance.
 return process;
 }
 }
 }//No other instance was found, return null.
 return null;
 } private static void HandleRunningInstance(Process instance) {
 //Make sure the window is not minimized or maximized
 ShowWindowAsync (instance.MainWindowHandle , WS_SHOWNORMAL);//Set the real intance to foreground window
 SetForegroundWindow (instance.MainWindowHandle);
 }
 }
 }

Top 

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:53:47 得分:0 

文件操作

using System;
 using System.IO; namespace ArLi.CommonPrj {
 internal class FileOp {
 internal static string ReadFileOf(string fileFullName) {
 string fileBody = "";
 try{
 FileStream ObjFile = new FileStream(fileFullName,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
 StreamReader sw = new StreamReader(ObjFile,System.Text.Encoding.Default);
 fileBody = sw.ReadToEnd();
 sw.Close();
 ObjFile.Close();
 }catch (Exception e){
 fileBody = e.Message.ToString();
 }
 return fileBody;
 }
 internal static string SaveFileOf(string fileFullName,string fileBody) {
 try{
 FileStream ObjFile = new FileStream(fileFullName,FileMode.Create,FileAccess.Write,FileShare.Read);
 StreamWriter sw = new StreamWriter(ObjFile,System.Text.Encoding.Default);
 sw.Write(fileBody);
 sw.Close();
 ObjFile.Close();
 return null;
 }catch (Exception e){
 return e.Message.ToString();
 }
 }
 }
 }

Top 

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:54:44 得分:0 

播放声音

using System;
 using System.Runtime.InteropServices;namespace ArLi.CommonPrj {
 internal class sndPlay {[DllImport("winmm.dll", EntryPoint="PlaySound")]
 internal static extern bool PlaySound(ref Byte snd, IntPtr hmod, uint fdwSound);#region how use this ?
 /* //get wav byte[] from ResourceFile to sound
 ArLi.CommonPrj.sndPlay.sound=(System.Byte[])ArLi.CommonPrj.getResPrj.getResOf("namespace.ResourceFileName","ResourceItemName");
 //play of:
 ArLi.CommonPrj.sndPlay.PlaySound(ref ArLi.CommonPrj.sndPlay.sound[0],IntPtr.Zero,(uint)ArLi.CommonPrj.sndPlay.PlayingFlags.SND_MEMORY | (uint)ArLi.CommonPrj.sndPlay.PlayingFlags.SND_ASYNC);
 //stop of;
 ArLi.CommonPrj.sndPlay.sound = new System.Byte[]{0};
 ArLi.CommonPrj.sndPlay.PlaySound(ref ArLi.CommonPrj.sndPlay.sound[0],IntPtr.Zero,(uint)ArLi.CommonPrj.sndPlay.PlayingFlags.SND_MEMORY | (uint)ArLi.CommonPrj.sndPlay.PlayingFlags.SND_PURGE | (uint)ArLi.CommonPrj.sndPlay.PlayingFlags.SND_NODEFAULT);*/
 #endregion[DllImport("winmm.dll", EntryPoint="mciSendString")]
 internal static extern int mciSendString(string lpstrCommand,string lpstrReturnstring,int uReturnLength,int hwndCallback);#region how use this ?
 /*int i = sndPlay.mciSendString(@"play D:\Media\Midi\bg1.mid",null,0,0);
 int i = sndPlay.mciSendString(@"close D:\Media\Midi\bg1.mid",null,0,0);*/
 #endregioninternal static System.Byte[] sound = null;
 internal enum PlayingFlags :uint {
 SND_SYNC = 0x00,
 SND_ASYNC = 0x01,
 SND_NODEFAULT = 0x02,
 SND_MEMORY = 0x04,
 SND_ALIAS = 0x010000,
 SND_FILENAME = 0x020000,
 SND_RESOURCE = 0x040004,
 SND_ALIAS_ID = 0x0110000,
 SND_ALIAS_START = 0,
 SND_LOOP = 0x08,
 SND_NOSTOP = 0x010,
 SND_VALID = 0x01F,
 SND_NOWAIT = 0x02000,
 SND_PURGE = 0x40
 }
 }
 }

补充:SND_PURGE 参数很重要,很多人漏掉了,可以用来中止一些用sndplay 循环播放的声音

Top 

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:55:02 得分:0 

加系统菜单

using System;
 using System.Runtime.InteropServices;namespace ArLi.CommonPrj {
#region how use this?
 /*
 * append this to Form Code body
 *
 using ArLi.CommonPrj;internal const Int32 aboutID = 1000;
 protected override void WndProc(ref Message m) {
 if(m.Msg == CommonPrj.sysMenu.WM_SYSCOMMAND)
 switch(m.WParam.ToInt32()) {
 case aboutID :
 fm_About Obj = new fm_About();
 Obj.ShowDialog(this);
 return;
 default:
 break;
 }
 base.WndProc(ref m);
 }
 *
 * appendmenu on form_load
 *
 //add menuLine 
 sysMenu.AddMenu(this.Handle,0,null);
 //add menuItem
 sysMenu.AddMenu(this.Handle,IDM_ABOUT,"About ...");
 */
 #endregioninternal class sysMenu {
 internal sysMenu(){}[DllImport("user32.dll")]
 private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);[DllImport("user32.dll")]
 private static extern bool AppendMenu (IntPtr hMenu, Int32 wFlags, Int32 wIDNewItem, string lpNewItem);internal const Int32 WM_SYSCOMMAND = 0x112;
 internal const Int32 MF_SEPARATOR = 0x800;
 internal const Int32 MF_STRING = 0x0;internal static void AddMenu(IntPtr handleOf, Int32 menuID, string menuStrOf) {
 IntPtr sysMenuHandle = GetSystemMenu(handleOf, false);
 if (menuStrOf == null){
 AppendMenu(sysMenuHandle, MF_SEPARATOR, menuID, string.Empty);
 }else{
 AppendMenu(sysMenuHandle, MF_STRING, menuID, menuStrOf);
 }
 } }
 }

Top 

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:56:03 得分:0 

以下是程序:

此为资源文件生成器,支持二进制

using System;
 using System.IO;
 using System.Drawing;
 using System.Resources;
 using System.Reflection;
 using System.Windows.Forms;[assembly: System.Reflection.AssemblyVersion("1.2.*")]
[assembly: System.Reflection.AssemblyTitle("Resource Build")]
 [assembly: System.Reflection.AssemblyDescription("Resource with Binary")]
 [assembly: System.Reflection.AssemblyConfiguration("")]
 [assembly: System.Reflection.AssemblyCompany("ArLi")]
 [assembly: System.Reflection.AssemblyProduct("Resource Build")]
 [assembly: System.Reflection.AssemblyCopyright("ArLi build on C#")]
 [assembly: System.Reflection.AssemblyTrademark("")]
 [assembly: System.Reflection.AssemblyCulture("")]class resAdd {
private static AssemblyCopyrightAttribute objCopyright = (AssemblyCopyrightAttribute)AssemblyCopyrightAttribute.GetCustomAttribute(Assembly.GetExecutingAssembly(),typeof(AssemblyCopyrightAttribute));
 private static string myCopyright = objCopyright.Copyright.ToString();
 private static string myExeName = new FileInfo(Application.ExecutablePath).Name + " ";private static string mySwitch = "[Switch]:\n" +
 "/fn,fileFullName\t\tResource FileName(no Extension)\n" +
 "/img,itemName,fileFullName\tImage Type Add of Filename \n\t\t\t\t(support gif/png/jpg/bmp/ico)\n" +
 "/ico,itemName,fileFullName\tIcon Type Add of Filename \n" +
 "/bin,itemName,fileFullName\tBinary Type Add of FileName";
 private static string myExemple = "[Exemple]: Create c:\\tst.resources\n" +
 myExeName +
 "/fn,c:\\tst " +
 "/bin,wav1,wav1.wav " +
 "/bin,wav2,c:\\wav2.wav " +
 "/img,img1,bmp1.bmp" +
 "\n" + myExeName + "/fn,c:\\tst /bin,wav1,\"c:\\winnt\\media\\The Microsoft Sound.wav\"";[STAThread]
 public static void Main(string[] args) {
 if (args.Length>0){
 if(args[0] == "/?"){
 ShowHelp(null);
 }else{
 string[] filenameOf = args[0].Split(',');
 if (filenameOf[0] == "/fn" && filenameOf.Length >= 2){
 if (filenameOf[1] == ""){
 ShowHelp("u must input filename of /fn,fileFullName !");
 }else{
 string theResourcesFileName = filenameOf[1] + ".resources";
 ResourceWriter rw = new ResourceWriter(theResourcesFileName);for(int i=1; i<args.Length; i++){
 string[] addBody = args[i].Split(',');
 if (addBody.Length < 3){
 Console.WriteLine("Invalid switch on: " + args[i]);
 }else{
 FileInfo ObjFile = new FileInfo(addBody[2]);
 if (! ObjFile.Exists){
 Console.WriteLine("File " + ObjFile.FullName + " no Exists!!! skip this.");
 }else{
 switch (addBody[0].ToUpper()){
 case "/IMG":
 ImageAdd(rw,addBody[1],ObjFile.FullName);
 Console.WriteLine("append Type:Image of " + addBody[1] + " (" + addBody[2] + ")");
 break;
 case "/ICO":
 IconAdd(rw,addBody[1],ObjFile.FullName);
 Console.WriteLine("append Type:Icon of " + addBody[1] + " (" + addBody[2] + ")");
 break;
 case "/BIN":
 BinaryAdd(rw,addBody[1],ObjFile.FullName);
 Console.WriteLine("append Type:Binary of " + addBody[1] + " (" + addBody[2] + ")");
 break;default:
 ShowHelp("u must input resources type !");
 break;
 }
 }
 }
 }Console.WriteLine("\nbuild of " + theResourcesFileName + " complete.");
 rw.Generate();
 }
 }else{
 ShowHelp("need filename of /fn,fileFullName !");
 }
 }
 }else{
 ShowHelp(null);
 Console.WriteLine("\nPress Enter to end ..");
 Console.Read();
 }
 }private static void ShowHelp(string ErrMsg) {
 Version PrjVer = new Version(Application.ProductVersion);Console.WriteLine("" +
Application.ProductName.ToString() +
 " v" + PrjVer.Major.ToString() + "." + PrjVer.Minor.ToString() + "." + PrjVer.Build.ToString() +
 " Studio: " + Application.CompanyName +
 " Copyright: " + myCopyright +"\n");
if (ErrMsg != null){Console.WriteLine("Waring !!\n" + ErrMsg + "\n");}
Console.WriteLine(myExemple + "\n\n" + mySwitch);
 }private static void BinaryAdd(ResourceWriter rw,string itemnameOf,string filenameOf) {
 try{
 FileStream fs = new FileStream(filenameOf,FileMode.Open, FileAccess.Read);
 int byteLength = (int)fs.Length;
 byte[] wf = new byte[byteLength];
 fs.Read(wf,0,byteLength);
 fs.Close();rw.AddResource(itemnameOf, wf);
 }catch (Exception e){
 Console.WriteLine(e.ToString());
 }
 }private static void ImageAdd(ResourceWriter rw,string itemnameOf,string filenameOf) {
 try{
 Image b = Image.FromFile(filenameOf);
 rw.AddResource(itemnameOf, b);
 }catch (Exception e){
 Console.WriteLine(e.ToString());
 }
 }private static void IconAdd(ResourceWriter rw,string itemnameOf,string filenameOf) {
 try{
 Icon b = new Icon(filenameOf);
 rw.AddResource(itemnameOf, b);
 }catch (Exception e){
 Console.WriteLine(e.ToString());
 }
 }
 }

Top 

回复人: ArLi2003(阿利,失业+失恋 努力中) ( ) 信誉:100 2003-4-25 0:57:46 得分:0 

程序,我以前有个习惯不使用资源而是将内容二进制打进程序
直接使用 byte[] bgSound = new byte[]{....} //此为声音文件二进制,原来是用vc 现在特用c# 重写了一个

using System;
 using System.IO;
 //using System.Drawing;
 //using System.Resources;
 using System.Reflection;
 using System.Windows.Forms;
 using System.Text.RegularExpressions;[assembly: System.Reflection.AssemblyVersion("1.5.*")]
[assembly: System.Reflection.AssemblyTitle("string Build")]
 [assembly: System.Reflection.AssemblyDescription("System.byte[] to string")]
 [assembly: System.Reflection.AssemblyConfiguration("")]
 [assembly: System.Reflection.AssemblyCompany("ArLi")]
 [assembly: System.Reflection.AssemblyProduct("string Build")]
 [assembly: System.Reflection.AssemblyCopyright("ArLi build on C#")]
 [assembly: System.Reflection.AssemblyTrademark("")]
 [assembly: System.Reflection.AssemblyCulture("")]class resAdd {
private static AssemblyCopyrightAttribute objCopyright = (AssemblyCopyrightAttribute)AssemblyCopyrightAttribute.GetCustomAttribute(Assembly.GetExecutingAssembly(),typeof(AssemblyCopyrightAttribute));
 private static string myCopyright = objCopyright.Copyright.ToString();
 private static string myExeName = new FileInfo(Application.ExecutablePath).Name + " ";private static string myHelpBody = "" +
"[Syntax]:\n" +
 myExeName + "formFile variableName toFile \tsave string to file\n" +
 myExeName + "formFile variableName /copy \tcopy string to clipboard.\n" +
 myExeName + "formFile variableName /copy /s \tcopy string & show stats.\n\n" +"[Exemple]:\n" +
 myExeName + "c:\\1.ico ico_1 /copy /s";[STAThread]
 public static void Main(string[] args) {
 if (args.Length>2){
 if(args[0] == "/?"){
 ShowHelp(null);
 }else{
 try{
 FileInfo fi = new FileInfo(args[0]);
 Match MatchVariableName = Regex.Match(args[1],@"\b([a-zA-Z]\w*)",RegexOptions.IgnoreCase|RegexOptions.IgnorePatternWhitespace|RegexOptions.ExplicitCapture);
 string variableName = MatchVariableName.ToString();
 if (args[1].Substring(0,1) == "/"){
 Console.WriteLine("don't forget VariableName!!!");
 }
 else if (! fi.Exists){
 Console.WriteLine("File " + fi.FullName + " no Exists!!!");
 }
 else if (variableName == ""){
 Console.WriteLine("invalid variableName!!");
 }
 else{
 FileStream fs = new FileStream(fi.FullName,FileMode.Open, FileAccess.Read);
 int byteLength = (int)fs.Length;
 byte[] wf = new byte[byteLength];
 fs.Read(wf,0,byteLength);
 fs.Close();
 fs = null;int i = 0;
 byte iCr = 0;
 bool ShowStats = (args.Length>3 && args[3] == "/s");string s = "System.Byte[] " + variableName + " = new System.Byte[] {";
 string sp = new string(' ',byteLength.ToString().Length);Console.Write("Poc " + s + "" + byteLength.ToString() + " byte} ...\nuse CTRL+Break can stop ...\n");
s += "\r\n";
if (ShowStats){
 while(i < byteLength){
 s += wf[i] + ",";
 if (iCr == 25){
 s += "\r\n";
 iCr=0;
 }
 i++;
 iCr++;
 Console.Write("\r" + i + sp);
 }
 }else{
 while(i < byteLength){
 s += wf[i] + ",";
 if (iCr == 25){
 s += "\r\n";
 iCr=0;
 }
 i++;
 iCr++;
 }
 }s = s.Remove(s.Length-1,1) + "\r\n};";
 s = "\t#region System.Byte[] " + variableName + " = new System.Byte[] {...}\r\n" + s + "\r\n\t#endregion";if (args[2] == "/copy") {
 Clipboard.SetDataObject(s,true);
 }else{
 FileInfo ObjFile = new FileInfo(args[2]);
 StreamWriter sw = ObjFile.CreateText();
 sw.Write(s);
 sw.Close();
 }
 Console.WriteLine("\rdone.. ^o^");
 }
 }catch (Exception e){
 Console.WriteLine(e.Message.ToString());
 }
 }
 }else{
 ShowHelp(null);
 Console.WriteLine("\nPress Enter to end ..");
 Console.Read();
 }
 }private static void ShowHelp(string ErrMsg) {
 Version PrjVer = new Version(Application.ProductVersion);Console.WriteLine("" +
Application.ProductName.ToString() +
 " v" + PrjVer.Major.ToString() + "." + PrjVer.Minor.ToString() + "." + PrjVer.Build.ToString() +
 " Studio: " + Application.CompanyName +
 " Copyright: " + myCopyright +"\n");
if (ErrMsg != null){Console.WriteLine("Waring !!\n" + ErrMsg + "\n");}
Console.WriteLine(myHelpBody);
 }
 }