├── screentshot_1.jpg ├── screentshot_2.jpg ├── PowercutGadget ├── ceb.ico ├── ceb (1).ico ├── Resources │ ├── ceb.ico │ ├── sync.png │ ├── top bar.png │ ├── background.png │ ├── close btn.png │ ├── sync hower.png │ ├── background 2.png │ ├── setting btn.png │ ├── setting btn1.png │ ├── close btn hover.png │ ├── top back color.png │ ├── AlertNotofication.png │ ├── AlertNotofication1.png │ ├── button-png-172003.png │ ├── setting btn hower.png │ ├── setting btn hower1.png │ ├── background non trans.png │ └── 360_F_283136113_b3VRHNiOPFMOluzYJPpfuoH8Czh9c743.jpg ├── App.config ├── packages.config ├── Properties │ ├── Settings.settings │ ├── Settings.Designer.cs │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── TimeSlot.cs ├── Program.cs ├── Settings.cs ├── SyncedData.cs ├── ConfigFactory.cs ├── AlertNotification.cs ├── AlertNotification.Designer.cs ├── Settings.resx ├── AlertNotification.resx ├── Settings.Designer.cs ├── PowercutGadget.csproj ├── Form1.Designer.cs └── Form1.cs ├── README.md ├── PowercutGadget.sln ├── .gitattributes ├── .gitignore └── PowecuGadgettSetup └── PowecuGadgettSetup.vdproj /screentshot_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/screentshot_1.jpg -------------------------------------------------------------------------------- /screentshot_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/screentshot_2.jpg -------------------------------------------------------------------------------- /PowercutGadget/ceb.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/ceb.ico -------------------------------------------------------------------------------- /PowercutGadget/ceb (1).ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/ceb (1).ico -------------------------------------------------------------------------------- /PowercutGadget/Resources/ceb.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/ceb.ico -------------------------------------------------------------------------------- /PowercutGadget/Resources/sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/sync.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/top bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/top bar.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/background.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/close btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/close btn.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/sync hower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/sync hower.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/background 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/background 2.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/setting btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/setting btn.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/setting btn1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/setting btn1.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/close btn hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/close btn hover.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/top back color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/top back color.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/AlertNotofication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/AlertNotofication.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/AlertNotofication1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/AlertNotofication1.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/button-png-172003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/button-png-172003.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/setting btn hower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/setting btn hower.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/setting btn hower1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/setting btn hower1.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/background non trans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/background non trans.png -------------------------------------------------------------------------------- /PowercutGadget/Resources/360_F_283136113_b3VRHNiOPFMOluzYJPpfuoH8Czh9c743.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tirancm/Powercut-Widget/HEAD/PowercutGadget/Resources/360_F_283136113_b3VRHNiOPFMOluzYJPpfuoH8Czh9c743.jpg -------------------------------------------------------------------------------- /PowercutGadget/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /PowercutGadget/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /PowercutGadget/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | PowercutWidget 2 | 3 | PowercutWidget 4 | is a windows desktop widget, made to view scheduled powercuts of CEB. 5 | 6 | ## Download executable file 7 | [Download](https://app.box.com/s/lqrgis9psk2q28qi839gd52aqu7u3re8) 8 | 9 | ## Screenshots 10 | ![Screenshot](https://github.com/tirancm/powercut_gadget/blob/master/screentshot_1.jpg) 11 | ![Screenshot](https://github.com/tirancm/powercut_gadget/blob/master/screentshot_2.jpg) 12 | 13 | ## Steps to setup source code 14 | 1. Clone the Repository or Download source code. 15 | 2. Open the folder with Visual Studio 2015 or newer version. (Make sure c# windows application develoment available in your Visual Studio). 16 | - please do not spam or make unnecessary traffic on CEB Endpoints. 17 | -------------------------------------------------------------------------------- /PowercutGadget/TimeSlot.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace PowercutGadget 8 | { 9 | class TimeSlot 10 | { 11 | private DateTime startTime; 12 | private DateTime endTime; 13 | 14 | public DateTime StartTime 15 | { 16 | get { return startTime; } 17 | set { startTime = value; } 18 | } 19 | 20 | public DateTime EndTime 21 | { 22 | get { return endTime; } 23 | set { endTime = value; } 24 | } 25 | 26 | public TimeSlot(DateTime start,DateTime end) 27 | { 28 | this.startTime = start; 29 | this.endTime = end; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /PowercutGadget/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading; 5 | using System.Threading.Tasks; 6 | using System.Windows.Forms; 7 | 8 | namespace PowercutGadget 9 | { 10 | static class Program 11 | { 12 | private static Mutex mutex = null; 13 | /// 14 | /// The main entry point for the application. 15 | /// 16 | [STAThread] 17 | static void Main() 18 | { 19 | const string appName = "PowercutGadget"; 20 | bool createdNew; 21 | 22 | mutex = new Mutex(true, appName, out createdNew); 23 | 24 | if (!createdNew) 25 | { 26 | //app is already running! Exiting the application 27 | MessageBox.Show("A Instance of the application is already running.."); 28 | return; 29 | } 30 | 31 | Application.EnableVisualStyles(); 32 | Application.SetCompatibleTextRenderingDefault(false); 33 | Application.Run(new Form1()); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /PowercutGadget/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace PowercutGadget.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /PowercutGadget/Settings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace PowercutGadget 12 | { 13 | public partial class Settings : Form 14 | { 15 | public Settings() 16 | { 17 | InitializeComponent(); 18 | } 19 | 20 | private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 21 | { 22 | 23 | } 24 | 25 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 26 | { 27 | System.Diagnostics.Process.Start("https://cebcare.ceb.lk/Incognito/DemandMgmtSchedule"); 28 | } 29 | 30 | private void button1_Click(object sender, EventArgs e) 31 | { 32 | ConfigFactory.writeSheduleGroup(comboBox1.Text); 33 | Application.Restart(); 34 | Environment.Exit(0); 35 | } 36 | 37 | private void Settings_Load(object sender, EventArgs e) 38 | { 39 | comboBox1.Text=ConfigFactory.getSheduleGroup(); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /PowercutGadget/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("PowercutGadget")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("PowercutGadget")] 13 | [assembly: AssemblyCopyright("Copyright © 2022")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("72d1af1e-b18d-4ff7-acb7-9065907093ad")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /PowercutGadget.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.24720.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowercutGadget", "PowercutGadget\PowercutGadget.csproj", "{72D1AF1E-B18D-4FF7-ACB7-9065907093AD}" 7 | EndProject 8 | Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "PowecutGadgetSetup", "PowecuGadgettSetup\PowecuGadgettSetup.vdproj", "{A2A181D0-2E2A-40FD-839E-521AC843A516}" 9 | EndProject 10 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Screentshots", "Screentshots", "{EF183D98-F198-462E-8D32-616C72059705}" 11 | ProjectSection(SolutionItems) = preProject 12 | ..\..\..\..\Desktop\screentshot_1.jpg = ..\..\..\..\Desktop\screentshot_1.jpg 13 | ..\..\..\..\Desktop\screentshot_2.jpg = ..\..\..\..\Desktop\screentshot_2.jpg 14 | EndProjectSection 15 | EndProject 16 | Global 17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 18 | Debug|Any CPU = Debug|Any CPU 19 | Release|Any CPU = Release|Any CPU 20 | EndGlobalSection 21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 22 | {72D1AF1E-B18D-4FF7-ACB7-9065907093AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 23 | {72D1AF1E-B18D-4FF7-ACB7-9065907093AD}.Debug|Any CPU.Build.0 = Debug|Any CPU 24 | {72D1AF1E-B18D-4FF7-ACB7-9065907093AD}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {72D1AF1E-B18D-4FF7-ACB7-9065907093AD}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {A2A181D0-2E2A-40FD-839E-521AC843A516}.Debug|Any CPU.ActiveCfg = Debug 27 | {A2A181D0-2E2A-40FD-839E-521AC843A516}.Release|Any CPU.ActiveCfg = Release 28 | EndGlobalSection 29 | GlobalSection(SolutionProperties) = preSolution 30 | HideSolutionNode = FALSE 31 | EndGlobalSection 32 | EndGlobal 33 | -------------------------------------------------------------------------------- /PowercutGadget/SyncedData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace PowercutGadget 8 | { 9 | static class SyncedData 10 | { 11 | static private List timeSlots = new List(); 12 | static private DateTime lastSyncDateTime; 13 | 14 | 15 | static public DateTime LastSyncDateTime 16 | { 17 | get { return lastSyncDateTime; } 18 | } 19 | static public List TimeSlots 20 | { 21 | get { return timeSlots; } 22 | set { 23 | timeSlots = value; 24 | lastSyncDateTime = DateTime.Now; 25 | } 26 | } 27 | 28 | static public Boolean isSynced() 29 | { 30 | if (timeSlots.Count > 0 && lastSyncDateTime!=null && lastSyncDateTime.Date==DateTime.Now.Date) 31 | { 32 | return true; 33 | } 34 | 35 | return false; 36 | } 37 | 38 | static public int timeSlotCount() 39 | { 40 | return timeSlots.Count; 41 | } 42 | 43 | //return -2 for failed or all timeslots are expired 44 | //teturn -1 when there is a ongoing time slot 45 | static public int getIndexOfNearestTimeSlotIndex() 46 | { 47 | if (isSynced()) 48 | { 49 | int i = 0; 50 | 51 | foreach (TimeSlot t in timeSlots) 52 | { 53 | if (DateTime.Now <= t.EndTime && DateTime.Now>=t.StartTime){ 54 | return -1; 55 | } 56 | 57 | if (t.StartTime > DateTime.Now) 58 | { 59 | return i; 60 | } 61 | 62 | i++; 63 | } 64 | 65 | } 66 | 67 | return -2; 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /PowercutGadget/ConfigFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace PowercutGadget 10 | { 11 | class ConfigFactory 12 | { 13 | public static String writeSheduleGroup(String group) 14 | { 15 | string file = group; 16 | string filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\powercut_gadget_config.txt"; 17 | FileStream FS = new FileStream(filePath, FileMode.Create); 18 | StreamWriter SR = new StreamWriter(FS); 19 | SR.Write(file); 20 | SR.Close(); 21 | 22 | return file; 23 | } 24 | 25 | public static String getSheduleGroup() 26 | { 27 | string file = ""; 28 | string filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+ "\\powercut_gadget_config.txt"; 29 | FileStream FS = new FileStream(filePath, FileMode.OpenOrCreate); 30 | StreamReader SR = new StreamReader(FS); 31 | 32 | try 33 | { 34 | file = SR.ReadLine().Trim(); 35 | SR.Close(); 36 | } 37 | catch (Exception) 38 | { 39 | SR.Close(); 40 | writeSheduleGroup("A"); 41 | MessageBox.Show("Your powercut group is set to Group 'A' by default. You can change it in settings."); 42 | return "A"; 43 | } 44 | 45 | if (file.Length == 1 && file.All(Char.IsLetter)){ 46 | return file.ToUpper(); 47 | } 48 | else 49 | { 50 | writeSheduleGroup("A"); 51 | MessageBox.Show("Your powercut group is set to Group 'A' by default. You can change it in settings."); 52 | return "A"; 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /PowercutGadget/AlertNotification.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace PowercutGadget 12 | { 13 | public partial class AlertNotification : Form 14 | { 15 | int timeslotIndex; 16 | int stayed = 0; 17 | 18 | public AlertNotification() 19 | { 20 | InitializeComponent(); 21 | } 22 | 23 | public AlertNotification(int timeslotIndex) 24 | { 25 | this.timeslotIndex = timeslotIndex; 26 | InitializeComponent(); 27 | } 28 | 29 | private void AlertNotification_Load(object sender, EventArgs e) 30 | { 31 | double inititialLocX = System.Windows.SystemParameters.FullPrimaryScreenWidth - Size.Width-2; 32 | double initialLocY = System.Windows.SystemParameters.FullPrimaryScreenHeight-Size.Height-8; 33 | this.Location = new Point((int)inititialLocX, (int)initialLocY); 34 | 35 | this.Activate(); 36 | } 37 | 38 | private void label1_Click(object sender, EventArgs e) 39 | { 40 | 41 | } 42 | 43 | private void timer1_Tick(object sender, EventArgs e) 44 | { 45 | label2.Text=SyncedData.TimeSlots[timeslotIndex].StartTime.Subtract(DateTime.Now).ToString("hh':'mm"); 46 | stayed++; 47 | 48 | if (stayed >= 60) 49 | { 50 | this.Close(); 51 | } 52 | } 53 | 54 | private void pictureBox1_MouseHover(object sender, EventArgs e) 55 | { 56 | pictureBox1.Image = Properties.Resources.close_btn_hover; 57 | } 58 | 59 | private void pictureBox1_MouseLeave(object sender, EventArgs e) 60 | { 61 | pictureBox1.Image = Properties.Resources.close_btn; 62 | } 63 | 64 | private void pictureBox1_Click(object sender, EventArgs e) 65 | { 66 | Close(); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | build/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | 28 | # MSTest test Results 29 | [Tt]est[Rr]esult*/ 30 | [Bb]uild[Ll]og.* 31 | 32 | # NUNIT 33 | *.VisualState.xml 34 | TestResult.xml 35 | 36 | # Build Results of an ATL Project 37 | [Dd]ebugPS/ 38 | [Rr]eleasePS/ 39 | dlldata.c 40 | 41 | # DNX 42 | project.lock.json 43 | artifacts/ 44 | 45 | *_i.c 46 | *_p.c 47 | *_i.h 48 | *.ilk 49 | *.meta 50 | *.obj 51 | *.pch 52 | *.pdb 53 | *.pgc 54 | *.pgd 55 | *.rsp 56 | *.sbr 57 | *.tlb 58 | *.tli 59 | *.tlh 60 | *.tmp 61 | *.tmp_proj 62 | *.log 63 | *.vspscc 64 | *.vssscc 65 | .builds 66 | *.pidb 67 | *.svclog 68 | *.scc 69 | 70 | # Chutzpah Test files 71 | _Chutzpah* 72 | 73 | # Visual C++ cache files 74 | ipch/ 75 | *.aps 76 | *.ncb 77 | *.opensdf 78 | *.sdf 79 | *.cachefile 80 | 81 | # Visual Studio profiler 82 | *.psess 83 | *.vsp 84 | *.vspx 85 | 86 | # TFS 2012 Local Workspace 87 | $tf/ 88 | 89 | # Guidance Automation Toolkit 90 | *.gpState 91 | 92 | # ReSharper is a .NET coding add-in 93 | _ReSharper*/ 94 | *.[Rr]e[Ss]harper 95 | *.DotSettings.user 96 | 97 | # JustCode is a .NET coding add-in 98 | .JustCode 99 | 100 | # TeamCity is a build add-in 101 | _TeamCity* 102 | 103 | # DotCover is a Code Coverage Tool 104 | *.dotCover 105 | 106 | # NCrunch 107 | _NCrunch_* 108 | .*crunch*.local.xml 109 | 110 | # MightyMoose 111 | *.mm.* 112 | AutoTest.Net/ 113 | 114 | # Web workbench (sass) 115 | .sass-cache/ 116 | 117 | # Installshield output folder 118 | [Ee]xpress/ 119 | 120 | # DocProject is a documentation generator add-in 121 | DocProject/buildhelp/ 122 | DocProject/Help/*.HxT 123 | DocProject/Help/*.HxC 124 | DocProject/Help/*.hhc 125 | DocProject/Help/*.hhk 126 | DocProject/Help/*.hhp 127 | DocProject/Help/Html2 128 | DocProject/Help/html 129 | 130 | # Click-Once directory 131 | publish/ 132 | 133 | # Publish Web Output 134 | *.[Pp]ublish.xml 135 | *.azurePubxml 136 | ## TODO: Comment the next line if you want to checkin your 137 | ## web deploy settings but do note that will include unencrypted 138 | ## passwords 139 | #*.pubxml 140 | 141 | *.publishproj 142 | 143 | # NuGet Packages 144 | *.nupkg 145 | # The packages folder can be ignored because of Package Restore 146 | **/packages/* 147 | # except build/, which is used as an MSBuild target. 148 | !**/packages/build/ 149 | # Uncomment if necessary however generally it will be regenerated when needed 150 | #!**/packages/repositories.config 151 | 152 | # Windows Azure Build Output 153 | csx/ 154 | *.build.csdef 155 | 156 | # Windows Store app package directory 157 | AppPackages/ 158 | 159 | # Visual Studio cache files 160 | # files ending in .cache can be ignored 161 | *.[Cc]ache 162 | # but keep track of directories ending in .cache 163 | !*.[Cc]ache/ 164 | 165 | # Others 166 | ClientBin/ 167 | [Ss]tyle[Cc]op.* 168 | ~$* 169 | *~ 170 | *.dbmdl 171 | *.dbproj.schemaview 172 | *.pfx 173 | *.publishsettings 174 | node_modules/ 175 | orleans.codegen.cs 176 | 177 | # RIA/Silverlight projects 178 | Generated_Code/ 179 | 180 | # Backup & report files from converting an old project file 181 | # to a newer Visual Studio version. Backup files are not needed, 182 | # because we have git ;-) 183 | _UpgradeReport_Files/ 184 | Backup*/ 185 | UpgradeLog*.XML 186 | UpgradeLog*.htm 187 | 188 | # SQL Server files 189 | *.mdf 190 | *.ldf 191 | 192 | # Business Intelligence projects 193 | *.rdl.data 194 | *.bim.layout 195 | *.bim_*.settings 196 | 197 | # Microsoft Fakes 198 | FakesAssemblies/ 199 | 200 | # Node.js Tools for Visual Studio 201 | .ntvs_analysis.dat 202 | 203 | # Visual Studio 6 build log 204 | *.plg 205 | 206 | # Visual Studio 6 workspace options file 207 | *.opt 208 | 209 | # LightSwitch generated files 210 | GeneratedArtifacts/ 211 | _Pvt_Extensions/ 212 | ModelManifest.xml 213 | -------------------------------------------------------------------------------- /PowercutGadget/AlertNotification.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowercutGadget 2 | { 3 | partial class AlertNotification 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 33 | this.label1 = new System.Windows.Forms.Label(); 34 | this.label2 = new System.Windows.Forms.Label(); 35 | this.timer1 = new System.Windows.Forms.Timer(this.components); 36 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 37 | this.SuspendLayout(); 38 | // 39 | // pictureBox1 40 | // 41 | this.pictureBox1.BackColor = System.Drawing.Color.Transparent; 42 | this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand; 43 | this.pictureBox1.Image = global::PowercutGadget.Properties.Resources.close_btn; 44 | this.pictureBox1.Location = new System.Drawing.Point(203, 12); 45 | this.pictureBox1.Name = "pictureBox1"; 46 | this.pictureBox1.Size = new System.Drawing.Size(16, 16); 47 | this.pictureBox1.TabIndex = 0; 48 | this.pictureBox1.TabStop = false; 49 | this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); 50 | this.pictureBox1.MouseLeave += new System.EventHandler(this.pictureBox1_MouseLeave); 51 | this.pictureBox1.MouseHover += new System.EventHandler(this.pictureBox1_MouseHover); 52 | // 53 | // label1 54 | // 55 | this.label1.AutoSize = true; 56 | this.label1.BackColor = System.Drawing.Color.Transparent; 57 | this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 58 | this.label1.Location = new System.Drawing.Point(12, 48); 59 | this.label1.Name = "label1"; 60 | this.label1.Size = new System.Drawing.Size(164, 16); 61 | this.label1.TabIndex = 1; 62 | this.label1.Text = "Next powercut happens in "; 63 | this.label1.Click += new System.EventHandler(this.label1_Click); 64 | // 65 | // label2 66 | // 67 | this.label2.AutoSize = true; 68 | this.label2.BackColor = System.Drawing.Color.Transparent; 69 | this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 70 | this.label2.Location = new System.Drawing.Point(81, 84); 71 | this.label2.Name = "label2"; 72 | this.label2.Size = new System.Drawing.Size(51, 20); 73 | this.label2.TabIndex = 2; 74 | this.label2.Text = "label2"; 75 | // 76 | // timer1 77 | // 78 | this.timer1.Enabled = true; 79 | this.timer1.Interval = 1000; 80 | this.timer1.Tick += new System.EventHandler(this.timer1_Tick); 81 | // 82 | // AlertNotification 83 | // 84 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 85 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 86 | this.BackgroundImage = global::PowercutGadget.Properties.Resources.AlertNotofication1; 87 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 88 | this.ClientSize = new System.Drawing.Size(231, 124); 89 | this.Controls.Add(this.label2); 90 | this.Controls.Add(this.label1); 91 | this.Controls.Add(this.pictureBox1); 92 | this.DoubleBuffered = true; 93 | this.ForeColor = System.Drawing.Color.White; 94 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 95 | this.Name = "AlertNotification"; 96 | this.ShowIcon = false; 97 | this.ShowInTaskbar = false; 98 | this.Text = "AlertNotification"; 99 | this.Load += new System.EventHandler(this.AlertNotification_Load); 100 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 101 | this.ResumeLayout(false); 102 | this.PerformLayout(); 103 | 104 | } 105 | 106 | #endregion 107 | 108 | private System.Windows.Forms.PictureBox pictureBox1; 109 | private System.Windows.Forms.Label label1; 110 | private System.Windows.Forms.Label label2; 111 | private System.Windows.Forms.Timer timer1; 112 | } 113 | } -------------------------------------------------------------------------------- /PowercutGadget/Settings.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowercutGadget/AlertNotification.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /PowercutGadget/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowercutGadget 2 | { 3 | partial class Settings 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.comboBox1 = new System.Windows.Forms.ComboBox(); 32 | this.linkLabel1 = new System.Windows.Forms.LinkLabel(); 33 | this.label1 = new System.Windows.Forms.Label(); 34 | this.label2 = new System.Windows.Forms.Label(); 35 | this.button1 = new System.Windows.Forms.Button(); 36 | this.SuspendLayout(); 37 | // 38 | // comboBox1 39 | // 40 | this.comboBox1.FormattingEnabled = true; 41 | this.comboBox1.Items.AddRange(new object[] { 42 | "A", 43 | "B", 44 | "C", 45 | "D", 46 | "E", 47 | "F", 48 | "G", 49 | "H", 50 | "I", 51 | "J", 52 | "K", 53 | "L", 54 | "M", 55 | "N", 56 | "O", 57 | "P", 58 | "Q", 59 | "R", 60 | "S", 61 | "T", 62 | "U", 63 | "V", 64 | "W", 65 | "X", 66 | "Y", 67 | "Z"}); 68 | this.comboBox1.Location = new System.Drawing.Point(202, 19); 69 | this.comboBox1.Name = "comboBox1"; 70 | this.comboBox1.Size = new System.Drawing.Size(53, 21); 71 | this.comboBox1.TabIndex = 0; 72 | this.comboBox1.Text = "D"; 73 | this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); 74 | // 75 | // linkLabel1 76 | // 77 | this.linkLabel1.AutoSize = true; 78 | this.linkLabel1.BackColor = System.Drawing.Color.Transparent; 79 | this.linkLabel1.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255))))); 80 | this.linkLabel1.Location = new System.Drawing.Point(22, 99); 81 | this.linkLabel1.Name = "linkLabel1"; 82 | this.linkLabel1.Size = new System.Drawing.Size(168, 26); 83 | this.linkLabel1.TabIndex = 1; 84 | this.linkLabel1.TabStop = true; 85 | this.linkLabel1.Text = "https://cebcare.ceb.lk/Incognito/\r\nDemandMgmtSchedule"; 86 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); 87 | // 88 | // label1 89 | // 90 | this.label1.AutoSize = true; 91 | this.label1.BackColor = System.Drawing.Color.Transparent; 92 | this.label1.ForeColor = System.Drawing.Color.White; 93 | this.label1.Location = new System.Drawing.Point(22, 61); 94 | this.label1.Name = "label1"; 95 | this.label1.Size = new System.Drawing.Size(244, 26); 96 | this.label1.TabIndex = 2; 97 | this.label1.Text = "If you don\'t know the powercut group. please visit \r\nthis website and find it."; 98 | // 99 | // label2 100 | // 101 | this.label2.AutoSize = true; 102 | this.label2.BackColor = System.Drawing.Color.Transparent; 103 | this.label2.ForeColor = System.Drawing.Color.White; 104 | this.label2.Location = new System.Drawing.Point(22, 22); 105 | this.label2.Name = "label2"; 106 | this.label2.Size = new System.Drawing.Size(140, 13); 107 | this.label2.TabIndex = 2; 108 | this.label2.Text = "Select your Powercut Group"; 109 | // 110 | // button1 111 | // 112 | this.button1.ForeColor = System.Drawing.Color.Black; 113 | this.button1.Location = new System.Drawing.Point(188, 169); 114 | this.button1.Name = "button1"; 115 | this.button1.Size = new System.Drawing.Size(81, 34); 116 | this.button1.TabIndex = 3; 117 | this.button1.Text = "Save"; 118 | this.button1.UseVisualStyleBackColor = true; 119 | this.button1.Click += new System.EventHandler(this.button1_Click); 120 | // 121 | // Settings 122 | // 123 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 124 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 125 | this.BackgroundImage = global::PowercutGadget.Properties.Resources.AlertNotofication; 126 | this.ClientSize = new System.Drawing.Size(281, 215); 127 | this.Controls.Add(this.button1); 128 | this.Controls.Add(this.label2); 129 | this.Controls.Add(this.label1); 130 | this.Controls.Add(this.linkLabel1); 131 | this.Controls.Add(this.comboBox1); 132 | this.ForeColor = System.Drawing.Color.White; 133 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 134 | this.Name = "Settings"; 135 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 136 | this.Text = "Settings"; 137 | this.Load += new System.EventHandler(this.Settings_Load); 138 | this.ResumeLayout(false); 139 | this.PerformLayout(); 140 | 141 | } 142 | 143 | #endregion 144 | 145 | private System.Windows.Forms.ComboBox comboBox1; 146 | private System.Windows.Forms.LinkLabel linkLabel1; 147 | private System.Windows.Forms.Label label1; 148 | private System.Windows.Forms.Label label2; 149 | private System.Windows.Forms.Button button1; 150 | } 151 | } -------------------------------------------------------------------------------- /PowercutGadget/PowercutGadget.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {72D1AF1E-B18D-4FF7-ACB7-9065907093AD} 8 | WinExe 9 | Properties 10 | PowercutGadget 11 | PowercutGadget 12 | v4.5.2 13 | 512 14 | true 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | true 30 | bin\Release\ 31 | TRACE 32 | prompt 33 | 4 34 | 35 | 36 | ceb.ico 37 | 38 | 39 | 40 | ..\packages\HtmlAgilityPack.1.11.43\lib\Net45\HtmlAgilityPack.dll 41 | True 42 | 43 | 44 | ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll 45 | True 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | Form 63 | 64 | 65 | AlertNotification.cs 66 | 67 | 68 | 69 | Form 70 | 71 | 72 | Form1.cs 73 | 74 | 75 | 76 | 77 | Form 78 | 79 | 80 | Settings.cs 81 | 82 | 83 | 84 | 85 | AlertNotification.cs 86 | 87 | 88 | Form1.cs 89 | 90 | 91 | ResXFileCodeGenerator 92 | Resources.Designer.cs 93 | Designer 94 | 95 | 96 | True 97 | Resources.resx 98 | True 99 | 100 | 101 | Settings.cs 102 | 103 | 104 | 105 | SettingsSingleFileGenerator 106 | Settings.Designer.cs 107 | 108 | 109 | True 110 | Settings.settings 111 | True 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 171 | -------------------------------------------------------------------------------- /PowercutGadget/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace PowercutGadget.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PowercutGadget.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap _360_F_283136113_b3VRHNiOPFMOluzYJPpfuoH8Czh9c743 { 67 | get { 68 | object obj = ResourceManager.GetObject("360_F_283136113_b3VRHNiOPFMOluzYJPpfuoH8Czh9c743", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Drawing.Bitmap. 75 | /// 76 | internal static System.Drawing.Bitmap AlertNotofication { 77 | get { 78 | object obj = ResourceManager.GetObject("AlertNotofication", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// Looks up a localized resource of type System.Drawing.Bitmap. 85 | /// 86 | internal static System.Drawing.Bitmap AlertNotofication1 { 87 | get { 88 | object obj = ResourceManager.GetObject("AlertNotofication1", resourceCulture); 89 | return ((System.Drawing.Bitmap)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// Looks up a localized resource of type System.Drawing.Bitmap. 95 | /// 96 | internal static System.Drawing.Bitmap background { 97 | get { 98 | object obj = ResourceManager.GetObject("background", resourceCulture); 99 | return ((System.Drawing.Bitmap)(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// Looks up a localized resource of type System.Drawing.Bitmap. 105 | /// 106 | internal static System.Drawing.Bitmap background_2 { 107 | get { 108 | object obj = ResourceManager.GetObject("background 2", resourceCulture); 109 | return ((System.Drawing.Bitmap)(obj)); 110 | } 111 | } 112 | 113 | /// 114 | /// Looks up a localized resource of type System.Drawing.Bitmap. 115 | /// 116 | internal static System.Drawing.Bitmap background_non_trans { 117 | get { 118 | object obj = ResourceManager.GetObject("background non trans", resourceCulture); 119 | return ((System.Drawing.Bitmap)(obj)); 120 | } 121 | } 122 | 123 | /// 124 | /// Looks up a localized resource of type System.Drawing.Bitmap. 125 | /// 126 | internal static System.Drawing.Bitmap button_png_172003 { 127 | get { 128 | object obj = ResourceManager.GetObject("button-png-172003", resourceCulture); 129 | return ((System.Drawing.Bitmap)(obj)); 130 | } 131 | } 132 | 133 | /// 134 | /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). 135 | /// 136 | internal static System.Drawing.Icon ceb { 137 | get { 138 | object obj = ResourceManager.GetObject("ceb", resourceCulture); 139 | return ((System.Drawing.Icon)(obj)); 140 | } 141 | } 142 | 143 | /// 144 | /// Looks up a localized resource of type System.Drawing.Bitmap. 145 | /// 146 | internal static System.Drawing.Bitmap close_btn { 147 | get { 148 | object obj = ResourceManager.GetObject("close btn", resourceCulture); 149 | return ((System.Drawing.Bitmap)(obj)); 150 | } 151 | } 152 | 153 | /// 154 | /// Looks up a localized resource of type System.Drawing.Bitmap. 155 | /// 156 | internal static System.Drawing.Bitmap close_btn_hover { 157 | get { 158 | object obj = ResourceManager.GetObject("close btn hover", resourceCulture); 159 | return ((System.Drawing.Bitmap)(obj)); 160 | } 161 | } 162 | 163 | /// 164 | /// Looks up a localized resource of type System.Drawing.Bitmap. 165 | /// 166 | internal static System.Drawing.Bitmap setting_btn { 167 | get { 168 | object obj = ResourceManager.GetObject("setting btn", resourceCulture); 169 | return ((System.Drawing.Bitmap)(obj)); 170 | } 171 | } 172 | 173 | /// 174 | /// Looks up a localized resource of type System.Drawing.Bitmap. 175 | /// 176 | internal static System.Drawing.Bitmap setting_btn_hower { 177 | get { 178 | object obj = ResourceManager.GetObject("setting btn hower", resourceCulture); 179 | return ((System.Drawing.Bitmap)(obj)); 180 | } 181 | } 182 | 183 | /// 184 | /// Looks up a localized resource of type System.Drawing.Bitmap. 185 | /// 186 | internal static System.Drawing.Bitmap setting_btn_hower1 { 187 | get { 188 | object obj = ResourceManager.GetObject("setting btn hower1", resourceCulture); 189 | return ((System.Drawing.Bitmap)(obj)); 190 | } 191 | } 192 | 193 | /// 194 | /// Looks up a localized resource of type System.Drawing.Bitmap. 195 | /// 196 | internal static System.Drawing.Bitmap setting_btn1 { 197 | get { 198 | object obj = ResourceManager.GetObject("setting btn1", resourceCulture); 199 | return ((System.Drawing.Bitmap)(obj)); 200 | } 201 | } 202 | 203 | /// 204 | /// Looks up a localized resource of type System.Drawing.Bitmap. 205 | /// 206 | internal static System.Drawing.Bitmap sync { 207 | get { 208 | object obj = ResourceManager.GetObject("sync", resourceCulture); 209 | return ((System.Drawing.Bitmap)(obj)); 210 | } 211 | } 212 | 213 | /// 214 | /// Looks up a localized resource of type System.Drawing.Bitmap. 215 | /// 216 | internal static System.Drawing.Bitmap sync_hower { 217 | get { 218 | object obj = ResourceManager.GetObject("sync hower", resourceCulture); 219 | return ((System.Drawing.Bitmap)(obj)); 220 | } 221 | } 222 | 223 | /// 224 | /// Looks up a localized resource of type System.Drawing.Bitmap. 225 | /// 226 | internal static System.Drawing.Bitmap top_back_color { 227 | get { 228 | object obj = ResourceManager.GetObject("top back color", resourceCulture); 229 | return ((System.Drawing.Bitmap)(obj)); 230 | } 231 | } 232 | 233 | /// 234 | /// Looks up a localized resource of type System.Drawing.Bitmap. 235 | /// 236 | internal static System.Drawing.Bitmap top_bar { 237 | get { 238 | object obj = ResourceManager.GetObject("top bar", resourceCulture); 239 | return ((System.Drawing.Bitmap)(obj)); 240 | } 241 | } 242 | } 243 | } 244 | -------------------------------------------------------------------------------- /PowercutGadget/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\360_F_283136113_b3VRHNiOPFMOluzYJPpfuoH8Czh9c743.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\setting btn hower.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | 128 | ..\Resources\background 2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 129 | 130 | 131 | ..\Resources\setting btn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 132 | 133 | 134 | ..\Resources\ceb.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 135 | 136 | 137 | ..\Resources\AlertNotofication1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 138 | 139 | 140 | ..\Resources\close btn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 141 | 142 | 143 | ..\Resources\AlertNotofication.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 144 | 145 | 146 | ..\Resources\sync.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 147 | 148 | 149 | ..\Resources\top bar.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 150 | 151 | 152 | ..\Resources\background.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 153 | 154 | 155 | ..\Resources\setting btn1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 156 | 157 | 158 | ..\Resources\top back color.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 159 | 160 | 161 | ..\Resources\background non trans.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 162 | 163 | 164 | ..\Resources\sync hower.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 165 | 166 | 167 | ..\Resources\close btn hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 168 | 169 | 170 | ..\Resources\button-png-172003.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 171 | 172 | 173 | ..\Resources\setting btn hower1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 174 | 175 | -------------------------------------------------------------------------------- /PowercutGadget/Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowercutGadget 2 | { 3 | partial class Form1 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); 33 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 34 | this.pictureBox2 = new System.Windows.Forms.PictureBox(); 35 | this.closeBtn = new System.Windows.Forms.PictureBox(); 36 | this.settingBtn = new System.Windows.Forms.PictureBox(); 37 | this.label1 = new System.Windows.Forms.Label(); 38 | this.lbl_timeslot1 = new System.Windows.Forms.Label(); 39 | this.lbl_timeslot2 = new System.Windows.Forms.Label(); 40 | this.lbl_timeslot3 = new System.Windows.Forms.Label(); 41 | this.lastSynced = new System.Windows.Forms.Label(); 42 | this.timer1 = new System.Windows.Forms.Timer(this.components); 43 | this.timer2 = new System.Windows.Forms.Timer(this.components); 44 | this.blockUiPanel = new System.Windows.Forms.Panel(); 45 | this.label3 = new System.Windows.Forms.Label(); 46 | this.label2 = new System.Windows.Forms.Label(); 47 | this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); 48 | this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); 49 | this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 50 | this.quitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 51 | this.notifyIcon2 = new System.Windows.Forms.NotifyIcon(this.components); 52 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 53 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); 54 | ((System.ComponentModel.ISupportInitialize)(this.closeBtn)).BeginInit(); 55 | ((System.ComponentModel.ISupportInitialize)(this.settingBtn)).BeginInit(); 56 | this.blockUiPanel.SuspendLayout(); 57 | this.contextMenuStrip1.SuspendLayout(); 58 | this.SuspendLayout(); 59 | // 60 | // pictureBox1 61 | // 62 | this.pictureBox1.BackColor = System.Drawing.Color.Transparent; 63 | this.pictureBox1.BackgroundImage = global::PowercutGadget.Properties.Resources.sync; 64 | this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 65 | this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand; 66 | this.pictureBox1.Location = new System.Drawing.Point(188, 153); 67 | this.pictureBox1.Name = "pictureBox1"; 68 | this.pictureBox1.Size = new System.Drawing.Size(37, 22); 69 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 70 | this.pictureBox1.TabIndex = 0; 71 | this.pictureBox1.TabStop = false; 72 | this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); 73 | this.pictureBox1.MouseLeave += new System.EventHandler(this.pictureBox1_MouseLeave); 74 | this.pictureBox1.MouseHover += new System.EventHandler(this.pictureBox1_MouseHover); 75 | // 76 | // pictureBox2 77 | // 78 | this.pictureBox2.BackgroundImage = global::PowercutGadget.Properties.Resources.top_bar; 79 | this.pictureBox2.Cursor = System.Windows.Forms.Cursors.Hand; 80 | this.pictureBox2.Location = new System.Drawing.Point(0, 0); 81 | this.pictureBox2.Name = "pictureBox2"; 82 | this.pictureBox2.Size = new System.Drawing.Size(240, 41); 83 | this.pictureBox2.TabIndex = 1; 84 | this.pictureBox2.TabStop = false; 85 | this.pictureBox2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox2_MouseDown); 86 | // 87 | // closeBtn 88 | // 89 | this.closeBtn.BackColor = System.Drawing.Color.Transparent; 90 | this.closeBtn.BackgroundImage = global::PowercutGadget.Properties.Resources.top_back_color; 91 | this.closeBtn.Cursor = System.Windows.Forms.Cursors.Hand; 92 | this.closeBtn.Image = global::PowercutGadget.Properties.Resources.close_btn; 93 | this.closeBtn.Location = new System.Drawing.Point(212, 12); 94 | this.closeBtn.Name = "closeBtn"; 95 | this.closeBtn.Size = new System.Drawing.Size(16, 16); 96 | this.closeBtn.TabIndex = 2; 97 | this.closeBtn.TabStop = false; 98 | this.closeBtn.Click += new System.EventHandler(this.closeBtn_Click); 99 | this.closeBtn.MouseLeave += new System.EventHandler(this.closeBtn_MouseLeave); 100 | this.closeBtn.MouseHover += new System.EventHandler(this.closeBtn_MouseHover); 101 | // 102 | // settingBtn 103 | // 104 | this.settingBtn.BackColor = System.Drawing.Color.Transparent; 105 | this.settingBtn.BackgroundImage = global::PowercutGadget.Properties.Resources.top_back_color; 106 | this.settingBtn.Cursor = System.Windows.Forms.Cursors.Hand; 107 | this.settingBtn.Image = global::PowercutGadget.Properties.Resources.setting_btn1; 108 | this.settingBtn.Location = new System.Drawing.Point(12, 12); 109 | this.settingBtn.Name = "settingBtn"; 110 | this.settingBtn.Size = new System.Drawing.Size(16, 16); 111 | this.settingBtn.TabIndex = 2; 112 | this.settingBtn.TabStop = false; 113 | this.settingBtn.Click += new System.EventHandler(this.settingBtn_Click); 114 | this.settingBtn.MouseLeave += new System.EventHandler(this.settingBtn_MouseLeave); 115 | this.settingBtn.MouseHover += new System.EventHandler(this.settingBtn_MouseHover); 116 | // 117 | // label1 118 | // 119 | this.label1.AutoSize = true; 120 | this.label1.BackColor = System.Drawing.Color.Transparent; 121 | this.label1.Font = new System.Drawing.Font("Georgia", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 122 | this.label1.ForeColor = System.Drawing.Color.White; 123 | this.label1.Image = global::PowercutGadget.Properties.Resources.top_bar; 124 | this.label1.Location = new System.Drawing.Point(49, 12); 125 | this.label1.Name = "label1"; 126 | this.label1.Size = new System.Drawing.Size(126, 16); 127 | this.label1.TabIndex = 3; 128 | this.label1.Text = "Powercut Schedule"; 129 | // 130 | // lbl_timeslot1 131 | // 132 | this.lbl_timeslot1.AutoSize = true; 133 | this.lbl_timeslot1.BackColor = System.Drawing.Color.Transparent; 134 | this.lbl_timeslot1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 135 | this.lbl_timeslot1.ForeColor = System.Drawing.Color.White; 136 | this.lbl_timeslot1.Location = new System.Drawing.Point(12, 52); 137 | this.lbl_timeslot1.Name = "lbl_timeslot1"; 138 | this.lbl_timeslot1.Size = new System.Drawing.Size(67, 16); 139 | this.lbl_timeslot1.TabIndex = 4; 140 | this.lbl_timeslot1.Text = "1. syncing"; 141 | // 142 | // lbl_timeslot2 143 | // 144 | this.lbl_timeslot2.AutoSize = true; 145 | this.lbl_timeslot2.BackColor = System.Drawing.Color.Transparent; 146 | this.lbl_timeslot2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 147 | this.lbl_timeslot2.ForeColor = System.Drawing.Color.White; 148 | this.lbl_timeslot2.Location = new System.Drawing.Point(12, 87); 149 | this.lbl_timeslot2.Name = "lbl_timeslot2"; 150 | this.lbl_timeslot2.Size = new System.Drawing.Size(67, 16); 151 | this.lbl_timeslot2.TabIndex = 4; 152 | this.lbl_timeslot2.Text = "2. syncing"; 153 | // 154 | // lbl_timeslot3 155 | // 156 | this.lbl_timeslot3.AutoSize = true; 157 | this.lbl_timeslot3.BackColor = System.Drawing.Color.Transparent; 158 | this.lbl_timeslot3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 159 | this.lbl_timeslot3.ForeColor = System.Drawing.Color.White; 160 | this.lbl_timeslot3.Location = new System.Drawing.Point(12, 122); 161 | this.lbl_timeslot3.Name = "lbl_timeslot3"; 162 | this.lbl_timeslot3.Size = new System.Drawing.Size(67, 16); 163 | this.lbl_timeslot3.TabIndex = 4; 164 | this.lbl_timeslot3.Text = "3. syncing"; 165 | // 166 | // lastSynced 167 | // 168 | this.lastSynced.AutoSize = true; 169 | this.lastSynced.BackColor = System.Drawing.Color.Transparent; 170 | this.lastSynced.Location = new System.Drawing.Point(21, 158); 171 | this.lastSynced.Name = "lastSynced"; 172 | this.lastSynced.Size = new System.Drawing.Size(43, 13); 173 | this.lastSynced.TabIndex = 5; 174 | this.lastSynced.Text = "syncing"; 175 | // 176 | // timer1 177 | // 178 | this.timer1.Enabled = true; 179 | this.timer1.Interval = 2000; 180 | this.timer1.Tick += new System.EventHandler(this.timer1_Tick); 181 | // 182 | // timer2 183 | // 184 | this.timer2.Enabled = true; 185 | this.timer2.Interval = 1000; 186 | this.timer2.Tick += new System.EventHandler(this.timer2_Tick); 187 | // 188 | // blockUiPanel 189 | // 190 | this.blockUiPanel.BackColor = System.Drawing.Color.Transparent; 191 | this.blockUiPanel.Controls.Add(this.label3); 192 | this.blockUiPanel.Controls.Add(this.label2); 193 | this.blockUiPanel.Location = new System.Drawing.Point(0, 47); 194 | this.blockUiPanel.Name = "blockUiPanel"; 195 | this.blockUiPanel.Size = new System.Drawing.Size(240, 100); 196 | this.blockUiPanel.TabIndex = 6; 197 | this.blockUiPanel.Visible = false; 198 | this.blockUiPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.blockUiPanel_Paint); 199 | // 200 | // label3 201 | // 202 | this.label3.AutoSize = true; 203 | this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 204 | this.label3.Location = new System.Drawing.Point(9, 40); 205 | this.label3.Name = "label3"; 206 | this.label3.Size = new System.Drawing.Size(223, 45); 207 | this.label3.TabIndex = 1; 208 | this.label3.Text = "Click the Sync button to retry.. \r\nMake sure your Computer is connected \r\nto the " + 209 | "internet."; 210 | this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 211 | // 212 | // label2 213 | // 214 | this.label2.AutoSize = true; 215 | this.label2.Font = new System.Drawing.Font("Georgia", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 216 | this.label2.Location = new System.Drawing.Point(23, 6); 217 | this.label2.Name = "label2"; 218 | this.label2.Size = new System.Drawing.Size(189, 18); 219 | this.label2.TabIndex = 0; 220 | this.label2.Text = "Failed to connect server"; 221 | // 222 | // notifyIcon1 223 | // 224 | this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1; 225 | this.notifyIcon1.Text = "Powecut Shedule"; 226 | this.notifyIcon1.Visible = true; 227 | this.notifyIcon1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseDoubleClick); 228 | // 229 | // contextMenuStrip1 230 | // 231 | this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 232 | this.openToolStripMenuItem, 233 | this.quitToolStripMenuItem}); 234 | this.contextMenuStrip1.Name = "contextMenuStrip1"; 235 | this.contextMenuStrip1.Size = new System.Drawing.Size(145, 48); 236 | // 237 | // openToolStripMenuItem 238 | // 239 | this.openToolStripMenuItem.Name = "openToolStripMenuItem"; 240 | this.openToolStripMenuItem.Size = new System.Drawing.Size(144, 22); 241 | this.openToolStripMenuItem.Text = "Open Gadget"; 242 | this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); 243 | // 244 | // quitToolStripMenuItem 245 | // 246 | this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; 247 | this.quitToolStripMenuItem.Size = new System.Drawing.Size(144, 22); 248 | this.quitToolStripMenuItem.Text = "Quit Gadget"; 249 | this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); 250 | // 251 | // notifyIcon2 252 | // 253 | this.notifyIcon2.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Warning; 254 | this.notifyIcon2.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon2.Icon"))); 255 | this.notifyIcon2.Text = "Powecut Shedule"; 256 | this.notifyIcon2.Visible = true; 257 | // 258 | // Form1 259 | // 260 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 261 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 262 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); 263 | this.BackgroundImage = global::PowercutGadget.Properties.Resources.background_2; 264 | this.ClientSize = new System.Drawing.Size(240, 180); 265 | this.Controls.Add(this.blockUiPanel); 266 | this.Controls.Add(this.lastSynced); 267 | this.Controls.Add(this.lbl_timeslot3); 268 | this.Controls.Add(this.lbl_timeslot2); 269 | this.Controls.Add(this.lbl_timeslot1); 270 | this.Controls.Add(this.label1); 271 | this.Controls.Add(this.settingBtn); 272 | this.Controls.Add(this.closeBtn); 273 | this.Controls.Add(this.pictureBox2); 274 | this.Controls.Add(this.pictureBox1); 275 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 276 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 277 | this.Name = "Form1"; 278 | this.ShowInTaskbar = false; 279 | this.Text = "Form1"; 280 | this.TransparencyKey = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); 281 | this.Load += new System.EventHandler(this.Form1_Load); 282 | this.ResizeEnd += new System.EventHandler(this.Form1_ResizeEnd); 283 | this.Resize += new System.EventHandler(this.Form1_Resize); 284 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 285 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); 286 | ((System.ComponentModel.ISupportInitialize)(this.closeBtn)).EndInit(); 287 | ((System.ComponentModel.ISupportInitialize)(this.settingBtn)).EndInit(); 288 | this.blockUiPanel.ResumeLayout(false); 289 | this.blockUiPanel.PerformLayout(); 290 | this.contextMenuStrip1.ResumeLayout(false); 291 | this.ResumeLayout(false); 292 | this.PerformLayout(); 293 | 294 | } 295 | 296 | #endregion 297 | 298 | private System.Windows.Forms.PictureBox pictureBox1; 299 | private System.Windows.Forms.PictureBox pictureBox2; 300 | private System.Windows.Forms.PictureBox closeBtn; 301 | private System.Windows.Forms.PictureBox settingBtn; 302 | private System.Windows.Forms.Label label1; 303 | private System.Windows.Forms.Label lbl_timeslot1; 304 | private System.Windows.Forms.Label lbl_timeslot2; 305 | private System.Windows.Forms.Label lbl_timeslot3; 306 | private System.Windows.Forms.Label lastSynced; 307 | private System.Windows.Forms.Timer timer1; 308 | private System.Windows.Forms.Timer timer2; 309 | private System.Windows.Forms.Panel blockUiPanel; 310 | private System.Windows.Forms.Label label3; 311 | private System.Windows.Forms.Label label2; 312 | private System.Windows.Forms.NotifyIcon notifyIcon1; 313 | private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; 314 | private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; 315 | private System.Windows.Forms.ToolStripMenuItem quitToolStripMenuItem; 316 | private System.Windows.Forms.NotifyIcon notifyIcon2; 317 | } 318 | } 319 | 320 | -------------------------------------------------------------------------------- /PowercutGadget/Form1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.IO; 7 | using System.Linq; 8 | using System.Net; 9 | using System.Text; 10 | using System.Threading.Tasks; 11 | using System.Windows.Forms; 12 | using HtmlAgilityPack; 13 | using System.Net.Http; 14 | using Newtonsoft.Json.Linq; 15 | using Microsoft.Win32; 16 | 17 | namespace PowercutGadget 18 | { 19 | public partial class Form1 : Form 20 | { 21 | 22 | public const int WM_NCLBUTTONDOWN = 0xA1; 23 | public const int HT_CAPTION = 0x2; 24 | 25 | [System.Runtime.InteropServices.DllImport("user32.dll")] 26 | public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); 27 | [System.Runtime.InteropServices.DllImport("user32.dll")] 28 | public static extern bool ReleaseCapture(); 29 | 30 | private CookieContainer cookieContainer = new CookieContainer(); 31 | HttpClient client = new HttpClient(); 32 | 33 | int apiRequestRetryCount = 0; 34 | bool onANotification = false; 35 | 36 | 37 | public Form1() 38 | { 39 | InitializeComponent(); 40 | ServicePointManager.Expect100Continue = true; 41 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 42 | 43 | } 44 | 45 | private void pictureBox1_Click(object sender, EventArgs e) 46 | { 47 | 48 | Console.WriteLine(getVerificationToken()); 49 | String json=GetLoadSheddingEvents(getVerificationToken()); 50 | 51 | if (!json.Equals("")) 52 | { 53 | getTimeSlots(json, ConfigFactory.getSheduleGroup()); 54 | updateTimeslotLabels(); 55 | } 56 | else { 57 | } 58 | 59 | } 60 | 61 | String getVerificationToken() 62 | { 63 | try 64 | { 65 | string urlAddress = "https://cebcare.ceb.lk/Incognito/DemandMgmtSchedule"; 66 | 67 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress); 68 | request.CookieContainer = cookieContainer; 69 | HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 70 | 71 | if (response.StatusCode == HttpStatusCode.OK) 72 | { 73 | Stream receiveStream = response.GetResponseStream(); 74 | StreamReader readStream = null; 75 | if (String.IsNullOrWhiteSpace(response.CharacterSet)) 76 | readStream = new StreamReader(receiveStream); 77 | else 78 | readStream = new StreamReader(receiveStream, 79 | Encoding.GetEncoding(response.CharacterSet)); 80 | string data = readStream.ReadToEnd(); 81 | response.Close(); 82 | readStream.Close(); 83 | 84 | var doc = new HtmlAgilityPack.HtmlDocument(); 85 | doc.LoadHtml(data); 86 | 87 | var node = doc.DocumentNode.SelectSingleNode("//input[@name='__RequestVerificationToken']"); 88 | 89 | return node.Attributes["value"].Value; 90 | 91 | } 92 | } 93 | catch (Exception){ 94 | } 95 | 96 | return ""; 97 | } 98 | 99 | string GetLoadSheddingEvents(String reqAuthToken) 100 | { 101 | try 102 | { 103 | String cookieString = getCookieStringForSite(cookieContainer, "https://cebcare.ceb.lk"); 104 | 105 | var url = "https://cebcare.ceb.lk/Incognito/GetLoadSheddingEvents"; 106 | var data = "StartTime="+DateTime.Now.Date.ToString("yyyy-MM-dd") + "&EndTime="+ DateTime.Now.Date.AddDays(1).ToString("yyyy-MM-dd"); 107 | Console.WriteLine(data); 108 | byte[] contentBytes = Encoding.ASCII.GetBytes(data); 109 | 110 | var httpRequest = (HttpWebRequest)WebRequest.Create(url); 111 | httpRequest.Method = "POST"; 112 | 113 | httpRequest.ContentType = "application/x-www-form-urlencoded"; 114 | httpRequest.Headers.Add("RequestVerificationToken", getVerificationToken()); 115 | httpRequest.Headers.Add("Cookie", cookieString); 116 | //httpRequest.Headers.Add("Host", "cebcare.ceb.lk"); 117 | httpRequest.Host = "cebcare.ceb.lk"; 118 | httpRequest.ContentLength = contentBytes.Length; 119 | 120 | Console.WriteLine(httpRequest.ContentLength); 121 | 122 | 123 | using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) 124 | { 125 | streamWriter.Write(data); 126 | } 127 | 128 | var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); 129 | using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 130 | { 131 | var result = streamReader.ReadToEnd(); 132 | 133 | return result; 134 | } 135 | 136 | } 137 | catch (Exception) 138 | { 139 | } 140 | 141 | return ""; 142 | } 143 | 144 | String getCookieStringForSite(CookieContainer container,String site) 145 | { 146 | String cookieString = ""; 147 | foreach (var cookie in cookieContainer.GetCookies(new Uri(site))) 148 | { 149 | //Console.WriteLine(cookie.ToString()); // test=testValue 150 | cookieString = cookieString + cookie.ToString() + ";"; 151 | } 152 | 153 | return cookieString; 154 | } 155 | 156 | private void closeBtn_MouseHover(object sender, EventArgs e) 157 | { 158 | closeBtn.Image = Properties.Resources.close_btn_hover; 159 | } 160 | 161 | private void settingBtn_MouseHover(object sender, EventArgs e) 162 | { 163 | settingBtn.Image = Properties.Resources.setting_btn_hower1; 164 | ToolTip tt = new ToolTip(); 165 | tt.SetToolTip(this.settingBtn, "Open Settings"); 166 | } 167 | 168 | private void settingBtn_MouseLeave(object sender, EventArgs e) 169 | { 170 | settingBtn.Image = Properties.Resources.setting_btn1; 171 | } 172 | 173 | private void closeBtn_MouseLeave(object sender, EventArgs e) 174 | { 175 | closeBtn.Image = Properties.Resources.close_btn; 176 | } 177 | 178 | private void closeBtn_Click(object sender, EventArgs e) 179 | { 180 | //Application.Exit(); 181 | 182 | WindowState = FormWindowState.Minimized; 183 | } 184 | 185 | private void pictureBox2_MouseDown(object sender, MouseEventArgs e) 186 | { 187 | if (e.Button == MouseButtons.Left) 188 | { 189 | ReleaseCapture(); 190 | SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); 191 | } 192 | } 193 | 194 | private void Form1_Load(object sender, EventArgs e) 195 | { 196 | RegisterInStartup(true); 197 | Console.WriteLine(ConfigFactory.getSheduleGroup()); 198 | 199 | notifyIcon1.Icon=Properties.Resources.ceb; 200 | 201 | double inititialLocX = System.Windows.SystemParameters.FullPrimaryScreenWidth - Size.Width - 15; 202 | double initialLocY = 15; 203 | this.Location = new Point((int)inititialLocX, (int)initialLocY); 204 | 205 | 206 | //load data for the first time 207 | Task.Run(() => tryLoadData()); 208 | updateTimeslotLabels(); 209 | } 210 | 211 | async void tryLoadData() 212 | { 213 | String json = GetLoadSheddingEvents(getVerificationToken()); 214 | 215 | if (!json.Equals("")) 216 | { 217 | getTimeSlots(json, ConfigFactory.getSheduleGroup()); 218 | 219 | if (SyncedData.isSynced()) 220 | { 221 | apiRequestRetryCount = 0; 222 | } 223 | else { 224 | apiRequestRetryCount++; 225 | } 226 | } 227 | else { 228 | apiRequestRetryCount++; 229 | } 230 | } 231 | 232 | async void getTimeSlots(String json, String group) 233 | { 234 | List timeslots = new List(); 235 | 236 | try 237 | { 238 | JArray textArray = JArray.Parse(json); 239 | 240 | List powercutTimeSlots = new List(); 241 | 242 | foreach (JObject item in textArray) 243 | { 244 | string loadshed = item.GetValue("loadShedGroupId").ToString(); 245 | 246 | if (loadshed.Equals(group)) 247 | { 248 | String startT = item.GetValue("startTime").ToString(); 249 | String endT = item.GetValue("endTime").ToString(); 250 | 251 | timeslots.Add(new TimeSlot(DateTime.Parse(startT), 252 | DateTime.Parse(endT))); 253 | 254 | } 255 | } 256 | List SortedList = timeslots.OrderBy(o => o.StartTime).ToList(); 257 | SyncedData.TimeSlots = SortedList; 258 | 259 | } 260 | catch (Exception e){ 261 | } 262 | } 263 | 264 | 265 | void updateTimeslotLabels() 266 | { 267 | if (SyncedData.isSynced()) 268 | { 269 | blockUiPanel.Visible = false; 270 | 271 | int nearestTimeslotIndex = SyncedData.getIndexOfNearestTimeSlotIndex(); 272 | String suffix = " "; 273 | 274 | if (nearestTimeslotIndex == -2) 275 | { 276 | } 277 | else if (nearestTimeslotIndex == -1) 278 | { 279 | int i = 0; 280 | foreach (TimeSlot t in SyncedData.TimeSlots) 281 | { 282 | if (DateTime.Now <= t.EndTime && DateTime.Now >= t.StartTime) 283 | { 284 | nearestTimeslotIndex = i; 285 | break; 286 | } 287 | 288 | i++; 289 | } 290 | suffix = " ongoing"; 291 | } 292 | else { 293 | String defference = SyncedData.TimeSlots[nearestTimeslotIndex].StartTime.Subtract(DateTime.Now).ToString("hh':'mm"); 294 | suffix = " - happens in (" + defference + ")"; 295 | 296 | int minutes = (Int32)SyncedData.TimeSlots[nearestTimeslotIndex].StartTime.Subtract(DateTime.Now).TotalMinutes; 297 | 298 | 299 | createNotification(nearestTimeslotIndex,60); 300 | createNotification(nearestTimeslotIndex,30); 301 | createNotification(nearestTimeslotIndex, 15); 302 | createNotification(nearestTimeslotIndex, 5); 303 | createNotification(nearestTimeslotIndex, 2); 304 | 305 | } 306 | 307 | //updating labels 308 | if (SyncedData.timeSlotCount() > 0) 309 | { 310 | String s = ""; 311 | if (nearestTimeslotIndex == 0) 312 | { 313 | s = suffix; 314 | lbl_timeslot1.ForeColor = Color.YellowGreen; 315 | } 316 | else 317 | { 318 | lbl_timeslot1.ForeColor = Color.White; 319 | } 320 | lbl_timeslot1.Text = "1. " + SyncedData.TimeSlots[0].StartTime.ToString("HH:mm") + " to " + SyncedData.TimeSlots[0].EndTime.ToString("HH:mm") + s; 321 | } 322 | else { 323 | lbl_timeslot1.Text = "-"; 324 | lbl_timeslot2.Text = "-"; 325 | lbl_timeslot3.Text = "-"; 326 | } 327 | 328 | if (SyncedData.timeSlotCount() > 1) 329 | { 330 | String s = ""; 331 | if (nearestTimeslotIndex == 1) 332 | { 333 | s = suffix; 334 | lbl_timeslot2.ForeColor = Color.YellowGreen; 335 | } 336 | else 337 | { 338 | lbl_timeslot2.ForeColor = Color.White; 339 | } 340 | 341 | lbl_timeslot2.Text = "2. " + SyncedData.TimeSlots[1].StartTime.ToString("HH:mm") + " to " + SyncedData.TimeSlots[1].EndTime.ToString("HH:mm") + s; 342 | } 343 | else { 344 | lbl_timeslot2.Text = "-"; 345 | lbl_timeslot3.Text = "-"; 346 | } 347 | 348 | if (SyncedData.timeSlotCount() > 2) 349 | { 350 | String s = ""; 351 | if (nearestTimeslotIndex == 2) 352 | { 353 | s = suffix; 354 | lbl_timeslot3.ForeColor = Color.YellowGreen; 355 | } 356 | else 357 | { 358 | lbl_timeslot3.ForeColor = Color.White; 359 | } 360 | 361 | lbl_timeslot3.Text = "3. " + SyncedData.TimeSlots[2].StartTime.ToString("HH:mm") + " to " + SyncedData.TimeSlots[2].EndTime.ToString("HH:mm") + s; 362 | } 363 | else { 364 | lbl_timeslot3.Text = "-"; 365 | } 366 | lastSynced.Text = "Updated " + SyncedData.LastSyncDateTime.ToString("HH:mm"); 367 | } 368 | else 369 | { 370 | timer2.Enabled = true; 371 | } 372 | } 373 | 374 | private void pictureBox1_MouseHover(object sender, EventArgs e) 375 | { 376 | pictureBox1.BackgroundImage = Properties.Resources.sync_hower; 377 | } 378 | 379 | private void pictureBox1_MouseLeave(object sender, EventArgs e) 380 | { 381 | pictureBox1.BackgroundImage = Properties.Resources.sync; 382 | } 383 | 384 | private void timer1_Tick(object sender, EventArgs e) 385 | { 386 | updateTimeslotLabels(); 387 | } 388 | 389 | private void timer2_Tick(object sender, EventArgs e) 390 | { 391 | if (SyncedData.isSynced()) 392 | { 393 | apiRequestRetryCount = 0; 394 | timer2.Enabled = false; 395 | } 396 | else if (apiRequestRetryCount < 5) 397 | { 398 | Task.Run(() => tryLoadData()); 399 | Console.WriteLine("retring to get response.."); 400 | } 401 | else 402 | { 403 | blockUiPanel.Visible = true; 404 | Console.WriteLine("failed 5 times to get response"); 405 | } 406 | } 407 | 408 | void createNotification(int timeslotIndex,int minute) 409 | { 410 | int minutes = (Int32)SyncedData.TimeSlots[timeslotIndex].StartTime.Subtract(DateTime.Now).TotalMinutes; 411 | 412 | if (onANotification == false && minutes <= minute && minutes >= minute) 413 | { 414 | onANotification = true; 415 | 416 | notifyIcon2.BalloonTipTitle = "Powercut Alert!!"; 417 | notifyIcon2.BalloonTipText = "Next powercut happens in : " + SyncedData.TimeSlots[timeslotIndex].StartTime.Subtract(DateTime.Now).ToString("hh':'mm"); 418 | notifyIcon2.Visible = true; 419 | notifyIcon2.ShowBalloonTip(500); 420 | 421 | new AlertNotification(timeslotIndex).Show(); 422 | } 423 | 424 | if (minutes == minute-1 ) 425 | { 426 | onANotification = false; 427 | } 428 | 429 | } 430 | 431 | private void blockUiPanel_Paint(object sender, PaintEventArgs e) 432 | { 433 | 434 | } 435 | 436 | private void Form1_ResizeEnd(object sender, EventArgs e) 437 | { 438 | 439 | } 440 | 441 | 442 | 443 | private void Form1_Resize(object sender, EventArgs e) 444 | { 445 | notifyIcon1.BalloonTipTitle = "Minimized"; 446 | notifyIcon1.BalloonTipText = "PowecutShedule App was successfully minimized to tray."; 447 | 448 | if (FormWindowState.Minimized == this.WindowState) 449 | { 450 | notifyIcon1.Visible = true; 451 | notifyIcon1.ShowBalloonTip(100); 452 | this.Hide(); 453 | } 454 | else if (FormWindowState.Normal == this.WindowState) 455 | { 456 | notifyIcon1.Visible = false; 457 | } 458 | } 459 | 460 | private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) 461 | { 462 | this.Show(); 463 | this.WindowState = FormWindowState.Normal; 464 | } 465 | 466 | private void openToolStripMenuItem_Click(object sender, EventArgs e) 467 | { 468 | this.Show(); 469 | WindowState = FormWindowState.Normal; 470 | } 471 | 472 | private void quitToolStripMenuItem_Click(object sender, EventArgs e) 473 | { 474 | Application.Exit(); 475 | } 476 | 477 | private void settingBtn_Click(object sender, EventArgs e) 478 | { 479 | new Settings().ShowDialog(); 480 | } 481 | 482 | private void RegisterInStartup(bool isChecked) 483 | { 484 | RegistryKey registryKey = Registry.CurrentUser.OpenSubKey 485 | ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 486 | if (isChecked) 487 | { 488 | registryKey.SetValue("ApplicationName", Application.ExecutablePath); 489 | } 490 | else 491 | { 492 | registryKey.DeleteValue("ApplicationName"); 493 | } 494 | } 495 | } 496 | } 497 | -------------------------------------------------------------------------------- /PowecuGadgettSetup/PowecuGadgettSetup.vdproj: -------------------------------------------------------------------------------- 1 | "DeployProject" 2 | { 3 | "VSVersion" = "3:800" 4 | "ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" 5 | "IsWebType" = "8:FALSE" 6 | "ProjectName" = "8:PowecutGadgetSetup" 7 | "LanguageId" = "3:1033" 8 | "CodePage" = "3:1252" 9 | "UILanguageId" = "3:1033" 10 | "SccProjectName" = "8:" 11 | "SccLocalPath" = "8:" 12 | "SccAuxPath" = "8:" 13 | "SccProvider" = "8:" 14 | "Hierarchy" 15 | { 16 | "Entry" 17 | { 18 | "MsmKey" = "8:_2AFEF59DF57647AC9E332D89B4282557" 19 | "OwnerKey" = "8:_UNDEFINED" 20 | "MsmSig" = "8:_UNDEFINED" 21 | } 22 | "Entry" 23 | { 24 | "MsmKey" = "8:_2ED837A1C8E94843B9D1650D27DB1849" 25 | "OwnerKey" = "8:_UNDEFINED" 26 | "MsmSig" = "8:_UNDEFINED" 27 | } 28 | "Entry" 29 | { 30 | "MsmKey" = "8:_40CFEDEEF84B4E79B19106B4328562C5" 31 | "OwnerKey" = "8:_UNDEFINED" 32 | "MsmSig" = "8:_UNDEFINED" 33 | } 34 | "Entry" 35 | { 36 | "MsmKey" = "8:_434F1362A7594B089F1E2C7C85F8BB6D" 37 | "OwnerKey" = "8:_UNDEFINED" 38 | "MsmSig" = "8:_UNDEFINED" 39 | } 40 | "Entry" 41 | { 42 | "MsmKey" = "8:_6D0B0979545540CAB246AD6647B82160" 43 | "OwnerKey" = "8:_UNDEFINED" 44 | "MsmSig" = "8:_UNDEFINED" 45 | } 46 | "Entry" 47 | { 48 | "MsmKey" = "8:_74D768EC1DC54905BB6743CC388C7FC9" 49 | "OwnerKey" = "8:_UNDEFINED" 50 | "MsmSig" = "8:_UNDEFINED" 51 | } 52 | "Entry" 53 | { 54 | "MsmKey" = "8:_8133F16A6F80B2007E835CFF9E4127EC" 55 | "OwnerKey" = "8:_2ED837A1C8E94843B9D1650D27DB1849" 56 | "MsmSig" = "8:_UNDEFINED" 57 | } 58 | "Entry" 59 | { 60 | "MsmKey" = "8:_A9417C5BD1BA4CE686CA90BC4B791899" 61 | "OwnerKey" = "8:_UNDEFINED" 62 | "MsmSig" = "8:_UNDEFINED" 63 | } 64 | "Entry" 65 | { 66 | "MsmKey" = "8:_BAF955CAD7AC60D107D53342EED67546" 67 | "OwnerKey" = "8:_74D768EC1DC54905BB6743CC388C7FC9" 68 | "MsmSig" = "8:_UNDEFINED" 69 | } 70 | "Entry" 71 | { 72 | "MsmKey" = "8:_BAF955CAD7AC60D107D53342EED67546" 73 | "OwnerKey" = "8:_2ED837A1C8E94843B9D1650D27DB1849" 74 | "MsmSig" = "8:_UNDEFINED" 75 | } 76 | "Entry" 77 | { 78 | "MsmKey" = "8:_BAF955CAD7AC60D107D53342EED67546" 79 | "OwnerKey" = "8:_CE3663E2DD721E1E616911981CC759C6" 80 | "MsmSig" = "8:_UNDEFINED" 81 | } 82 | "Entry" 83 | { 84 | "MsmKey" = "8:_CE3663E2DD721E1E616911981CC759C6" 85 | "OwnerKey" = "8:_2ED837A1C8E94843B9D1650D27DB1849" 86 | "MsmSig" = "8:_UNDEFINED" 87 | } 88 | "Entry" 89 | { 90 | "MsmKey" = "8:_DCE045C3DFF24DBDAF1C9E9FE95EF6BB" 91 | "OwnerKey" = "8:_UNDEFINED" 92 | "MsmSig" = "8:_UNDEFINED" 93 | } 94 | "Entry" 95 | { 96 | "MsmKey" = "8:_UNDEFINED" 97 | "OwnerKey" = "8:_BAF955CAD7AC60D107D53342EED67546" 98 | "MsmSig" = "8:_UNDEFINED" 99 | } 100 | "Entry" 101 | { 102 | "MsmKey" = "8:_UNDEFINED" 103 | "OwnerKey" = "8:_2ED837A1C8E94843B9D1650D27DB1849" 104 | "MsmSig" = "8:_UNDEFINED" 105 | } 106 | "Entry" 107 | { 108 | "MsmKey" = "8:_UNDEFINED" 109 | "OwnerKey" = "8:_8133F16A6F80B2007E835CFF9E4127EC" 110 | "MsmSig" = "8:_UNDEFINED" 111 | } 112 | "Entry" 113 | { 114 | "MsmKey" = "8:_UNDEFINED" 115 | "OwnerKey" = "8:_CE3663E2DD721E1E616911981CC759C6" 116 | "MsmSig" = "8:_UNDEFINED" 117 | } 118 | "Entry" 119 | { 120 | "MsmKey" = "8:_UNDEFINED" 121 | "OwnerKey" = "8:_A9417C5BD1BA4CE686CA90BC4B791899" 122 | "MsmSig" = "8:_UNDEFINED" 123 | } 124 | "Entry" 125 | { 126 | "MsmKey" = "8:_UNDEFINED" 127 | "OwnerKey" = "8:_74D768EC1DC54905BB6743CC388C7FC9" 128 | "MsmSig" = "8:_UNDEFINED" 129 | } 130 | } 131 | "Configurations" 132 | { 133 | "Debug" 134 | { 135 | "DisplayName" = "8:Debug" 136 | "IsDebugOnly" = "11:TRUE" 137 | "IsReleaseOnly" = "11:FALSE" 138 | "OutputFilename" = "8:Debug\\PowecuGadgettSetup.msi" 139 | "PackageFilesAs" = "3:2" 140 | "PackageFileSize" = "3:-2147483648" 141 | "CabType" = "3:1" 142 | "Compression" = "3:2" 143 | "SignOutput" = "11:FALSE" 144 | "CertificateFile" = "8:" 145 | "PrivateKeyFile" = "8:" 146 | "TimeStampServer" = "8:" 147 | "InstallerBootstrapper" = "3:2" 148 | "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" 149 | { 150 | "Enabled" = "11:TRUE" 151 | "PromptEnabled" = "11:TRUE" 152 | "PrerequisitesLocation" = "2:1" 153 | "Url" = "8:" 154 | "ComponentsUrl" = "8:" 155 | } 156 | } 157 | "Release" 158 | { 159 | "DisplayName" = "8:Release" 160 | "IsDebugOnly" = "11:FALSE" 161 | "IsReleaseOnly" = "11:TRUE" 162 | "OutputFilename" = "8:Release\\PowecuGadgettSetup.msi" 163 | "PackageFilesAs" = "3:2" 164 | "PackageFileSize" = "3:-2147483648" 165 | "CabType" = "3:1" 166 | "Compression" = "3:2" 167 | "SignOutput" = "11:FALSE" 168 | "CertificateFile" = "8:" 169 | "PrivateKeyFile" = "8:" 170 | "TimeStampServer" = "8:" 171 | "InstallerBootstrapper" = "3:2" 172 | "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" 173 | { 174 | "Enabled" = "11:TRUE" 175 | "PromptEnabled" = "11:TRUE" 176 | "PrerequisitesLocation" = "2:1" 177 | "Url" = "8:" 178 | "ComponentsUrl" = "8:" 179 | "Items" 180 | { 181 | "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5" 182 | { 183 | "Name" = "8:Microsoft .NET Framework 4.5 (x86 and x64)" 184 | "ProductCode" = "8:.NETFramework,Version=v4.5" 185 | } 186 | } 187 | } 188 | } 189 | } 190 | "Deployable" 191 | { 192 | "CustomAction" 193 | { 194 | } 195 | "DefaultFeature" 196 | { 197 | "Name" = "8:DefaultFeature" 198 | "Title" = "8:" 199 | "Description" = "8:" 200 | } 201 | "ExternalPersistence" 202 | { 203 | "LaunchCondition" 204 | { 205 | "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_DE8C11212039414E941DFC19AED13784" 206 | { 207 | "Name" = "8:.NET Framework" 208 | "Message" = "8:[VSDNETMSG]" 209 | "FrameworkVersion" = "8:.NETFramework,Version=v4.5" 210 | "AllowLaterVersions" = "11:FALSE" 211 | "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=395269" 212 | } 213 | } 214 | } 215 | "File" 216 | { 217 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2AFEF59DF57647AC9E332D89B4282557" 218 | { 219 | "SourcePath" = "8:..\\PowercutGadget\\bin\\Release\\HtmlAgilityPack.xml" 220 | "TargetName" = "8:HtmlAgilityPack.xml" 221 | "Tag" = "8:" 222 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 223 | "Condition" = "8:" 224 | "Transitive" = "11:FALSE" 225 | "Vital" = "11:TRUE" 226 | "ReadOnly" = "11:FALSE" 227 | "Hidden" = "11:FALSE" 228 | "System" = "11:FALSE" 229 | "Permanent" = "11:FALSE" 230 | "SharedLegacy" = "11:FALSE" 231 | "PackageAs" = "3:1" 232 | "Register" = "3:1" 233 | "Exclude" = "11:FALSE" 234 | "IsDependency" = "11:FALSE" 235 | "IsolateTo" = "8:" 236 | } 237 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2ED837A1C8E94843B9D1650D27DB1849" 238 | { 239 | "AssemblyRegister" = "3:1" 240 | "AssemblyIsInGAC" = "11:FALSE" 241 | "AssemblyAsmDisplayName" = "8:PowercutGadget, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" 242 | "ScatterAssemblies" 243 | { 244 | "_2ED837A1C8E94843B9D1650D27DB1849" 245 | { 246 | "Name" = "8:PowercutGadget.exe" 247 | "Attributes" = "3:512" 248 | } 249 | } 250 | "SourcePath" = "8:..\\PowercutGadget\\bin\\Release\\PowercutGadget.exe" 251 | "TargetName" = "8:" 252 | "Tag" = "8:" 253 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 254 | "Condition" = "8:" 255 | "Transitive" = "11:FALSE" 256 | "Vital" = "11:TRUE" 257 | "ReadOnly" = "11:FALSE" 258 | "Hidden" = "11:FALSE" 259 | "System" = "11:FALSE" 260 | "Permanent" = "11:FALSE" 261 | "SharedLegacy" = "11:FALSE" 262 | "PackageAs" = "3:1" 263 | "Register" = "3:1" 264 | "Exclude" = "11:FALSE" 265 | "IsDependency" = "11:FALSE" 266 | "IsolateTo" = "8:" 267 | } 268 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_40CFEDEEF84B4E79B19106B4328562C5" 269 | { 270 | "SourcePath" = "8:..\\PowercutGadget\\bin\\Release\\Newtonsoft.Json.xml" 271 | "TargetName" = "8:Newtonsoft.Json.xml" 272 | "Tag" = "8:" 273 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 274 | "Condition" = "8:" 275 | "Transitive" = "11:FALSE" 276 | "Vital" = "11:TRUE" 277 | "ReadOnly" = "11:FALSE" 278 | "Hidden" = "11:FALSE" 279 | "System" = "11:FALSE" 280 | "Permanent" = "11:FALSE" 281 | "SharedLegacy" = "11:FALSE" 282 | "PackageAs" = "3:1" 283 | "Register" = "3:1" 284 | "Exclude" = "11:FALSE" 285 | "IsDependency" = "11:FALSE" 286 | "IsolateTo" = "8:" 287 | } 288 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_434F1362A7594B089F1E2C7C85F8BB6D" 289 | { 290 | "SourcePath" = "8:..\\PowercutGadget\\bin\\Release\\PowercutGadget.exe.config" 291 | "TargetName" = "8:PowercutGadget.exe.config" 292 | "Tag" = "8:" 293 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 294 | "Condition" = "8:" 295 | "Transitive" = "11:FALSE" 296 | "Vital" = "11:TRUE" 297 | "ReadOnly" = "11:FALSE" 298 | "Hidden" = "11:FALSE" 299 | "System" = "11:FALSE" 300 | "Permanent" = "11:FALSE" 301 | "SharedLegacy" = "11:FALSE" 302 | "PackageAs" = "3:1" 303 | "Register" = "3:1" 304 | "Exclude" = "11:FALSE" 305 | "IsDependency" = "11:FALSE" 306 | "IsolateTo" = "8:" 307 | } 308 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6D0B0979545540CAB246AD6647B82160" 309 | { 310 | "SourcePath" = "8:..\\PowercutGadget\\bin\\Release\\HtmlAgilityPack.pdb" 311 | "TargetName" = "8:HtmlAgilityPack.pdb" 312 | "Tag" = "8:" 313 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 314 | "Condition" = "8:" 315 | "Transitive" = "11:FALSE" 316 | "Vital" = "11:TRUE" 317 | "ReadOnly" = "11:FALSE" 318 | "Hidden" = "11:FALSE" 319 | "System" = "11:FALSE" 320 | "Permanent" = "11:FALSE" 321 | "SharedLegacy" = "11:FALSE" 322 | "PackageAs" = "3:1" 323 | "Register" = "3:1" 324 | "Exclude" = "11:FALSE" 325 | "IsDependency" = "11:FALSE" 326 | "IsolateTo" = "8:" 327 | } 328 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_74D768EC1DC54905BB6743CC388C7FC9" 329 | { 330 | "AssemblyRegister" = "3:1" 331 | "AssemblyIsInGAC" = "11:FALSE" 332 | "AssemblyAsmDisplayName" = "8:HtmlAgilityPack, Version=1.11.43.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL" 333 | "ScatterAssemblies" 334 | { 335 | "_74D768EC1DC54905BB6743CC388C7FC9" 336 | { 337 | "Name" = "8:HtmlAgilityPack.dll" 338 | "Attributes" = "3:512" 339 | } 340 | } 341 | "SourcePath" = "8:..\\PowercutGadget\\bin\\Release\\HtmlAgilityPack.dll" 342 | "TargetName" = "8:" 343 | "Tag" = "8:" 344 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 345 | "Condition" = "8:" 346 | "Transitive" = "11:FALSE" 347 | "Vital" = "11:TRUE" 348 | "ReadOnly" = "11:FALSE" 349 | "Hidden" = "11:FALSE" 350 | "System" = "11:FALSE" 351 | "Permanent" = "11:FALSE" 352 | "SharedLegacy" = "11:FALSE" 353 | "PackageAs" = "3:1" 354 | "Register" = "3:1" 355 | "Exclude" = "11:FALSE" 356 | "IsDependency" = "11:FALSE" 357 | "IsolateTo" = "8:" 358 | } 359 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8133F16A6F80B2007E835CFF9E4127EC" 360 | { 361 | "AssemblyRegister" = "3:1" 362 | "AssemblyIsInGAC" = "11:FALSE" 363 | "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" 364 | "ScatterAssemblies" 365 | { 366 | "_8133F16A6F80B2007E835CFF9E4127EC" 367 | { 368 | "Name" = "8:Newtonsoft.Json.DLL" 369 | "Attributes" = "3:512" 370 | } 371 | } 372 | "SourcePath" = "8:Newtonsoft.Json.DLL" 373 | "TargetName" = "8:" 374 | "Tag" = "8:" 375 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 376 | "Condition" = "8:" 377 | "Transitive" = "11:FALSE" 378 | "Vital" = "11:TRUE" 379 | "ReadOnly" = "11:FALSE" 380 | "Hidden" = "11:FALSE" 381 | "System" = "11:FALSE" 382 | "Permanent" = "11:FALSE" 383 | "SharedLegacy" = "11:FALSE" 384 | "PackageAs" = "3:1" 385 | "Register" = "3:1" 386 | "Exclude" = "11:FALSE" 387 | "IsDependency" = "11:TRUE" 388 | "IsolateTo" = "8:" 389 | } 390 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A9417C5BD1BA4CE686CA90BC4B791899" 391 | { 392 | "AssemblyRegister" = "3:1" 393 | "AssemblyIsInGAC" = "11:FALSE" 394 | "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" 395 | "ScatterAssemblies" 396 | { 397 | "_A9417C5BD1BA4CE686CA90BC4B791899" 398 | { 399 | "Name" = "8:Newtonsoft.Json.dll" 400 | "Attributes" = "3:512" 401 | } 402 | } 403 | "SourcePath" = "8:..\\PowercutGadget\\bin\\Release\\Newtonsoft.Json.dll" 404 | "TargetName" = "8:" 405 | "Tag" = "8:" 406 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 407 | "Condition" = "8:" 408 | "Transitive" = "11:FALSE" 409 | "Vital" = "11:TRUE" 410 | "ReadOnly" = "11:FALSE" 411 | "Hidden" = "11:FALSE" 412 | "System" = "11:FALSE" 413 | "Permanent" = "11:FALSE" 414 | "SharedLegacy" = "11:FALSE" 415 | "PackageAs" = "3:1" 416 | "Register" = "3:1" 417 | "Exclude" = "11:FALSE" 418 | "IsDependency" = "11:FALSE" 419 | "IsolateTo" = "8:" 420 | } 421 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BAF955CAD7AC60D107D53342EED67546" 422 | { 423 | "AssemblyRegister" = "3:1" 424 | "AssemblyIsInGAC" = "11:TRUE" 425 | "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 426 | "ScatterAssemblies" 427 | { 428 | "_BAF955CAD7AC60D107D53342EED67546" 429 | { 430 | "Name" = "8:System.Net.Http.dll" 431 | "Attributes" = "3:512" 432 | } 433 | } 434 | "SourcePath" = "8:System.Net.Http.dll" 435 | "TargetName" = "8:" 436 | "Tag" = "8:" 437 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 438 | "Condition" = "8:" 439 | "Transitive" = "11:FALSE" 440 | "Vital" = "11:TRUE" 441 | "ReadOnly" = "11:FALSE" 442 | "Hidden" = "11:FALSE" 443 | "System" = "11:FALSE" 444 | "Permanent" = "11:FALSE" 445 | "SharedLegacy" = "11:FALSE" 446 | "PackageAs" = "3:1" 447 | "Register" = "3:1" 448 | "Exclude" = "11:FALSE" 449 | "IsDependency" = "11:TRUE" 450 | "IsolateTo" = "8:" 451 | } 452 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CE3663E2DD721E1E616911981CC759C6" 453 | { 454 | "AssemblyRegister" = "3:1" 455 | "AssemblyIsInGAC" = "11:FALSE" 456 | "AssemblyAsmDisplayName" = "8:HtmlAgilityPack, Version=1.11.43.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL" 457 | "ScatterAssemblies" 458 | { 459 | "_CE3663E2DD721E1E616911981CC759C6" 460 | { 461 | "Name" = "8:HtmlAgilityPack.DLL" 462 | "Attributes" = "3:512" 463 | } 464 | } 465 | "SourcePath" = "8:HtmlAgilityPack.DLL" 466 | "TargetName" = "8:" 467 | "Tag" = "8:" 468 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 469 | "Condition" = "8:" 470 | "Transitive" = "11:FALSE" 471 | "Vital" = "11:TRUE" 472 | "ReadOnly" = "11:FALSE" 473 | "Hidden" = "11:FALSE" 474 | "System" = "11:FALSE" 475 | "Permanent" = "11:FALSE" 476 | "SharedLegacy" = "11:FALSE" 477 | "PackageAs" = "3:1" 478 | "Register" = "3:1" 479 | "Exclude" = "11:FALSE" 480 | "IsDependency" = "11:TRUE" 481 | "IsolateTo" = "8:" 482 | } 483 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DCE045C3DFF24DBDAF1C9E9FE95EF6BB" 484 | { 485 | "SourcePath" = "8:..\\PowercutGadget\\ceb.ico" 486 | "TargetName" = "8:ceb.ico" 487 | "Tag" = "8:" 488 | "Folder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 489 | "Condition" = "8:" 490 | "Transitive" = "11:FALSE" 491 | "Vital" = "11:TRUE" 492 | "ReadOnly" = "11:FALSE" 493 | "Hidden" = "11:FALSE" 494 | "System" = "11:FALSE" 495 | "Permanent" = "11:FALSE" 496 | "SharedLegacy" = "11:FALSE" 497 | "PackageAs" = "3:1" 498 | "Register" = "3:1" 499 | "Exclude" = "11:FALSE" 500 | "IsDependency" = "11:FALSE" 501 | "IsolateTo" = "8:" 502 | } 503 | } 504 | "FileType" 505 | { 506 | } 507 | "Folder" 508 | { 509 | "{3C67513D-01DD-4637-8A68-80971EB9504F}:_081DC46CAF2440A9B36E63F234C8C20F" 510 | { 511 | "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" 512 | "Name" = "8:#1925" 513 | "AlwaysCreate" = "11:FALSE" 514 | "Condition" = "8:" 515 | "Transitive" = "11:FALSE" 516 | "Property" = "8:TARGETDIR" 517 | "Folders" 518 | { 519 | } 520 | } 521 | "{1525181F-901A-416C-8A58-119130FE478E}:_9DDB30FF532140008B0875AC4428B66B" 522 | { 523 | "Name" = "8:#1919" 524 | "AlwaysCreate" = "11:FALSE" 525 | "Condition" = "8:" 526 | "Transitive" = "11:FALSE" 527 | "Property" = "8:ProgramMenuFolder" 528 | "Folders" 529 | { 530 | "{9EF0B969-E518-4E46-987F-47570745A589}:_D998CF97DB9344D4B2D8A6DD8B833F30" 531 | { 532 | "Name" = "8:Powercut Schedule Gadget" 533 | "AlwaysCreate" = "11:FALSE" 534 | "Condition" = "8:" 535 | "Transitive" = "11:FALSE" 536 | "Property" = "8:_FC25975B077542A69EE3D3EFC39318F8" 537 | "Folders" 538 | { 539 | } 540 | } 541 | } 542 | } 543 | "{1525181F-901A-416C-8A58-119130FE478E}:_BFFE962913E0469B831DC441C06424FE" 544 | { 545 | "Name" = "8:#1916" 546 | "AlwaysCreate" = "11:FALSE" 547 | "Condition" = "8:" 548 | "Transitive" = "11:FALSE" 549 | "Property" = "8:DesktopFolder" 550 | "Folders" 551 | { 552 | } 553 | } 554 | } 555 | "LaunchCondition" 556 | { 557 | } 558 | "Locator" 559 | { 560 | } 561 | "MsiBootstrapper" 562 | { 563 | "LangId" = "3:1033" 564 | "RequiresElevation" = "11:FALSE" 565 | } 566 | "Product" 567 | { 568 | "Name" = "8:Microsoft Visual Studio" 569 | "ProductName" = "8:PowecutGadget Setup" 570 | "ProductCode" = "8:{90DBE8EA-FFB4-4BCC-9C4A-4D508AB0B745}" 571 | "PackageCode" = "8:{929700FC-DBC2-403D-A7CC-611025D94E88}" 572 | "UpgradeCode" = "8:{89282048-7604-4AD0-B482-D6FF3060D334}" 573 | "AspNetVersion" = "8:4.0.30319.0" 574 | "RestartWWWService" = "11:FALSE" 575 | "RemovePreviousVersions" = "11:TRUE" 576 | "DetectNewerInstalledVersion" = "11:TRUE" 577 | "InstallAllUsers" = "11:TRUE" 578 | "ProductVersion" = "8:1.0.0" 579 | "Manufacturer" = "8:tirancm" 580 | "ARPHELPTELEPHONE" = "8:" 581 | "ARPHELPLINK" = "8:" 582 | "Title" = "8:PowecutGadget Setup" 583 | "Subject" = "8:" 584 | "ARPCONTACT" = "8:tirancm" 585 | "Keywords" = "8:" 586 | "ARPCOMMENTS" = "8:PowecutGadget Setup" 587 | "ARPURLINFOABOUT" = "8:" 588 | "ARPPRODUCTICON" = "8:" 589 | "ARPIconIndex" = "3:0" 590 | "SearchPath" = "8:" 591 | "UseSystemSearchPath" = "11:TRUE" 592 | "TargetPlatform" = "3:0" 593 | "PreBuildEvent" = "8:" 594 | "PostBuildEvent" = "8:" 595 | "RunPostBuildEvent" = "3:0" 596 | } 597 | "Registry" 598 | { 599 | "HKLM" 600 | { 601 | "Keys" 602 | { 603 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_EA040D7B6E084D81A257C967749FE4F2" 604 | { 605 | "Name" = "8:Software" 606 | "Condition" = "8:" 607 | "AlwaysCreate" = "11:FALSE" 608 | "DeleteAtUninstall" = "11:FALSE" 609 | "Transitive" = "11:FALSE" 610 | "Keys" 611 | { 612 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_26F596913B2E45E1B193E7108FFC511A" 613 | { 614 | "Name" = "8:[Manufacturer]" 615 | "Condition" = "8:" 616 | "AlwaysCreate" = "11:FALSE" 617 | "DeleteAtUninstall" = "11:FALSE" 618 | "Transitive" = "11:FALSE" 619 | "Keys" 620 | { 621 | } 622 | "Values" 623 | { 624 | } 625 | } 626 | } 627 | "Values" 628 | { 629 | } 630 | } 631 | } 632 | } 633 | "HKCU" 634 | { 635 | "Keys" 636 | { 637 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FE2000C2CF8A443DBBA5DB4E2D266C7C" 638 | { 639 | "Name" = "8:Software" 640 | "Condition" = "8:" 641 | "AlwaysCreate" = "11:FALSE" 642 | "DeleteAtUninstall" = "11:FALSE" 643 | "Transitive" = "11:FALSE" 644 | "Keys" 645 | { 646 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4579546C7A054C73B0314828F4C80042" 647 | { 648 | "Name" = "8:[Manufacturer]" 649 | "Condition" = "8:" 650 | "AlwaysCreate" = "11:FALSE" 651 | "DeleteAtUninstall" = "11:FALSE" 652 | "Transitive" = "11:FALSE" 653 | "Keys" 654 | { 655 | } 656 | "Values" 657 | { 658 | } 659 | } 660 | } 661 | "Values" 662 | { 663 | } 664 | } 665 | } 666 | } 667 | "HKCR" 668 | { 669 | "Keys" 670 | { 671 | } 672 | } 673 | "HKU" 674 | { 675 | "Keys" 676 | { 677 | } 678 | } 679 | "HKPU" 680 | { 681 | "Keys" 682 | { 683 | } 684 | } 685 | } 686 | "Sequences" 687 | { 688 | } 689 | "Shortcut" 690 | { 691 | "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_65B9674157A247E6B6F651DAF4575044" 692 | { 693 | "Name" = "8:PowercutGadget.exe" 694 | "Arguments" = "8:" 695 | "Description" = "8:" 696 | "ShowCmd" = "3:1" 697 | "IconIndex" = "3:0" 698 | "Transitive" = "11:FALSE" 699 | "Target" = "8:_2ED837A1C8E94843B9D1650D27DB1849" 700 | "Folder" = "8:_D998CF97DB9344D4B2D8A6DD8B833F30" 701 | "WorkingFolder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 702 | "Icon" = "8:_DCE045C3DFF24DBDAF1C9E9FE95EF6BB" 703 | "Feature" = "8:" 704 | } 705 | "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_9F9CDFCEA59546C6815B7D066E5C8931" 706 | { 707 | "Name" = "8:PowercutGadget.exe" 708 | "Arguments" = "8:" 709 | "Description" = "8:" 710 | "ShowCmd" = "3:1" 711 | "IconIndex" = "3:0" 712 | "Transitive" = "11:FALSE" 713 | "Target" = "8:_2ED837A1C8E94843B9D1650D27DB1849" 714 | "Folder" = "8:_BFFE962913E0469B831DC441C06424FE" 715 | "WorkingFolder" = "8:_081DC46CAF2440A9B36E63F234C8C20F" 716 | "Icon" = "8:_DCE045C3DFF24DBDAF1C9E9FE95EF6BB" 717 | "Feature" = "8:" 718 | } 719 | } 720 | "UserInterface" 721 | { 722 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_02A378249BE64E09A99EADF260D1930E" 723 | { 724 | "Name" = "8:#1902" 725 | "Sequence" = "3:1" 726 | "Attributes" = "3:3" 727 | "Dialogs" 728 | { 729 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E1D60FF4BAC049BA9143E6A015271CD6" 730 | { 731 | "Sequence" = "3:100" 732 | "DisplayName" = "8:Finished" 733 | "UseDynamicProperties" = "11:TRUE" 734 | "IsDependency" = "11:FALSE" 735 | "SourcePath" = "8:\\VsdFinishedDlg.wid" 736 | "Properties" 737 | { 738 | "BannerBitmap" 739 | { 740 | "Name" = "8:BannerBitmap" 741 | "DisplayName" = "8:#1001" 742 | "Description" = "8:#1101" 743 | "Type" = "3:8" 744 | "ContextData" = "8:Bitmap" 745 | "Attributes" = "3:4" 746 | "Setting" = "3:1" 747 | "UsePlugInResources" = "11:TRUE" 748 | } 749 | "UpdateText" 750 | { 751 | "Name" = "8:UpdateText" 752 | "DisplayName" = "8:#1058" 753 | "Description" = "8:#1158" 754 | "Type" = "3:15" 755 | "ContextData" = "8:" 756 | "Attributes" = "3:0" 757 | "Setting" = "3:1" 758 | "Value" = "8:#1258" 759 | "DefaultValue" = "8:#1258" 760 | "UsePlugInResources" = "11:TRUE" 761 | } 762 | } 763 | } 764 | } 765 | } 766 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_0B3605B9EAA944819D87EB117C4F7FCB" 767 | { 768 | "Name" = "8:#1900" 769 | "Sequence" = "3:1" 770 | "Attributes" = "3:1" 771 | "Dialogs" 772 | { 773 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2D2CF4509C7B400ABEED0CD4E73F37C6" 774 | { 775 | "Sequence" = "3:300" 776 | "DisplayName" = "8:Confirm Installation" 777 | "UseDynamicProperties" = "11:TRUE" 778 | "IsDependency" = "11:FALSE" 779 | "SourcePath" = "8:\\VsdConfirmDlg.wid" 780 | "Properties" 781 | { 782 | "BannerBitmap" 783 | { 784 | "Name" = "8:BannerBitmap" 785 | "DisplayName" = "8:#1001" 786 | "Description" = "8:#1101" 787 | "Type" = "3:8" 788 | "ContextData" = "8:Bitmap" 789 | "Attributes" = "3:4" 790 | "Setting" = "3:1" 791 | "UsePlugInResources" = "11:TRUE" 792 | } 793 | } 794 | } 795 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_555D5E2372F945BBB42527D88A866D65" 796 | { 797 | "Sequence" = "3:200" 798 | "DisplayName" = "8:Installation Folder" 799 | "UseDynamicProperties" = "11:TRUE" 800 | "IsDependency" = "11:FALSE" 801 | "SourcePath" = "8:\\VsdFolderDlg.wid" 802 | "Properties" 803 | { 804 | "BannerBitmap" 805 | { 806 | "Name" = "8:BannerBitmap" 807 | "DisplayName" = "8:#1001" 808 | "Description" = "8:#1101" 809 | "Type" = "3:8" 810 | "ContextData" = "8:Bitmap" 811 | "Attributes" = "3:4" 812 | "Setting" = "3:1" 813 | "UsePlugInResources" = "11:TRUE" 814 | } 815 | "InstallAllUsersVisible" 816 | { 817 | "Name" = "8:InstallAllUsersVisible" 818 | "DisplayName" = "8:#1059" 819 | "Description" = "8:#1159" 820 | "Type" = "3:5" 821 | "ContextData" = "8:1;True=1;False=0" 822 | "Attributes" = "3:0" 823 | "Setting" = "3:0" 824 | "Value" = "3:1" 825 | "DefaultValue" = "3:1" 826 | "UsePlugInResources" = "11:TRUE" 827 | } 828 | } 829 | } 830 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_910A2F6A603F415293E8A7CCE257A539" 831 | { 832 | "Sequence" = "3:100" 833 | "DisplayName" = "8:Welcome" 834 | "UseDynamicProperties" = "11:TRUE" 835 | "IsDependency" = "11:FALSE" 836 | "SourcePath" = "8:\\VsdWelcomeDlg.wid" 837 | "Properties" 838 | { 839 | "BannerBitmap" 840 | { 841 | "Name" = "8:BannerBitmap" 842 | "DisplayName" = "8:#1001" 843 | "Description" = "8:#1101" 844 | "Type" = "3:8" 845 | "ContextData" = "8:Bitmap" 846 | "Attributes" = "3:4" 847 | "Setting" = "3:1" 848 | "UsePlugInResources" = "11:TRUE" 849 | } 850 | "CopyrightWarning" 851 | { 852 | "Name" = "8:CopyrightWarning" 853 | "DisplayName" = "8:#1002" 854 | "Description" = "8:#1102" 855 | "Type" = "3:3" 856 | "ContextData" = "8:" 857 | "Attributes" = "3:0" 858 | "Setting" = "3:1" 859 | "Value" = "8:#1202" 860 | "DefaultValue" = "8:#1202" 861 | "UsePlugInResources" = "11:TRUE" 862 | } 863 | "Welcome" 864 | { 865 | "Name" = "8:Welcome" 866 | "DisplayName" = "8:#1003" 867 | "Description" = "8:#1103" 868 | "Type" = "3:3" 869 | "ContextData" = "8:" 870 | "Attributes" = "3:0" 871 | "Setting" = "3:1" 872 | "Value" = "8:#1203" 873 | "DefaultValue" = "8:#1203" 874 | "UsePlugInResources" = "11:TRUE" 875 | } 876 | } 877 | } 878 | } 879 | } 880 | "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_195B1AE49FCC472BA153672CADD140BD" 881 | { 882 | "UseDynamicProperties" = "11:FALSE" 883 | "IsDependency" = "11:FALSE" 884 | "SourcePath" = "8:\\VsdUserInterface.wim" 885 | } 886 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_19EC52AD65E4484287B9FD9157C6CABE" 887 | { 888 | "Name" = "8:#1902" 889 | "Sequence" = "3:2" 890 | "Attributes" = "3:3" 891 | "Dialogs" 892 | { 893 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_AA22B2C12EF442E3AB4E02E4B544AD51" 894 | { 895 | "Sequence" = "3:100" 896 | "DisplayName" = "8:Finished" 897 | "UseDynamicProperties" = "11:TRUE" 898 | "IsDependency" = "11:FALSE" 899 | "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" 900 | "Properties" 901 | { 902 | "BannerBitmap" 903 | { 904 | "Name" = "8:BannerBitmap" 905 | "DisplayName" = "8:#1001" 906 | "Description" = "8:#1101" 907 | "Type" = "3:8" 908 | "ContextData" = "8:Bitmap" 909 | "Attributes" = "3:4" 910 | "Setting" = "3:1" 911 | "UsePlugInResources" = "11:TRUE" 912 | } 913 | } 914 | } 915 | } 916 | } 917 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_29A7B4B178C646C6A06B0507155DB0BD" 918 | { 919 | "Name" = "8:#1901" 920 | "Sequence" = "3:2" 921 | "Attributes" = "3:2" 922 | "Dialogs" 923 | { 924 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_AE11F511C02F409690BE940E72986FAD" 925 | { 926 | "Sequence" = "3:100" 927 | "DisplayName" = "8:Progress" 928 | "UseDynamicProperties" = "11:TRUE" 929 | "IsDependency" = "11:FALSE" 930 | "SourcePath" = "8:\\VsdAdminProgressDlg.wid" 931 | "Properties" 932 | { 933 | "BannerBitmap" 934 | { 935 | "Name" = "8:BannerBitmap" 936 | "DisplayName" = "8:#1001" 937 | "Description" = "8:#1101" 938 | "Type" = "3:8" 939 | "ContextData" = "8:Bitmap" 940 | "Attributes" = "3:4" 941 | "Setting" = "3:1" 942 | "UsePlugInResources" = "11:TRUE" 943 | } 944 | "ShowProgress" 945 | { 946 | "Name" = "8:ShowProgress" 947 | "DisplayName" = "8:#1009" 948 | "Description" = "8:#1109" 949 | "Type" = "3:5" 950 | "ContextData" = "8:1;True=1;False=0" 951 | "Attributes" = "3:0" 952 | "Setting" = "3:0" 953 | "Value" = "3:1" 954 | "DefaultValue" = "3:1" 955 | "UsePlugInResources" = "11:TRUE" 956 | } 957 | } 958 | } 959 | } 960 | } 961 | "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_90580666C4874ED3B9A9C59B38E22221" 962 | { 963 | "UseDynamicProperties" = "11:FALSE" 964 | "IsDependency" = "11:FALSE" 965 | "SourcePath" = "8:\\VsdBasicDialogs.wim" 966 | } 967 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A7453A11538D48F195A1A6E62A7F10C9" 968 | { 969 | "Name" = "8:#1900" 970 | "Sequence" = "3:2" 971 | "Attributes" = "3:1" 972 | "Dialogs" 973 | { 974 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9DABE14336284F9BA58F27272527ED7C" 975 | { 976 | "Sequence" = "3:300" 977 | "DisplayName" = "8:Confirm Installation" 978 | "UseDynamicProperties" = "11:TRUE" 979 | "IsDependency" = "11:FALSE" 980 | "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" 981 | "Properties" 982 | { 983 | "BannerBitmap" 984 | { 985 | "Name" = "8:BannerBitmap" 986 | "DisplayName" = "8:#1001" 987 | "Description" = "8:#1101" 988 | "Type" = "3:8" 989 | "ContextData" = "8:Bitmap" 990 | "Attributes" = "3:4" 991 | "Setting" = "3:1" 992 | "UsePlugInResources" = "11:TRUE" 993 | } 994 | } 995 | } 996 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B298037EAA1A46FCB606E0BA0D87C651" 997 | { 998 | "Sequence" = "3:100" 999 | "DisplayName" = "8:Welcome" 1000 | "UseDynamicProperties" = "11:TRUE" 1001 | "IsDependency" = "11:FALSE" 1002 | "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" 1003 | "Properties" 1004 | { 1005 | "BannerBitmap" 1006 | { 1007 | "Name" = "8:BannerBitmap" 1008 | "DisplayName" = "8:#1001" 1009 | "Description" = "8:#1101" 1010 | "Type" = "3:8" 1011 | "ContextData" = "8:Bitmap" 1012 | "Attributes" = "3:4" 1013 | "Setting" = "3:1" 1014 | "UsePlugInResources" = "11:TRUE" 1015 | } 1016 | "CopyrightWarning" 1017 | { 1018 | "Name" = "8:CopyrightWarning" 1019 | "DisplayName" = "8:#1002" 1020 | "Description" = "8:#1102" 1021 | "Type" = "3:3" 1022 | "ContextData" = "8:" 1023 | "Attributes" = "3:0" 1024 | "Setting" = "3:1" 1025 | "Value" = "8:#1202" 1026 | "DefaultValue" = "8:#1202" 1027 | "UsePlugInResources" = "11:TRUE" 1028 | } 1029 | "Welcome" 1030 | { 1031 | "Name" = "8:Welcome" 1032 | "DisplayName" = "8:#1003" 1033 | "Description" = "8:#1103" 1034 | "Type" = "3:3" 1035 | "ContextData" = "8:" 1036 | "Attributes" = "3:0" 1037 | "Setting" = "3:1" 1038 | "Value" = "8:#1203" 1039 | "DefaultValue" = "8:#1203" 1040 | "UsePlugInResources" = "11:TRUE" 1041 | } 1042 | } 1043 | } 1044 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DC52B0C72873457597C855562F7AABC6" 1045 | { 1046 | "Sequence" = "3:200" 1047 | "DisplayName" = "8:Installation Folder" 1048 | "UseDynamicProperties" = "11:TRUE" 1049 | "IsDependency" = "11:FALSE" 1050 | "SourcePath" = "8:\\VsdAdminFolderDlg.wid" 1051 | "Properties" 1052 | { 1053 | "BannerBitmap" 1054 | { 1055 | "Name" = "8:BannerBitmap" 1056 | "DisplayName" = "8:#1001" 1057 | "Description" = "8:#1101" 1058 | "Type" = "3:8" 1059 | "ContextData" = "8:Bitmap" 1060 | "Attributes" = "3:4" 1061 | "Setting" = "3:1" 1062 | "UsePlugInResources" = "11:TRUE" 1063 | } 1064 | } 1065 | } 1066 | } 1067 | } 1068 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F1F9A266A98945A4B58CF1DDEFD2C8B5" 1069 | { 1070 | "Name" = "8:#1901" 1071 | "Sequence" = "3:1" 1072 | "Attributes" = "3:2" 1073 | "Dialogs" 1074 | { 1075 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_030B6DADEED44D08A065888F59D0A3AF" 1076 | { 1077 | "Sequence" = "3:100" 1078 | "DisplayName" = "8:Progress" 1079 | "UseDynamicProperties" = "11:TRUE" 1080 | "IsDependency" = "11:FALSE" 1081 | "SourcePath" = "8:\\VsdProgressDlg.wid" 1082 | "Properties" 1083 | { 1084 | "BannerBitmap" 1085 | { 1086 | "Name" = "8:BannerBitmap" 1087 | "DisplayName" = "8:#1001" 1088 | "Description" = "8:#1101" 1089 | "Type" = "3:8" 1090 | "ContextData" = "8:Bitmap" 1091 | "Attributes" = "3:4" 1092 | "Setting" = "3:1" 1093 | "UsePlugInResources" = "11:TRUE" 1094 | } 1095 | "ShowProgress" 1096 | { 1097 | "Name" = "8:ShowProgress" 1098 | "DisplayName" = "8:#1009" 1099 | "Description" = "8:#1109" 1100 | "Type" = "3:5" 1101 | "ContextData" = "8:1;True=1;False=0" 1102 | "Attributes" = "3:0" 1103 | "Setting" = "3:0" 1104 | "Value" = "3:1" 1105 | "DefaultValue" = "3:1" 1106 | "UsePlugInResources" = "11:TRUE" 1107 | } 1108 | } 1109 | } 1110 | } 1111 | } 1112 | } 1113 | "MergeModule" 1114 | { 1115 | } 1116 | "ProjectOutput" 1117 | { 1118 | } 1119 | } 1120 | } 1121 | --------------------------------------------------------------------------------