using System;
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Globalization;

// uyod_s1.exe
// ทำงานแบบ Windows Application 
// ไม่จำเป็นต้องมี util.cs และ Time.cs 

namespace Original
{
    static class Program
    {
        public static string MyProg = "uyod_s1".ToLower();	
        private static string MyApp = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;        
        public static string MyFolderApp = System.IO.Directory.GetCurrentDirectory();  // โพลเดอร์ทำงาน
        public static bool App4Console =false ; // true ทำงานแบบ Console Application ,fause ทำงานแบบ Windows Application 
        public static bool insource=false ;
        public static bool inharddisk = false;
        public static int nForWork = 1;
        public static string cFleWorkAct = "";  // ไว้ในในอนาคต ต่อไป 
        public static string cTemp = "", cTemp2 = "";  // ตัวแปรดัมมี่
        private static string cpFlag = "", cpText1 = "", cpText2 = "";
        private static string FleHistory = "Temp\\History_uyod_s1.txt";

        static void Readme()
        {
            string Fle4Readme=MyFolderApp+"\\Readme.txt";
            TextWriter Logtxt = new StreamWriter(Fle4Readme);
            // การใช้งาน
            cTemp = (Environment.MachineName + "_" + Environment.UserName).ToLower();
            Logtxt.WriteLine("*" + MyProg + ".exe  ,DT : "+ File.GetLastWriteTime(MyApp).ToString("dd/MM/yy HH:mm"));
            Logtxt.WriteLine(MyApp);
            Logtxt.WriteLine(""); 
            Logtxt.WriteLine("ชุดคำสั่ง ");
            Logtxt.WriteLine("Uyod_S1 1 1 0   ---> ปรับปรุงโปรแกรม HOVFP.EXE,POSVFP.EXE");
            Logtxt.WriteLine("Uyod_S1 1 2 0   ---> ปรับปรุงโปรแกรม POSVFP.EXE,HOVFP.EXE");
            Logtxt.WriteLine("Uyod_S1 2 ชื่อไฟล์ ข้อความ   ---> เขียน Text File");
            Logtxt.WriteLine("Uyod_S1 3 ไฟล์ต้นทาง ไฟล์ปลายทาง   ---> เขียน Text File แบบล่างขึ้นบน");
            Logtxt.WriteLine("Uyod_S1 4 ไฟล์ต้นทาง ไฟล์ปลายทาง   ---> แปลง Text File จาก ASCII เป็น UTF8");
            Logtxt.WriteLine("Uyod_S1 5 0 0   ---> Download และติดตั้งตามชื่อเครื่อง");
            Logtxt.WriteLine("    ใช้ร่วมกับ Do FinnishRun In \\Pos\\Security\\Prog\\Sec4Prog");
            Logtxt.WriteLine("    ตอนออกจากโปรแกรม วันละครั้งเท่านั้น");
            Logtxt.WriteLine("Uyod_S1 6 0 0   ---> ตรวจสอบโปรแกรมตอนเข้าวินโดร์");
            Logtxt.WriteLine("Uyod_S1 7 0 0   ---> สร้างไฟล์ Environment เวอร์ชั่น 2 ต่อจาก util_pok2 3 0 0");
            Logtxt.WriteLine("");
            Logtxt.WriteLine("เกี่ยวกับเวบ uyod.net ");
            Logtxt.WriteLine("Uyod_S1 UC ชื่อไฟล์rar ชื่อไฟล์ที่จะบีบ   ---> สร้างไฟล์เพื่อ Uyod_S1 5 0 0 ");
            Logtxt.WriteLine("    rar และ upload ไปที่ http://uyod.net/customer");
            Logtxt.WriteLine("   เช่น Uyod_S1 UC lock_" + cTemp + " test.txt");
            Logtxt.WriteLine("Uyod_S1 UR ไฟล์ต้นทาง ไฟล์ปลายทาง   ---> เปลี่ยนชื่อไฟล์บนเวบ uyod.net");
            Logtxt.WriteLine("   เช่น Uyod_S1 UR customer/lock_" + cTemp+ ".rar lock_" + cTemp+".ren");
            Logtxt.WriteLine("   *** ไฟล์ปลายทางไม่ต้องระบุโพลเดอร์");
            Logtxt.WriteLine("Uyod_S1 UE ไฟล์ที่จะลบ 0   ---> ลบไฟล์บนเวบ uyod.net");
            Logtxt.WriteLine("   เช่น Uyod_S1 UE customer/lock_" + cTemp+".rar  0");
            Logtxt.WriteLine("Uyod_S1 UL ชื่อโพลเดอร์ 0   ---> แสดงไฟล์บนเวบ uyod.net");
            Logtxt.WriteLine("Uyod_S1 UU ชื่อโพลเดอร์ ชื่อไฟล์   ---> Upload ไปเวบ uyod.net");
            Logtxt.WriteLine("   เช่น Uyod_S1 UU 0 test.txt ---> 0=โพลเดอร์หลัก ");
            Logtxt.WriteLine("Uyod_S1 UD ชื่อไฟล์บนเวบ ชื่อไฟล์ที่Download   ---> Download จากเวบ uyod.net");
            Logtxt.WriteLine(""); Logtxt.WriteLine("");

            Logtxt.WriteLine("Uyod_S1 5 0 0  --> DownloadUserName");
            cTemp = ("Temp\\lock_" + Environment.MachineName + "_" + Environment.UserName + ".rar").ToLower() ;
            if (File.Exists(cTemp)) { Logtxt.WriteLine(cTemp+" ,"+File.GetLastWriteTime(cTemp).ToString("dd/MM/yy HH:mm")); }
            cTemp = ("Temp\\lock_" + Environment.MachineName + "_" + Environment.UserName + ".bak").ToLower();
            if (File.Exists(cTemp)) { Logtxt.WriteLine(cTemp + " ," + File.GetLastWriteTime(cTemp).ToString("dd/MM/yy HH:mm")); }
            if (File.Exists(@"C:\TempVFP\CustomerID.txt"))
            {
                string[] readTextVFP = File.ReadAllLines(@"C:\TempVFP\CustomerID.txt");
                cTemp2 = "Temp\\lock_" + readTextVFP[0].Trim().ToLower() ;
                cTemp = cTemp2 + ".rar";
                if (File.Exists(cTemp)) { Logtxt.WriteLine(cTemp + " ," + File.GetLastWriteTime(cTemp).ToString("dd/MM/yy HH:mm")); }
                cTemp = cTemp2 + ".bak";
                if (File.Exists(cTemp)) { Logtxt.WriteLine(cTemp + " ," + File.GetLastWriteTime(cTemp).ToString("dd/MM/yy HH:mm")); }
            }
            Logtxt.WriteLine(""); Logtxt.WriteLine("");

            string[] readText;
            cTemp =  "xxxx.txt";
            if (File.Exists(cTemp)) {
                Logtxt.WriteLine("xxxx.txt ,DT:"+ File.GetLastWriteTime(cTemp).ToString("dd/MM/yy HH:mm"));
                Logtxt.WriteLine(cTemp);
                readText = File.ReadAllLines(cTemp);
                foreach (string s in readText) { if (s != "") { Logtxt.WriteLine(s.Trim()); } }
                Logtxt.WriteLine(""); Logtxt.WriteLine("");
            }
            Logtxt.Close();Logtxt.Dispose();
            if (Layout.Program.Password.Input_Password("Open Readme.txt")) 
            {
                Util.Program.OpenWebSite(MyFolderApp + "\\uyoddotnetlist.txt");
                Util.Program.OpenWebSite(MyFolderApp + "\\Temp\\History_uyod_s1_R.txt");
                Util.Program.OpenWebSite(MyFolderApp + "\\Environment.txt");
                Util.Program.OpenWebSite(Fle4Readme);
            }
        }

        static bool SoftInMem(string cProgName)
        {
            cProgName = cProgName.ToLower().Trim();
            bool lSoftInMem =false;
            Process[] proc = Process.GetProcessesByName(cProgName);
            if (proc.Length > 0)  { lSoftInMem = true;  Util.Program.Pok_Mess("พบไฟล์ "+cProgName+"ในหน่วยความจำ" 
                + System.Environment.NewLine+"ต้องออกจากโปรแกรมก่อนครับ"); }
            return lSoftInMem;
        }

        static void DownloadUserName(int nOption) // Download และติดตั้งตามชื่อเครื่อง 
        {
			if (nOption == 2) 
			{ 
				if (!File.Exists(@"C:\TempVFP\CustomerID.txt")) {return;}
				string[] readText = File.ReadAllLines(@"C:\TempVFP\CustomerID.txt");
				cTemp = "lock_"+readText[0].Trim();
			}
            else { cTemp = "lock_" + Environment.MachineName + "_" + Environment.UserName; }  
            
            cTemp = cTemp.ToLower();  
            string FleOnWeb = "customer/" +cTemp  + ".rar";
            string Fle2Drive = "temp\\" + cTemp + ".rar";
            string Fle2Backup = "temp\\" + cTemp + ".bak";
            string FolderTarget = "D:\\BdPosVFP";
            if (!File.Exists(FolderTarget))
            { Util.Program.Pok_InHarddisk("ไม่พบโพลเดอร์ "+FolderTarget+Environment.NewLine+"จะเปลี่ยนเป็น "+MyFolderApp); FolderTarget = MyFolderApp; }
            if (File.Exists(Fle2Drive))
            {
                // เปรียบเทียบว่าเป็นไฟล์ใหม่หรือไม่
                if (Util.Program.CompareFileSize(Fle2Drive,Fle2Backup))
                {
                    Util.Program.Pok_Process("UnRAR.exe", "x -o+ " + Fle2Drive + " " + FolderTarget);
                    Util.Program.Pok_Savetext2(FleHistory, "Unrar "+Fle2Drive + " --> " + FolderTarget);
                    Layout.Program.LayOut.ScreenShow(5, "", "", "", "", "");
                    File.Copy(Fle2Drive, Fle2Backup, true);
                    File.Delete(Fle2Drive);
                    cTemp = "1 eGt9R1toYxIlcWORG0mdCoDrhSXHzvV0k0SUkqdTmQ4 ";
                    cTemp = cTemp + Util.Program.Customername()+"*ปรับโปรแกรมจากเวบแล้ว*" + FleOnWeb;
                    Util.Program.Pok_Process("util_pok2", cTemp); // เตือนผ่าน Line 
                    Util.Program.Pok_InHarddisk("Unrar " + Fle2Drive + " --> " + FolderTarget);
                    if (inharddisk) { Layout.Program.LayOut.ScreenShow(6, Fle2Drive, Fle2Backup, "****************", "ปรับปรุงโปรแกรมแล้ว", ""); }
                } else { if (inharddisk) { Layout.Program.LayOut.ScreenShow(7, Fle2Drive, Fle2Backup, "ขนาดไฟล์เท่ากัน", "ไม่ต้องทำอะไร", ""); }  }
                if (File.Exists(Fle2Drive)) { File.Delete(Fle2Drive); }  // ตรวจสอบที่ Download อีกรอบว่า ซ้ำกันหรือไม่
            }
            else 
            {
                if (Util.Program.UyodDotNetDownload(2, FleOnWeb, Fle2Drive)) // Download From Uyod.net
                {
                    Util.Program.Pok_Savetext2(FleHistory, "******************************");
                    Util.Program.Pok_Savetext2(FleHistory, "Download " + FleOnWeb + " to " + Fle2Drive);
                    Util.Program.Pok_InHarddisk("Download " + FleOnWeb + " to " + Fle2Drive);
                }
            }
            cTemp = "";
        }

        static void FinDownloadUserName()
        {
            if (!File.Exists(FleHistory)) { return; }
            cTemp2 = "Temp\\History_uyod_s1_R.txt";
            ReverseTextFile(FleHistory, cTemp2);
            cTemp = Util.Program.ReadRepoway(12);
            if (cTemp != "") { File.Copy(cTemp2, cTemp + "History_uyod_s1_R.txt", true); }
            cTemp = Util.Program.GdriveMap(6);
            if (cTemp != "") { File.Copy(cTemp2, cTemp + "History_uyod_s1_R.txt", true); }
        }

        static void rar_upload2customer()  // rar และ upload ไปที่ http://uyod.net/customer
        {
            cpText1 = cpText1.Trim().ToLower();
            cpText2 = cpText2.Trim();
            if (cpText1.Substring(0, 5) != "lock_") { Util.Program.Pok_Mess("ชื่อไฟล์ต้องนำหน้าด้วย lock_"); return; }
            Util.Program.Pok_Process("rar", "u " + cpText1 + " " + cpText2);
            Layout.Program.LayOut.ScreenShow(6, "สร้างไฟล์ เพื่อ upload ขึ้นเวบ  ", "http://uyod.net/customer/"+cpText1+".rar","ประกอบด้วยไฟล์ "+cpText2,"", "");
            Util.Program.FTPtoUyoddotnet(cpText1+".rar","customer",cpText1+".rar");
        }


        static void Bdposvfp_Update()  // ปรับปรุงโปรแกรมล่าสุด 
        {
            if (!Directory.Exists("temp")) { Directory.CreateDirectory("temp"); }
            Layout.Program.LayOut.BackGroud(1);
            Util.Program.Pok_Mess("Download uyod.net/rar/bdposvfp_update.rar");
            string FleOnWeb,Fle2Drive, FolderTarget;
            bool lUpdate4WEB=true;

            FleOnWeb = "http://uyod.net/rar/bdposvfp_update.rar";
            Fle2Drive = "temp\\bdposvfp_update.rar";
            FolderTarget = "D:\\BdPosVFP";

            if (FleOnWeb.Length == 0 || FolderTarget.Length==0)
            { lUpdate4WEB = false; Util.Program.Pok_Mess("ข้อมูลเป็นช่องว่าง"); }
            // ตรวจสอบโพลเดอร์
            if (!Directory.Exists(FolderTarget)) { lUpdate4WEB = false; Util.Program.Pok_Mess("ไม่พบโพลเดอร์ " + FolderTarget); }
            // ตรวจสอบว่ารันโปรแกรมอยู่หรือไม่
            if (lUpdate4WEB && (SoftInMem("hovfp") || SoftInMem("posvfp"))) { lUpdate4WEB = false; }

            if (!lUpdate4WEB) { Util.Program.Pok_Mess("ปรับปรุงข้อมูลไม่สำเร็จ");return; }  // ไม่พร้อมทำงาน
            // เริ่มทำงาน 
            if (File.Exists(Fle2Drive)) { File.Delete(Fle2Drive); } // ถ้ามีตัวเดิมให้ลบออกก่อน 
            if (!Directory.Exists(FolderTarget + "\\Backup")) { Directory.CreateDirectory(FolderTarget + "\\Backup"); }
            try
            {
                WebClient myWebClient = new WebClient();
                myWebClient.DownloadFile(FleOnWeb, Fle2Drive);
                myWebClient.Dispose();
                MyTime.Program.Pok_TimeWait(1,10);
                if (File.Exists(Fle2Drive))
                {
                    BackupExe(FolderTarget, "hovfp");
                    BackupExe(FolderTarget, "posvfp");
                    BackupExe(FolderTarget, "formail");
                    BackupExe(FolderTarget, "pe");
                    BackupExe(FolderTarget, "gfront");
                    BackupExe(FolderTarget, "gback");
                    Util.Program.Pok_Mess("โพลเดอร์ที่เก็บไฟล์สำรอง " + FolderTarget + "\\Backup");
                    MyTime.Program.Pok_TimeWait(1, 15);
                    Util.Program.Pok_Process("UnRAR.exe", "x -o+ " + Fle2Drive + " " + FolderTarget);
                    MyTime.Program.Pok_TimeWait(1, 15);
                }
            }
            catch (Exception ex) { if (insource) { Util.Program.Pok_Mess(ex.ToString()); } }
        }

        static void BackupExe(string cFolder,string cExe)
        {
            cFolder = cFolder.Trim();
            string fSource = cFolder + "\\" + cExe + ".exe";
            string fTarget = cFolder + "\\Backup\\" + cExe + "_" + DateTime.Now.ToString("ddMMyyyy") + ".exe";
            if (File.Exists(fSource) && !File.Exists(fTarget)) { File.Copy(fSource,fTarget); }
        }


        static void WriteTextFile()
        {
            if (!File.Exists(cpText1))
            { TextWriter WriteTxt = new StreamWriter(cpText1);
                WriteTxt.WriteLine(cpText2); WriteTxt.Close(); }
            else
            { using (StreamWriter WriteTxt = File.AppendText(cpText1))
                { WriteTxt.WriteLine(cpText2); WriteTxt.Close(); }
            } 
        }


        static void ReverseTextFile(string FleSource, string FleTarget)
        {
            if (!File.Exists(FleSource)) { Util.Program.Pok_Mess("ไม่พบไฟล์ "+FleSource); return; }
            if (FleTarget.Length == 0) { Util.Program.Pok_Mess("ไม่มีไฟล์ปลายทาง"); return; }
            if (File.Exists(FleTarget)) { File.Delete(FleTarget);}
            TextWriter TxtTarget = new StreamWriter(FleTarget);
            var FleRead = File.ReadAllLines(FleSource); // .Reverse()
            for (int iLine = FleRead.Length; iLine >= 1; iLine--)
            {
                TxtTarget.WriteLine(FleRead[iLine - 1]);
            }
            TxtTarget.Close();
        }


        static void AsCII2UTF8(string FleAscII, string FleUTF8) // แปลงจากไทยจาก ASCII เป็น UTF-8
        {
            if (!File.Exists(FleAscII)) { return; }
            byte[] ansiBytes = File.ReadAllBytes(FleAscII);
            var utf8String = Encoding.Default.GetString(ansiBytes);
            File.WriteAllText(FleUTF8, utf8String);
        }

        static void initProg() // เริ่มต้นทำงาน  
        {
            if (!File.Exists("windowslogo.jpg"))   
            { Util.Program.UyodDotNetDownload(2, "picture/windowslogo.jpg", "windowslogo.jpg"); }
            // ไม่อัพเดทเกิน 7 วัน ให้ลบ
            if (File.Exists(FleHistory) && Util.Program.bTStime(4, File.GetLastWriteTime(FleHistory), 7)) { File.Delete(FleHistory); } 
        }

        static void EnvironmentV2()
        {
            // ตรวจสอบควรจะเกิน 7 วัน
            if (!insource) { if (!Util.Program.bTStime(4, File.GetLastWriteTime("Environment.txt"), 7)) { return; } }
            // Check Public IP
            string url = "http://checkip.dyndns.org";
            System.Net.WebRequest req = System.Net.WebRequest.Create(url);
            System.Net.WebResponse resp = req.GetResponse();
            System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
            string response = sr.ReadToEnd().Trim();
            string[] a = response.Split(':');
            string a2 = a[1].Substring(1);
            string[] a3 = a2.Split('<');
            string ipGlobal = a3[0];
            //  tmEnvironment.txt แล้วค่อย Copy 
            TextWriter WriteTxt = new StreamWriter("tmEnvironment.txt");
            WriteTxt.WriteLine("Username     : {0}", Environment.UserName);
            WriteTxt.WriteLine("Computername : {0}", Environment.MachineName);
            WriteTxt.WriteLine("Domain       : {0}", Environment.UserDomainName);
            WriteTxt.WriteLine("Directory    : {0}", Environment.CurrentDirectory);
            WriteTxt.WriteLine("OS(64BIT)    : {0}", Environment.Is64BitOperatingSystem);
            WriteTxt.WriteLine("Machine      : {0}", Environment.MachineName);
            WriteTxt.WriteLine("OS           : {0}", Environment.OSVersion);
            WriteTxt.WriteLine("Public IP    : {0}", ipGlobal);
            WriteTxt.WriteLine(""); WriteTxt.WriteLine(""); WriteTxt.WriteLine("");  
            
            WriteTxt.WriteLine(DateTime.Now.ToString("dddd, dd MMMM yyyy HH:mm:ss"));
            WriteTxt.WriteLine(Util.Program.Customername());
            cTemp=@"C:\TempVFP\FirstUSE.Prog";
            if (File.Exists(cTemp)) 
            {
                WriteTxt.WriteLine("");
                WriteTxt.WriteLine("ใช้โปรแกรมครั้งแรก ("+cTemp+")");
                WriteTxt.WriteLine(Util.Program.File4Descrip(cTemp));
            }
            WriteTxt.WriteLine("");
            WriteTxt.WriteLine("ไฟล์เฉพาะบนเวบ uyod.net");
            WriteTxt.WriteLine("สร้างจาก Uyod_S1 6 ชื่อไฟล์rar ชื่อไฟล์ต้นทาง");
            cTemp = "lock_" + (Environment.MachineName + "_" + Environment.UserName).ToLower() ;
            WriteTxt.WriteLine("http://uyod.net/customer/" +cTemp + ".rar");
            WriteTxt.WriteLine("   เช่น Uyod_S1 6 "+cTemp+" test.txt");
            cTemp = @"C:\TempVFP\CustomerID.txt";
            if (File.Exists(cTemp))
            {
                string[] readText = File.ReadAllLines(cTemp);
                cTemp2 = "lock_"+ readText[0].Trim().ToLower();
                WriteTxt.WriteLine("http://uyod.net/customer/" + cTemp2 + ".rar" + " ("+cTemp+")");
                WriteTxt.WriteLine("   เช่น Uyod_S1 6 " + cTemp2 + " test.txt");
            }
            WriteTxt.WriteLine("");
            DriveInfo[] allDrives = DriveInfo.GetDrives();
            foreach (DriveInfo hd in allDrives)
            {
                if (hd.IsReady)  
                {
                    WriteTxt.WriteLine(hd.Name+" ,"+hd.VolumeLabel+" ,"+hd.DriveType+" ,"+ Util.Program.TransformFileSize(hd.TotalFreeSpace));
                }
            }
            cTemp="hovfp.exe"; if (File.Exists(cTemp)) { WriteTxt.WriteLine(Util.Program.File4Descrip(cTemp));} 
            cTemp="posvfp.exe"; if (File.Exists(cTemp)) { WriteTxt.WriteLine(Util.Program.File4Descrip(cTemp));} 
            cTemp="formail.exe"; if (File.Exists(cTemp)) { WriteTxt.WriteLine(Util.Program.File4Descrip(cTemp));} 
            cTemp="pe.exe"; if (File.Exists(cTemp)) { WriteTxt.WriteLine(Util.Program.File4Descrip(cTemp));} 
            WriteTxt.Close();
            // Copy File 
            cTemp = "Environment.txt";
            File.Copy("tmEnvironment.txt",cTemp , true);
            cTemp = Util.Program.ReadRepoway(12);
            if (cTemp != "") { File.Copy("tmEnvironment.txt", cTemp + "Environment.txt", true);  }

            cTemp = Util.Program.GdriveMap(6);
            if (cTemp != "") { File.Copy("tmEnvironment.txt", cTemp + "Environment.txt", true); }
            cTemp = "";cTemp2 = "";
        }

        static void Information()
        {
            Util.Program.Pok_Mess("Adjust Pc's Environment" + Environment.NewLine + "For Complete");
        }


        // เช็คโปรแกรมต่างๆเมือเข้าวินโดร์ 
        static void WhatISWindowsStart()  
        {
            string Fle4Readme = MyFolderApp + "\\WindowsStart.txt";
            DirectoryInfo dFolderList;
            FileInfo[] FileList;
            TextWriter Logtxt = new StreamWriter(Fle4Readme);
            Logtxt.WriteLine(DateTime.Now.ToString());
            // 
            cTemp = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
            if (Directory.Exists(cTemp))
            {
                Logtxt.WriteLine("" );
                Logtxt.WriteLine("Folder : "+cTemp);
                dFolderList = new DirectoryInfo(cTemp);  
                FileList = dFolderList.GetFiles("*.*", SearchOption.AllDirectories);
                foreach (FileInfo cFileList in FileList)
                {
                    cTemp2 = cFileList.FullName;
                    cTemp2 = cTemp2 + "  ," + cFileList.LastWriteTime.ToString();
                    cTemp2 = cTemp2 + "  ," + Util.Program.TransformFileSize(cFileList.Length);
                    Logtxt.WriteLine(cTemp2);
                }
            }
            // 
            cTemp = @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp";
            if (Directory.Exists(cTemp))
            {
                Logtxt.WriteLine("");
                Logtxt.WriteLine("Folder : " + cTemp);
                dFolderList = new DirectoryInfo(cTemp);  
                FileList = dFolderList.GetFiles("*.*", SearchOption.AllDirectories);
                foreach (FileInfo cFileList in FileList)
                {
                    cTemp2 = cFileList.FullName;
                    cTemp2 = cTemp2 + "  ," + cFileList.LastWriteTime.ToString();
                    cTemp2 = cTemp2 + "  ," + Util.Program.TransformFileSize(cFileList.Length);
                    Logtxt.WriteLine(cTemp2);
                }
            }
            //  
            Logtxt.WriteLine("");
            Logtxt.WriteLine("Registry Editer");
            Logtxt.WriteLine("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
            Logtxt.WriteLine("Computer\\HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
            Logtxt.WriteLine("Software In Process");
            Util.Program.ExecuteCommand("tasklist >TempList.txt");
            MyTime.Program.Pok_TimeWait(1, 5);
            string[] readText;
            cTemp = "TempList.txt";
            if (File.Exists(cTemp))
            {
                Logtxt.WriteLine("TempList.txt ,DT:" + File.GetLastWriteTime(cTemp).ToString("dd/MM/yy HH:mm"));
                Logtxt.WriteLine(cTemp);
                readText = File.ReadAllLines(cTemp);
                foreach (string s in readText) { if (s != "") { Logtxt.WriteLine(s.Trim()); } }
                Logtxt.WriteLine(""); Logtxt.WriteLine("");
            }
            Logtxt.Close();Logtxt.Dispose();
            cTemp = "";cTemp2 = "";
            if (Util.Program.Pok_YesNO2("เปิดไฟล์ "+Fle4Readme)) { Util.Program.OpenWebSite(Fle4Readme); } 
        }


        static void Test_Prog() // Pipop
        {
            cpText1 = "temp";
            cpText2 = @"\pipopyouyod.txt";
            cpText1 = cpText1.Trim(); if (cpText1 == "0") { cpText1 = ""; }   // โพลเดอร์บน uyod.net 
            string cfFolder, cfFile;
            cfFolder = ""; cfFile = cpText2.Trim(); ;
            // แยกFolder และ ไฟล์
            // Util.Program.splitFDandFL(ref cfFolder, ref cfFile);
            // Util.Program.FTPtoUyoddotnet(cfFolder + cfFile, cpText1, cfFile);
        }


        static void Main(string[] args)
        {
            if (MyApp.Substring(0,2)=="V:") { insource = true; } // Run กับ Source
            if (Directory.Exists("R:\\Temp")) {inharddisk=true;}  // Run กับ Harddisk   
            initProg(); // เริ่มต้นทำงาน            
            if (args.Length == 0) { if (insource) { cpFlag = "T"; } else { cpFlag = "X"; } }  // Pipop T เป็นการทดสอบ
            else {
                cpFlag = args[0].Trim();
                if (args.Length < 2)
                { Util.Program.Pok_Mess(args.Length.ToString() + ", ต้องใส่มากกว่าหรือเท่ากับ 3 หลัก"); return; }
                cpFlag = args[0].ToUpper().Trim()  ; cpText1 = args[1].Trim() ; cpText2 = args[2].Trim() ;
            }
            nForWork = 1;  //    PipopYou ปรกติ  1 nForWork=0 ไม่ทำอะไรเลย ,1 ทำงานตามปรกติ 2 ไม่Runโปรแกรมและมีเตือน  
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); // เปลี่ยนรูปแบบวันที่ เป็น GB
            switch (cpFlag)
            {
                case ("0"):
                case ("/?"):
                case ("?"): Readme(); break;
                case ("T"): Test_Prog(); break;
                case ("1"): Bdposvfp_Update(); break;
                case ("2"): // เอาข้อความมาเขียนเป็น Text
                    for (int iArg = 0; iArg < args.Length; iArg++)
                    { if (iArg>2)  { cpText2 = cpText2 + " " + args[iArg]; }  }
                    WriteTextFile();
                    break;
                case ("3"):
                    ReverseTextFile(cpText1, cpText2);   // แปลงจากไทยจาก ASCII เป็น UTF-8
                    break;
                case ("4"):
                    AsCII2UTF8(cpText1, cpText2);  // แปลงจากไทยจาก ASCII เป็น UTF-8
                    break;
                case ("5"):
                    DownloadUserName(1); // Download และติดตั้งตามชื่อเครื่อง  
                    DownloadUserName(2); // Download และติดตั้งตาม ID ซอฟท์แวร์
                    FinDownloadUserName(); // กลับไฟล์จากหัวไปท้าย 
                    break;
                case ("6"): 
                    WhatISWindowsStart(); //  เช็คโปรแกรมต่างๆเมือเข้าวินโดร์ 
                    break;
                case ("7"):
                    EnvironmentV2(); // สร้างไฟล์ Environment เวอร์ชั่น 2 ต่อจาก util_pok2 3
                    break;
                case ("UC"):  // ("6")
                    rar_upload2customer(); // rar และ upload ไปที่ http://uyod.net/customer  สร้างไฟล์ สำหรับ Upload ตามข้อ 5 
                    break;
                case ("UR"): //  ("8") เปลี่ยนชื่อไฟล์บนเวบ uyod.net
                    Util.Program.FTPRenameUyoddotnet(cpText1, cpText2);
                    break;
                case ("UE"): // ("9") ลบชื่อไฟล์บนเวบ uyod.net
                    Util.Program.FTPDelUyoddotnet(cpText1);
                    break;
                case ("UL"): // ("A") แสดงรายชื่อไฟล์ใน uyod.net
                    if (cpText1 == "0") { cpText1 = ""; }
                    Util.Program.FTPListUyoddotnet(cpText1);
                    break;
                case ("UU"): // Upload File ขึ้น uyod.net   Pipop
                    cpText1 = cpText1.Trim(); if (cpText1 == "0") { cpText1 = ""; }   // โพลเดอร์บน uyod.net 
                    string cfFolder, cfFile;
                    cfFolder = ""; cfFile = cpText2.Trim(); ;
                    // แยกFolder และ ไฟล์
                    Util.Program.splitFDandFL(ref cfFolder, ref cfFile);
                    Util.Program.FTPtoUyoddotnet(cfFolder+cfFile, cpText1, cfFile);  
                    break;
                case ("UD"): // Download File จากuyod.net   
                    Util.Program.UyodDotNetDownload(2,cpText1.Trim(), cpText2.Trim());
                    break;
            }
        }
    }
}
