From: <nic...@us...> - 2015-02-01 16:37:25
|
Revision: 4938 http://sourceforge.net/p/mp-plugins/code/4938 Author: nicsergio Date: 2015-02-01 16:37:15 +0000 (Sun, 01 Feb 2015) Log Message: ----------- Modified Paths: -------------- trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/MpeProject/Files/ShortCuter.dll trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/MpeProject/ShortCuter.xmp2 trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Config.png trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/KeyAssign.png trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.ChangeLog.txt trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.Update.xml trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.mpe1 trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.Designer.cs trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.cs trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.resx trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Resources/XmlFiles/DefaultConfig.xml trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs Modified: trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/MpeProject/Files/ShortCuter.dll =================================================================== (Binary files differ) Modified: trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/MpeProject/ShortCuter.xmp2 =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/MpeProject/ShortCuter.xmp2 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/MpeProject/ShortCuter.xmp2 2015-02-01 16:37:15 UTC (rev 4938) @@ -2263,7 +2263,7 @@ <Version> <Major>2</Major> <Minor>1</Minor> - <Build>2</Build> + <Build>3</Build> <Revision>0</Revision> </Version> <ExtensionDescription>ShortCut'er let you create keyboard shortcuts to any MP screen, like TV, Videos, Music, etc.. @@ -2273,8 +2273,8 @@ <CTRL> + <ALT> + <SHIFT> + <KEY> The plugin also integrates the function 'Skin Navigator', which allows you to configure a dialog box with the most used links.</ExtensionDescription> - <VersionDescription> - stop RawInput message only if event is handled - (needed for compatibility with generic HID) + <VersionDescription> - correct forcing Caps-Lock & Num-Lock at start-up + - management restore forcing when MP closed </VersionDescription> <DevelopmentStatus>Stable</DevelopmentStatus> <OnlineLocation>https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.mpe1</OnlineLocation> @@ -2669,21 +2669,21 @@ <Param1 /> <UpdateOption>OverwriteIfOlder</UpdateOption> <LocalFileName>ShortCuterInstall.png</LocalFileName> - <ZipFileName>Installer{CopyFile}\{abf8d654-3759-40db-986d-b13625e3a6f5}-ShortCuterInstall.png</ZipFileName> + <ZipFileName>Installer{CopyFile}\{72316e06-3525-43f4-8c74-89ee9db1542f}-ShortCuterInstall.png</ZipFileName> <DestinationFilename /> </FileItem> <FileItem InstallType="CopyFile" SystemFile="true" Modified="true"> <Param1 /> <UpdateOption>OverwriteIfOlder</UpdateOption> <LocalFileName>ShortCuterProgress.png</LocalFileName> - <ZipFileName>Installer{CopyFile}\{f9e26b83-4b31-4b0c-9e8f-34082ae5d49c}-ShortCuterProgress.png</ZipFileName> + <ZipFileName>Installer{CopyFile}\{dc29044e-b606-4dfa-b349-4417f5dcc560}-ShortCuterProgress.png</ZipFileName> <DestinationFilename /> </FileItem> <FileItem InstallType="CopyFile" SystemFile="true" Modified="true"> <Param1 /> <UpdateOption>OverwriteIfOlder</UpdateOption> <LocalFileName>ShortCuter.png</LocalFileName> - <ZipFileName>Installer{CopyFile}\{c684826a-f0b2-418d-be42-c0b25ef457ea}-ShortCuter.png</ZipFileName> + <ZipFileName>Installer{CopyFile}\{91dbdb57-c3c0-4c8c-9336-50c95dfff0d1}-ShortCuter.png</ZipFileName> <DestinationFilename /> </FileItem> </Items> Modified: trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Config.png =================================================================== (Binary files differ) Modified: trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/KeyAssign.png =================================================================== (Binary files differ) Modified: trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.ChangeLog.txt =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.ChangeLog.txt 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.ChangeLog.txt 2015-02-01 16:37:15 UTC (rev 4938) @@ -1,3 +1,9 @@ +- V2.1.3 (02/01/2015) + + > correct forcing Caps-Lock & Num-Lock at start-up + > management restore forcing when MP closed + + - V2.1.2 (02/01/2015) > stop RawInput message only if event is handled Modified: trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.Update.xml =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.Update.xml 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.Update.xml 2015-02-01 16:37:15 UTC (rev 4938) @@ -1313,5 +1313,167 @@ </ProjectSettings> <IsSkin>false</IsSkin> </PackageClass> + <PackageClass> + <Version>2.0</Version> + <Groups> + <Items> + <GroupItem Name="Binaries"> + <DisplayName>Binaries</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Binaries</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="Configuration"> + <DisplayName>Configuration</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Configuration</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="DefaultSkin"> + <DisplayName>DefaultSkin</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>DefaultSkin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="DefaultWideSkin"> + <DisplayName>DefaultWideSkin</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>DefaultWideSkin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="TitanSkin"> + <DisplayName>TitanSkin</DisplayName> + <DefaulChecked>false</DefaulChecked> + <Description>TitanSkin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="StreamedMPSkin"> + <DisplayName>StreamedMPSkin</DisplayName> + <DefaulChecked>false</DefaulChecked> + <Description>StreamedMPSkin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="BlackGlassNovaHDSkin"> + <DisplayName>BlackGlassNovaHDSkin</DisplayName> + <DefaulChecked>false</DefaulChecked> + <Description>BlackGlassNovaHDSkin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="XtremeSkin"> + <DisplayName>XtremeSkin</DisplayName> + <DefaulChecked>false</DefaulChecked> + <Description>XtremeSkin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + </Items> + </Groups> + <Sections> + <Items /> + </Sections> + <Dependencies> + <Items> + <DependencyItem> + <Type>MediaPortal</Type> + <Id /> + <MinVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MinVersion> + <MaxVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MaxVersion> + <WarnOnly>false</WarnOnly> + <Message>requires MediaPortal version 1.1.6.27644 to 1.1.6.27644.</Message> + <Name>MediaPortal</Name> + </DependencyItem> + </Items> + </Dependencies> + <PluginDependencies> + <Items /> + </PluginDependencies> + <GeneralInfo> + <Name>ShortCut'er</Name> + <Id>8f7a9dd8-c238-4d3d-b50d-20b7ca8d296e</Id> + <Author>nicsergio</Author> + <HomePage>http://www.team-mediaportal.com/extensions/input-output/shortcuter</HomePage> + <ForumPage>http://forum.team-mediaportal.com/threads/shortcuter-plugin-v2.121721/</ForumPage> + <UpdateUrl>https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.Update.xml</UpdateUrl> + <Version> + <Major>2</Major> + <Minor>1</Minor> + <Build>3</Build> + <Revision>0</Revision> + </Version> + <ExtensionDescription>ShortCut'er let you create keyboard shortcuts to any MP screen, like TV, Videos, Music, etc.. + +For each shortcut you can define a keystroke combination such as: + +<CTRL> + <ALT> + <SHIFT> + <KEY> + +The plugin also integrates the function 'Skin Navigator', which allows you to configure a dialog box with the most used links.</ExtensionDescription> + <VersionDescription> - correct forcing Caps-Lock & Num-Lock at start-up + - management restore forcing when MP closed +</VersionDescription> + <DevelopmentStatus>Stable</DevelopmentStatus> + <OnlineLocation>https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.mpe1</OnlineLocation> + <ReleaseDate>2015-02-01T23:10:13</ReleaseDate> + <Tags>shortcut,keys,keyboard,imon,remote,skin,navigator</Tags> + <Location>..\ShortCuter.mpe1</Location> + <Params> + <Items> + <SectionParam Name="Online Icon"> + <Value>https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/MpeProject/ShortCuter.png</Value> + <ValueType>String</ValueType> + <Description>The icon file of the package stored online (jpg,png,bmp)</Description> + </SectionParam> + <SectionParam Name="Configuration file"> + <Value>%Plugins%\windows\ShortCuter.dll</Value> + <ValueType>Template</ValueType> + <Description>The file used to configure the extension. + If it has .exe extension the will be executed. + If it has .dll extension it's started like MP plugin configuration.</Description> + </SectionParam> + <SectionParam Name="Online Screenshots"> + <Value>https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Config.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/KeyAssign.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/SkinNavConfig.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Skin/BlackGlassNovaHD-CustomList.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Skin/Titan-CustomList.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Skin/Titan-CustomPanel.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Skin/Xtreme-CustomList.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Skin/Xtreme-CustomPanel.png;https://svn.code.sf.net/p/mp-plugins/code/trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/Screenshots/Skin/DefaulWide-DefaultDialog.png</Value> + <ValueType>String</ValueType> + <Description>Online stored screenshot urls separated by ; </Description> + </SectionParam> + <SectionParam Name="Force to uninstall on update"> + <Value>YES</Value> + <ValueType>Bool</ValueType> + <Description>Show dialog and force to uninstall previous version when updating an extension. Should only be disabled if you are using an NSIS/MSI installer.</Description> + </SectionParam> + </Items> + </Params> + </GeneralInfo> + <UniqueFileList> + <Items /> + </UniqueFileList> + <ProjectSettings> + <FolderGroups /> + </ProjectSettings> + <IsSkin>false</IsSkin> + </PackageClass> </Items> </ExtensionCollection> \ No newline at end of file Modified: trunk/plugins/ShortCuter&SkinEditor/Release/ShortCuter/ShortCuter.mpe1 =================================================================== (Binary files differ) Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.Designer.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.Designer.cs 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.Designer.cs 2015-02-01 16:37:15 UTC (rev 4938) @@ -50,6 +50,7 @@ this.propLeftPictureBox = new System.Windows.Forms.PictureBox(); this.saveButton = new System.Windows.Forms.Button(); this.overridesGroupBox = new System.Windows.Forms.GroupBox(); + this.restoreOvrCheckBox = new System.Windows.Forms.CheckBox(); this.numLockGroupBox = new System.Windows.Forms.GroupBox(); this.numLockComboBox = new System.Windows.Forms.ComboBox(); this.capsLockGroupBox = new System.Windows.Forms.GroupBox(); @@ -190,7 +191,7 @@ // updateButton // this.updateButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.updateButton.Location = new System.Drawing.Point(67, 84); + this.updateButton.Location = new System.Drawing.Point(67, 69); this.updateButton.Name = "updateButton"; this.updateButton.Size = new System.Drawing.Size(135, 38); this.updateButton.TabIndex = 11; @@ -291,16 +292,28 @@ // // overridesGroupBox // + this.overridesGroupBox.Controls.Add(this.restoreOvrCheckBox); this.overridesGroupBox.Controls.Add(this.numLockGroupBox); this.overridesGroupBox.Controls.Add(this.capsLockGroupBox); this.overridesGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.overridesGroupBox.Location = new System.Drawing.Point(50, 133); + this.overridesGroupBox.Location = new System.Drawing.Point(50, 118); this.overridesGroupBox.Name = "overridesGroupBox"; - this.overridesGroupBox.Size = new System.Drawing.Size(165, 111); + this.overridesGroupBox.Size = new System.Drawing.Size(165, 135); this.overridesGroupBox.TabIndex = 12; this.overridesGroupBox.TabStop = false; this.overridesGroupBox.Text = "Overrides at Start-Up"; // + // restoreOvrCheckBox + // + this.restoreOvrCheckBox.AutoSize = true; + this.restoreOvrCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); + this.restoreOvrCheckBox.Location = new System.Drawing.Point(6, 111); + this.restoreOvrCheckBox.Name = "restoreOvrCheckBox"; + this.restoreOvrCheckBox.Size = new System.Drawing.Size(151, 17); + this.restoreOvrCheckBox.TabIndex = 14; + this.restoreOvrCheckBox.Text = "Restore states when close"; + this.restoreOvrCheckBox.UseVisualStyleBackColor = true; + // // numLockGroupBox // this.numLockGroupBox.Controls.Add(this.numLockComboBox); @@ -427,6 +440,7 @@ ((System.ComponentModel.ISupportInitialize)(this.infoPictureBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.propLeftPictureBox)).EndInit(); this.overridesGroupBox.ResumeLayout(false); + this.overridesGroupBox.PerformLayout(); this.numLockGroupBox.ResumeLayout(false); this.capsLockGroupBox.ResumeLayout(false); this.ResumeLayout(false); @@ -463,6 +477,7 @@ private My.Common.SkinItems skinItems; private System.Windows.Forms.Button skinNavAddButton; private System.Windows.Forms.Button skinNavConfigButton; + private System.Windows.Forms.CheckBox restoreOvrCheckBox; } } \ No newline at end of file Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.cs 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.cs 2015-02-01 16:37:15 UTC (rev 4938) @@ -37,6 +37,7 @@ capsLockComboBox.SelectedItem = EnumHelper.GetEnumDescription(myShortCuts.General.ForcingCapsLock); numLockComboBox.DataSource = EnumHelper.GetEnumDescriptions(typeof(LockKeys.LockKeyActions)); numLockComboBox.SelectedItem = EnumHelper.GetEnumDescription(myShortCuts.General.ForcingNumLock); + restoreOvrCheckBox.Checked = myShortCuts.General.RestoreOvr; #region Enum Senza Descrizione // capsLockComboBox.DataSource = Enum.GetNames(typeof(LockKeys.LockKeyActions)); @@ -246,7 +247,8 @@ private bool Save() //Salvataggio configurazione plugin { myShortCuts.General.ForcingCapsLock = (LockKeys.LockKeyActions)EnumHelper.GetEnumFromDescription<LockKeys.LockKeyActions>(capsLockComboBox.SelectedItem.ToString()); - myShortCuts.General.ForcingNumLock = (LockKeys.LockKeyActions)EnumHelper.GetEnumFromDescription<LockKeys.LockKeyActions>(numLockComboBox.SelectedItem.ToString()); + myShortCuts.General.ForcingNumLock = (LockKeys.LockKeyActions)EnumHelper.GetEnumFromDescription<LockKeys.LockKeyActions>(numLockComboBox.SelectedItem.ToString()); + myShortCuts.General.RestoreOvr = restoreOvrCheckBox.Checked; #region Enum Senza Descrizione // myShortCuts.General.ForcingCapsLock = (LockKeys.LockKeyActions)Enum.Parse(typeof(LockKeys.LockKeyActions), capsLockComboBox.SelectedItem.ToString()); Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.resx =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.resx 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Configuration/ShortCuterConfig.resx 2015-02-01 16:37:15 UTC (rev 4938) @@ -174,6 +174,9 @@ <metadata name="overridesGroupBox.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> + <metadata name="restoreOvrCheckBox.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> <metadata name="numLockGroupBox.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs 2015-02-01 16:37:15 UTC (rev 4938) @@ -17,8 +17,8 @@ public enum LockKeyActions //Tipologie di azioni di modica stato { - [Description("Force ON")] Off = 0, //--> reset blocco - [Description("Force OFF")] On = 1, //--> forzatura blocco + [Description("Force OFF")] Off = 0, //--> reset blocco + [Description("Force ON")] On = 1, //--> forzatura blocco [Description("Not Change")] None = 2 //--> nessuna modifica (stato invariato) } #endregion @@ -29,26 +29,34 @@ if ((Control.IsKeyLocked(Keys.CapsLock) & forcing == LockKeyActions.Off) || (!Control.IsKeyLocked(Keys.CapsLock) & forcing == LockKeyActions.On)) //Se richiesta una variazione di stato { - keybd_event(VK_CAPITAL, SC_CAPITAL, 0, (UIntPtr)0); //--> simulazione pressione del tasto CapsLock - keybd_event(VK_CAPITAL, SC_CAPITAL, KEYEVENTF_KEYUP, (UIntPtr)0); //--> simulazione rilascio del tasto CapsLock + ChangeCapsLock(); //--> modifica stato CapsLock return true; //--> stato CapsLock modificato } else return false; //--> stato CapsLock non modificato } + public static void ChangeCapsLock() //Modifica stato CapsLock (ON/OFF) + { + keybd_event(VK_CAPITAL, SC_CAPITAL, 0, (UIntPtr)0); //--> simulazione pressione del tasto CapsLock + keybd_event(VK_CAPITAL, SC_CAPITAL, KEYEVENTF_KEYUP, (UIntPtr)0); //--> simulazione rilascio del tasto CapsLock + } public static bool ChangeNumLock(LockKeyActions forcing) //Richesta di modifica stato NumLock { if ((Control.IsKeyLocked(Keys.NumLock) & forcing == LockKeyActions.Off) || (!Control.IsKeyLocked(Keys.NumLock) & forcing == LockKeyActions.On)) //Se richiesta una variazione di stato { - keybd_event(VK_NUMLOCK, HK_NUMLOCK, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0); //--> simulazione pressione del tasto NumLock - keybd_event(VK_NUMLOCK, HK_NUMLOCK, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, - (UIntPtr)0); //--> simulazione rilascio del tasto NumLock + ChangeNumLock(); //--> modifica stato NumLock return true; //--> stato NumLock modificato } else return false; //--> stato NumLock non modificato } + public static void ChangeNumLock() //Modifica stato NumLock (ON/OFF) + { + keybd_event(VK_NUMLOCK, HK_NUMLOCK, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0); //--> simulazione pressione del tasto NumLock + keybd_event(VK_NUMLOCK, HK_NUMLOCK, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, + (UIntPtr)0); //--> simulazione rilascio del tasto NumLock + } #endregion #region Importazione DLL Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs 2015-02-01 16:37:15 UTC (rev 4938) @@ -10,8 +10,10 @@ public class ShortCuter : GUIInternalWindow //: IPlugin //Classe gestore shortcuts { #region Dati - private ShortCuts myShortCuts; //Istanza classe ShortCuts (dati relativi ai shortcuts configurati) + private ShortCuts myShortCuts; //Istanza classe ShortCuts (dati relativi ai shortcuts configurati) private RawInputHook rawInput; //Istanza classe RawInputHook (gestione hook mediante metodo raw input) + bool ovrCapsLock = false; //Flag stato CapsLock modificato + bool ovrNumLock = false; //Flag stato NumLock modificato private static readonly string LogPrefix; //Prefisso per log eventi #endregion @@ -31,13 +33,15 @@ myShortCuts = new ShortCuts(settingsFile); //Creazione classe per gestione shorcuts myShortCuts.Log += new LogEventHandler(myShortCuts_Log); //--> sottoscrizione evento di log shortuts - if (LockKeys.ChangeCapsLock(myShortCuts.General.ForcingCapsLock)) - MpLog(new LogEventArgs(LogEventArgs.LogLevels.Info, "CapsLock " + ((myShortCuts.General.ForcingCapsLock == LockKeys.LockKeyActions.Off) ? "deactivated" : "activated"))); - if (LockKeys.ChangeNumLock(myShortCuts.General.ForcingNumLock)) - MpLog(new LogEventArgs(LogEventArgs.LogLevels.Info, "NumLock " + ((myShortCuts.General.ForcingNumLock == LockKeys.LockKeyActions.Off) ? "deactivated" : "activated"))); - if (myShortCuts.Initialize()) //Inizializzazione & lettura impostazioni shorcuts { + ovrCapsLock = LockKeys.ChangeCapsLock(myShortCuts.General.ForcingCapsLock); //--> eventuale memorizzazione stato CapsLock modificato + if (ovrCapsLock) + MpLog(new LogEventArgs(LogEventArgs.LogLevels.Info, "CapsLock " + ((myShortCuts.General.ForcingCapsLock == LockKeys.LockKeyActions.Off) ? "deactivated" : "activated"))); + ovrNumLock = LockKeys.ChangeNumLock(myShortCuts.General.ForcingNumLock); //--> eventuale memorizzazione stato NumLock modificato + if (ovrNumLock) + MpLog(new LogEventArgs(LogEventArgs.LogLevels.Info, "NumLock " + ((myShortCuts.General.ForcingNumLock == LockKeys.LockKeyActions.Off) ? "deactivated" : "activated"))); + try { rawInput = new RawInputHook(GUIGraphicsContext.form.Handle); //--> creazione hook mediante RawInput @@ -64,6 +68,13 @@ } public override void DeInit() //Terminazione del plugin { + if (myShortCuts.General.RestoreOvr) //Se richiesto il ripristino delle forzature alla chiusura + { + if (ovrCapsLock) + LockKeys.ChangeCapsLock(); //--> ripristino stato CapsLock + if (ovrNumLock) + LockKeys.ChangeNumLock(); //--> ripristino stato NumLock + } MpLog(new LogEventArgs(LogEventArgs.LogLevels.Info, "Plugin stopped")); if (myShortCuts != null) myShortCuts.Log -= myShortCuts_Log; //--> annullamento sottoscrizione evento di log shortuts Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs 2015-02-01 16:37:15 UTC (rev 4938) @@ -33,8 +33,8 @@ // È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build // utilizzando l'asterisco (*) come descritto di seguito: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.1.2.0")] -[assembly: AssemblyFileVersion("2.1.2.0")] +[assembly: AssemblyVersion("2.1.3.0")] +[assembly: AssemblyFileVersion("2.1.3.0")] //Importante per la compatibilità con MediaPortal [assembly: CompatibleVersion("1.1.6.27644")] \ No newline at end of file Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Resources/XmlFiles/DefaultConfig.xml =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Resources/XmlFiles/DefaultConfig.xml 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Resources/XmlFiles/DefaultConfig.xml 2015-02-01 16:37:15 UTC (rev 4938) @@ -3,6 +3,7 @@ <General> <ForcingCapsLock>Off</ForcingCapsLock> <ForcingNumLock>None</ForcingNumLock> + <RestoreOvr>0</RestoreOvr> </General> <Items> <Item> Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2015-02-01 11:26:02 UTC (rev 4937) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2015-02-01 16:37:15 UTC (rev 4938) @@ -744,6 +744,7 @@ #region Dati private LockKeys.LockKeyActions _forcingCapsLock; //Tipologia di forzatura Caps-Lock all'avvio private LockKeys.LockKeyActions _forcingNumLock; //Tipologia di forzatura Num-Lock all'avvio + private bool _restoreOvr; //Eventuale ripristino alla chiusura degli stati forzati #endregion #region Costruttore @@ -751,12 +752,14 @@ { _forcingCapsLock = LockKeys.LockKeyActions.None; //--> default: nessuna modifica stato Caps-Lock _forcingNumLock = LockKeys.LockKeyActions.None; //--> default: nessuna modifica stato Num-Lock + _restoreOvr = false; //--> default: nessun ripristino } #endregion #region Proprietà public LockKeys.LockKeyActions ForcingCapsLock { get { return this._forcingCapsLock; } set { this._forcingCapsLock = value; } } public LockKeys.LockKeyActions ForcingNumLock { get { return this._forcingNumLock; } set { this._forcingNumLock = value; } } + public bool RestoreOvr { get { return this._restoreOvr; } set { this._restoreOvr = value; } } #endregion } #endregion @@ -912,6 +915,9 @@ if (innerNode != null && Convert.ToBoolean(Convert.ToInt16(innerNode.InnerText))) _general.ForcingNumLock = LockKeys.LockKeyActions.Off; } + innerNode = generalNode.SelectSingleNode("RestoreOvr"); + if (innerNode != null) + _general.RestoreOvr = Convert.ToBoolean(Convert.ToInt16(innerNode.InnerText)); } XmlNodeList nodeList = xmlFile.DocumentElement.SelectNodes("/ShortCuter/Items/Item"); foreach (XmlNode node in nodeList) //Iterazione per memorizzazione impostazioni shortcuts @@ -1003,6 +1009,7 @@ xmlSettings.WriteStartElement("General"); xmlSettings.WriteElementString("ForcingCapsLock", _general.ForcingCapsLock.ToString()); xmlSettings.WriteElementString("ForcingNumLock", _general.ForcingNumLock.ToString()); + xmlSettings.WriteElementString("RestoreOvr", Convert.ToInt16(_general.RestoreOvr).ToString()); xmlSettings.WriteEndElement(); xmlSettings.WriteStartElement("Items"); foreach (ShortCut sc in _items) //Iterazione per salvataggio sortcuts This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |