初始版本
This commit is contained in:
commit
7e74b16032
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
Publish/
|
||||
Res/
|
||||
**/obj
|
||||
*.pdb
|
||||
**/dcu
|
||||
*.dcu
|
||||
BIN
Bin/Debug/CarSongManage/CarSongManage.exe
Normal file
BIN
Bin/Debug/CarSongManage/CarSongManage.exe
Normal file
Binary file not shown.
3
Bin/Debug/CarSongManage/CarSongManage.exe.config
Normal file
3
Bin/Debug/CarSongManage/CarSongManage.exe.config
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>
|
||||
BIN
Bin/Debug/CarSongManage/MyDb.dll
Normal file
BIN
Bin/Debug/CarSongManage/MyDb.dll
Normal file
Binary file not shown.
11227
Bin/Debug/CarSongManage/MyDb.xml
Normal file
11227
Bin/Debug/CarSongManage/MyDb.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Bin/Debug/CarSongManage/XPTable.dll
Normal file
BIN
Bin/Debug/CarSongManage/XPTable.dll
Normal file
Binary file not shown.
14840
Bin/Debug/CarSongManage/XPTable.xml
Normal file
14840
Bin/Debug/CarSongManage/XPTable.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Bin/Debug/CarSongManage/krc2lrc.exe
Normal file
BIN
Bin/Debug/CarSongManage/krc2lrc.exe
Normal file
Binary file not shown.
BIN
Bin/Debug/CarSongManage/ryControls.dll
Normal file
BIN
Bin/Debug/CarSongManage/ryControls.dll
Normal file
Binary file not shown.
32820
Bin/Debug/CarSongManage/ryControls.xml
Normal file
32820
Bin/Debug/CarSongManage/ryControls.xml
Normal file
File diff suppressed because it is too large
Load Diff
127
Bin/混淆_Debug.nrproj
Normal file
127
Bin/混淆_Debug.nrproj
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<Reactor_Project ProjectFormat="2">
|
||||
<Main_Assembly>Debug\CarSongManage\CarSongManage.exe</Main_Assembly>
|
||||
<Assembly>
|
||||
<Filename>Debug\CarSongManage\ryControls.dll</Filename>
|
||||
</Assembly>
|
||||
<Assembly>
|
||||
<Filename>Debug\CarSongManage\ryUpdate.dll</Filename>
|
||||
</Assembly>
|
||||
<Assembly>
|
||||
<Filename>Debug\CarSongManage\MyDb_SQLite.dll</Filename>
|
||||
</Assembly>
|
||||
<Assembly>
|
||||
<Filename>Debug\CarSongManage\MyDb.dll</Filename>
|
||||
</Assembly>
|
||||
<General_Settings>
|
||||
<Automatic_Exception_Handling>true</Automatic_Exception_Handling>
|
||||
<Application_Compression>true</Application_Compression>
|
||||
<Show_Loading_Screen>false</Show_Loading_Screen>
|
||||
<Digital_Certificate_PFX_SPC_File />
|
||||
<Digital_Certificate_PVK_File />
|
||||
<Digital_Certificate_PFX_PVK_Password />
|
||||
<Time_Stamp_URL_SHA1>http://timestamp.verisign.com/scripts/timstamp.dll</Time_Stamp_URL_SHA1>
|
||||
<Time_Stamp_URL_SHA256>http://sha256timestamp.ws.symantec.com/sha256/timestamp</Time_Stamp_URL_SHA256>
|
||||
<Embed_Assemblies>false</Embed_Assemblies>
|
||||
<Enable_Visual_Styles>true</Enable_Visual_Styles>
|
||||
<Force_Admin_Privileges>false</Force_Admin_Privileges>
|
||||
<Merge_Assemblies>false</Merge_Assemblies>
|
||||
<Merge_Assembly_Attributes>true</Merge_Assembly_Attributes>
|
||||
<Project_Targets_Mono_Framework>false</Project_Targets_Mono_Framework>
|
||||
<Strong_Name_KeyPair_File />
|
||||
<Strong_Name_KeyPair_Password />
|
||||
<Target_File><AssemblyLocation>\Secure\<AssemblyFileName></Target_File>
|
||||
<V3_Mode>true</V3_Mode>
|
||||
</General_Settings>
|
||||
<Protection_Settings>
|
||||
<Anti_ILDASM>true</Anti_ILDASM>
|
||||
<Inject_Invalid_Metadata>true</Inject_Invalid_Metadata>
|
||||
<Anti_Tampering>false</Anti_Tampering>
|
||||
<Control_Flow_Obfuscation>false</Control_Flow_Obfuscation>
|
||||
<Control_Flow_Obfuscation_Level>9</Control_Flow_Obfuscation_Level>
|
||||
<Native_EXE_File>true</Native_EXE_File>
|
||||
<Native_EXE_Embed_Pdb>false</Native_EXE_Embed_Pdb>
|
||||
<NecroBit>false</NecroBit>
|
||||
<NecroBit_Reflection_Compatibility_Mode>false</NecroBit_Reflection_Compatibility_Mode>
|
||||
<Obfuscation>true</Obfuscation>
|
||||
<Pruning>false</Pruning>
|
||||
<Create_Mapping_File>false</Create_Mapping_File>
|
||||
<Exclude_Enums>false</Exclude_Enums>
|
||||
<Exclude_Events>false</Exclude_Events>
|
||||
<Exclude_Fields>false</Exclude_Fields>
|
||||
<Exclude_Methods>false</Exclude_Methods>
|
||||
<Exclude_Properties>false</Exclude_Properties>
|
||||
<Exclude_Serializable_Types>false</Exclude_Serializable_Types>
|
||||
<Exclude_Types>false</Exclude_Types>
|
||||
<Exclusion_Rules />
|
||||
<Generate_Short_Strings>false</Generate_Short_Strings>
|
||||
<Ignore_InternalsVisibleTo>false</Ignore_InternalsVisibleTo>
|
||||
<Incremental_Obfuscation>false</Incremental_Obfuscation>
|
||||
<Merge_Namespaces>false</Merge_Namespaces>
|
||||
<Merge_Namespaces_Namespace />
|
||||
<Obfuscate_All_Method_Parameters>false</Obfuscate_All_Method_Parameters>
|
||||
<Obfuscate_Public_Types>false</Obfuscate_Public_Types>
|
||||
<Use_Unprintable_Characters>false</Use_Unprintable_Characters>
|
||||
<Pre-JIT_Methods>false</Pre-JIT_Methods>
|
||||
<Public_Types_Internalization>false</Public_Types_Internalization>
|
||||
<Resource_Encryption_And_Compression>true</Resource_Encryption_And_Compression>
|
||||
<String_Encryption>true</String_Encryption>
|
||||
<String_Encryption_Mode>All</String_Encryption_Mode>
|
||||
<String_Encryption_InclusionExclusion_List />
|
||||
<Strong_Name_Removal_Protection>false</Strong_Name_Removal_Protection>
|
||||
</Protection_Settings>
|
||||
<Lock_Settings>
|
||||
<Expire_When_All_Expired>true</Expire_When_All_Expired>
|
||||
<Inbuilt_Lock_Evaluation_Period_Enabled>false</Inbuilt_Lock_Evaluation_Period_Enabled>
|
||||
<Inbuilt_Lock_Evaluation_Period_Type>Trial_Days</Inbuilt_Lock_Evaluation_Period_Type>
|
||||
<Inbuilt_Lock_Evaluation_Period_Time>14</Inbuilt_Lock_Evaluation_Period_Time>
|
||||
<Inbuilt_Lock_Expiry_Date_Enabled>false</Inbuilt_Lock_Expiry_Date_Enabled>
|
||||
<Inbuilt_Lock_Expiry_Date>20180503</Inbuilt_Lock_Expiry_Date>
|
||||
<Inbuilt_Lock_Number_Of_Uses_Enabled>false</Inbuilt_Lock_Number_Of_Uses_Enabled>
|
||||
<Inbuilt_Lock_Number_Of_Uses>10</Inbuilt_Lock_Number_Of_Uses>
|
||||
<Inbuilt_Lock_Max_Number_Of_Instances_Enabled>false</Inbuilt_Lock_Max_Number_Of_Instances_Enabled>
|
||||
<Inbuilt_Lock_Max_Number_Of_Instances>5</Inbuilt_Lock_Max_Number_Of_Instances>
|
||||
<Run_Another_Process_After_Expiration />
|
||||
<Run_Without_License_File>true</Run_Without_License_File>
|
||||
<Shutdown_Process_After_Expiration>true</Shutdown_Process_After_Expiration>
|
||||
<Static_License_FileName />
|
||||
</Lock_Settings>
|
||||
<Dialog_Settings>
|
||||
<Dialog_Evaluation_Period_Enabled>true</Dialog_Evaluation_Period_Enabled>
|
||||
<Dialog_Evaluation_Period>You are on day [current_minutes_days] of your [max_minutes_days] day evaluation period. Your trial period is expired! You need to purchase a license to run this software.</Dialog_Evaluation_Period>
|
||||
<Dialog_Expiry_Date_Enabled>true</Dialog_Expiry_Date_Enabled>
|
||||
<Dialog_Expiry_Date>Your expiration date is reached! You need to purchase a license file to run this software.</Dialog_Expiry_Date>
|
||||
<Dialog_Number_Of_Uses_Enabled>true</Dialog_Number_Of_Uses_Enabled>
|
||||
<Dialog_Number_Of_Uses>You have used this software [current_uses] times out of a maximum of [max_uses]. You have [uses_left] uses left. Your trial period is expired! You need to purchase a license to run this software.</Dialog_Number_Of_Uses>
|
||||
<Dialog_Max_Number_Of_Instances_Enabled>true</Dialog_Max_Number_Of_Instances_Enabled>
|
||||
<Dialog_Max_Number_Of_Instances>You can only run maximal [max_processes] instances of this software at the same time.</Dialog_Max_Number_Of_Instances>
|
||||
<Dialog_License_Not_Found_Enabled>true</Dialog_License_Not_Found_Enabled>
|
||||
<Dialog_License_Not_Found>This software won't run without a valid license file. Either a valid license file could not be found or your license file is expired.</Dialog_License_Not_Found>
|
||||
<Dialog_Nag_Screen_Enabled>false</Dialog_Nag_Screen_Enabled>
|
||||
<Dialog_Nag_Screen>Nag Screen! This message will disappear when a valid license file is installed. You are on day [current_minutes_days] of your [max_minutes_days] day evaluation period. You have [minutes_days_left] days left. You have used this software [current_uses] times out of a maximum of [max_uses]. You have [uses_left] uses left.</Dialog_Nag_Screen>
|
||||
<Dialog_Nag_Screen_XDays>-1</Dialog_Nag_Screen_XDays>
|
||||
<Dialog_Box_Interface />
|
||||
<Dialog_Caption>Lock System</Dialog_Caption>
|
||||
<Color_Gradient_Begin>255255255</Color_Gradient_Begin>
|
||||
<Color_Gradient_End>157211252</Color_Gradient_End>
|
||||
</Dialog_Settings>
|
||||
<License_Manager_Settings>
|
||||
<Individual_Licensing_Bahvior>false</Individual_Licensing_Bahvior>
|
||||
<License_Evaluation_Enabled>false</License_Evaluation_Enabled>
|
||||
<License_Evaluation_Type>Trial_Days</License_Evaluation_Type>
|
||||
<License_Evaluation_Time>1</License_Evaluation_Time>
|
||||
<License_Expiry_Date_Enabled>false</License_Expiry_Date_Enabled>
|
||||
<License_Expiry_Date>20180503</License_Expiry_Date>
|
||||
<License_Hardware_Lock_Enabled>false</License_Hardware_Lock_Enabled>
|
||||
<License_Hardware_BOARD>true</License_Hardware_BOARD>
|
||||
<License_Hardware_CPU>true</License_Hardware_CPU>
|
||||
<License_Hardware_HDD>false</License_Hardware_HDD>
|
||||
<License_Hardware_MAC>true</License_Hardware_MAC>
|
||||
<License_Hardware_ID>####-####-####-####-####</License_Hardware_ID>
|
||||
<License_Number_Of_Uses_Enabled>false</License_Number_Of_Uses_Enabled>
|
||||
<License_Number_Of_Uses>10</License_Number_Of_Uses>
|
||||
<License_Number_Of_Instances_Enabled>false</License_Number_Of_Instances_Enabled>
|
||||
<License_Number_Of_Instances>5</License_Number_Of_Instances>
|
||||
<AdditonalLicenseInformation />
|
||||
<MasterKey>Hr7YPNVEOuGLGJrWzxt2hKWI0xXn4h31i5nGAghNonQ=|<RSAKeyValue><Modulus>twxUWoRvbb2N6CMXQL36TBij9G7nxvU6rTULmVnbS1jYTvPQSKohB2o95vJvdlxjw7KBxYhIFqj9yEn5xvD4GVhj8+MEvG4lNqN1e1FErGin9YYYr4dTZHFe73aG5xxoscKZIg3YYdoBp0lgE2xwfaHyYe03M3mbhQx6axyf7Ak=</Modulus><Exponent>AQAB</Exponent><P>6OP29NbAV7sOKvOFRIeBbnJLh4fOiAjGtqiBlHLyOHt6w1s8N4o4Kr3N2KPVcpj82655KRzRlVDkwQika4eZ9w==</P><Q>yTY83K4a/WpcifMvuAFEuM9wVfXtbQUpV0MSSNgCmWcd6G3+GYShmPUW1gWMv+4H59iiPef1pnXvuzPYnQMp/w==</Q><DP>J/h4Oi1hda01EUoaZVicbkhPjkNQvyhCcrcZBlF0IR2QRFc0TpP6b9uDqNr1l2WKgGnBgbzge7AWksrY7VuooQ==</DP><DQ>PtmhQzFjHts1UqXStwA2bh/lsAQkiJQ/KJG7yWMn1LEAB5Ur9N6X94Y+/tU29NCuSX5Cl2G4OqnGG0yDke/mEw==</DQ><InverseQ>jiKqvwfWSUpKybcT3ucAedpT+kKuB/Qs1xJ0Z6bYOE8EsljxGbq8428Cma5rp33WMP6ybq2HwOddm/73ZFZZKQ==</InverseQ><D>bYP46/cUW8nvHxXvkZKYL/MGFPZNwaFyq7Jy8BrssxXCxOnmkbMH89HCm2ws99mq7qjcL3yr9LLCs5Re1oHRTQT2Vu2hXuGAGVjvHwYPLWGvcYvIuTWoTEw79m+lh/7CYDxfwzwWL095a8D40OvfHauk7xrXDB+qIsEJ7Gkjh0k=</D></RSAKeyValue></MasterKey>
|
||||
</License_Manager_Settings>
|
||||
</Reactor_Project>
|
||||
127
Bin/混淆_Release.nrproj
Normal file
127
Bin/混淆_Release.nrproj
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<Reactor_Project ProjectFormat="2">
|
||||
<Main_Assembly>Release\CarSongManage\CarSongManage.exe</Main_Assembly>
|
||||
<Assembly>
|
||||
<Filename>Release\CarSongManage\ryControls.dll</Filename>
|
||||
</Assembly>
|
||||
<Assembly>
|
||||
<Filename>Release\CarSongManage\ryUpdate.dll</Filename>
|
||||
</Assembly>
|
||||
<Assembly>
|
||||
<Filename>Release\CarSongManage\MyDb_SQLite.dll</Filename>
|
||||
</Assembly>
|
||||
<Assembly>
|
||||
<Filename>Release\CarSongManage\MyDb.dll</Filename>
|
||||
</Assembly>
|
||||
<General_Settings>
|
||||
<Automatic_Exception_Handling>true</Automatic_Exception_Handling>
|
||||
<Application_Compression>true</Application_Compression>
|
||||
<Show_Loading_Screen>false</Show_Loading_Screen>
|
||||
<Digital_Certificate_PFX_SPC_File />
|
||||
<Digital_Certificate_PVK_File />
|
||||
<Digital_Certificate_PFX_PVK_Password />
|
||||
<Time_Stamp_URL_SHA1>http://timestamp.verisign.com/scripts/timstamp.dll</Time_Stamp_URL_SHA1>
|
||||
<Time_Stamp_URL_SHA256>http://sha256timestamp.ws.symantec.com/sha256/timestamp</Time_Stamp_URL_SHA256>
|
||||
<Embed_Assemblies>false</Embed_Assemblies>
|
||||
<Enable_Visual_Styles>true</Enable_Visual_Styles>
|
||||
<Force_Admin_Privileges>false</Force_Admin_Privileges>
|
||||
<Merge_Assemblies>false</Merge_Assemblies>
|
||||
<Merge_Assembly_Attributes>true</Merge_Assembly_Attributes>
|
||||
<Project_Targets_Mono_Framework>false</Project_Targets_Mono_Framework>
|
||||
<Strong_Name_KeyPair_File />
|
||||
<Strong_Name_KeyPair_Password />
|
||||
<Target_File><AssemblyLocation>\Secure\<AssemblyFileName></Target_File>
|
||||
<V3_Mode>true</V3_Mode>
|
||||
</General_Settings>
|
||||
<Protection_Settings>
|
||||
<Anti_ILDASM>true</Anti_ILDASM>
|
||||
<Inject_Invalid_Metadata>true</Inject_Invalid_Metadata>
|
||||
<Anti_Tampering>false</Anti_Tampering>
|
||||
<Control_Flow_Obfuscation>false</Control_Flow_Obfuscation>
|
||||
<Control_Flow_Obfuscation_Level>9</Control_Flow_Obfuscation_Level>
|
||||
<Native_EXE_File>true</Native_EXE_File>
|
||||
<Native_EXE_Embed_Pdb>false</Native_EXE_Embed_Pdb>
|
||||
<NecroBit>false</NecroBit>
|
||||
<NecroBit_Reflection_Compatibility_Mode>false</NecroBit_Reflection_Compatibility_Mode>
|
||||
<Obfuscation>true</Obfuscation>
|
||||
<Pruning>false</Pruning>
|
||||
<Create_Mapping_File>false</Create_Mapping_File>
|
||||
<Exclude_Enums>false</Exclude_Enums>
|
||||
<Exclude_Events>false</Exclude_Events>
|
||||
<Exclude_Fields>false</Exclude_Fields>
|
||||
<Exclude_Methods>false</Exclude_Methods>
|
||||
<Exclude_Properties>false</Exclude_Properties>
|
||||
<Exclude_Serializable_Types>false</Exclude_Serializable_Types>
|
||||
<Exclude_Types>false</Exclude_Types>
|
||||
<Exclusion_Rules />
|
||||
<Generate_Short_Strings>false</Generate_Short_Strings>
|
||||
<Ignore_InternalsVisibleTo>false</Ignore_InternalsVisibleTo>
|
||||
<Incremental_Obfuscation>false</Incremental_Obfuscation>
|
||||
<Merge_Namespaces>false</Merge_Namespaces>
|
||||
<Merge_Namespaces_Namespace />
|
||||
<Obfuscate_All_Method_Parameters>false</Obfuscate_All_Method_Parameters>
|
||||
<Obfuscate_Public_Types>false</Obfuscate_Public_Types>
|
||||
<Use_Unprintable_Characters>false</Use_Unprintable_Characters>
|
||||
<Pre-JIT_Methods>false</Pre-JIT_Methods>
|
||||
<Public_Types_Internalization>false</Public_Types_Internalization>
|
||||
<Resource_Encryption_And_Compression>true</Resource_Encryption_And_Compression>
|
||||
<String_Encryption>true</String_Encryption>
|
||||
<String_Encryption_Mode>All</String_Encryption_Mode>
|
||||
<String_Encryption_InclusionExclusion_List />
|
||||
<Strong_Name_Removal_Protection>false</Strong_Name_Removal_Protection>
|
||||
</Protection_Settings>
|
||||
<Lock_Settings>
|
||||
<Expire_When_All_Expired>true</Expire_When_All_Expired>
|
||||
<Inbuilt_Lock_Evaluation_Period_Enabled>false</Inbuilt_Lock_Evaluation_Period_Enabled>
|
||||
<Inbuilt_Lock_Evaluation_Period_Type>Trial_Days</Inbuilt_Lock_Evaluation_Period_Type>
|
||||
<Inbuilt_Lock_Evaluation_Period_Time>14</Inbuilt_Lock_Evaluation_Period_Time>
|
||||
<Inbuilt_Lock_Expiry_Date_Enabled>false</Inbuilt_Lock_Expiry_Date_Enabled>
|
||||
<Inbuilt_Lock_Expiry_Date>20180503</Inbuilt_Lock_Expiry_Date>
|
||||
<Inbuilt_Lock_Number_Of_Uses_Enabled>false</Inbuilt_Lock_Number_Of_Uses_Enabled>
|
||||
<Inbuilt_Lock_Number_Of_Uses>10</Inbuilt_Lock_Number_Of_Uses>
|
||||
<Inbuilt_Lock_Max_Number_Of_Instances_Enabled>false</Inbuilt_Lock_Max_Number_Of_Instances_Enabled>
|
||||
<Inbuilt_Lock_Max_Number_Of_Instances>5</Inbuilt_Lock_Max_Number_Of_Instances>
|
||||
<Run_Another_Process_After_Expiration />
|
||||
<Run_Without_License_File>true</Run_Without_License_File>
|
||||
<Shutdown_Process_After_Expiration>true</Shutdown_Process_After_Expiration>
|
||||
<Static_License_FileName />
|
||||
</Lock_Settings>
|
||||
<Dialog_Settings>
|
||||
<Dialog_Evaluation_Period_Enabled>true</Dialog_Evaluation_Period_Enabled>
|
||||
<Dialog_Evaluation_Period>You are on day [current_minutes_days] of your [max_minutes_days] day evaluation period. Your trial period is expired! You need to purchase a license to run this software.</Dialog_Evaluation_Period>
|
||||
<Dialog_Expiry_Date_Enabled>true</Dialog_Expiry_Date_Enabled>
|
||||
<Dialog_Expiry_Date>Your expiration date is reached! You need to purchase a license file to run this software.</Dialog_Expiry_Date>
|
||||
<Dialog_Number_Of_Uses_Enabled>true</Dialog_Number_Of_Uses_Enabled>
|
||||
<Dialog_Number_Of_Uses>You have used this software [current_uses] times out of a maximum of [max_uses]. You have [uses_left] uses left. Your trial period is expired! You need to purchase a license to run this software.</Dialog_Number_Of_Uses>
|
||||
<Dialog_Max_Number_Of_Instances_Enabled>true</Dialog_Max_Number_Of_Instances_Enabled>
|
||||
<Dialog_Max_Number_Of_Instances>You can only run maximal [max_processes] instances of this software at the same time.</Dialog_Max_Number_Of_Instances>
|
||||
<Dialog_License_Not_Found_Enabled>true</Dialog_License_Not_Found_Enabled>
|
||||
<Dialog_License_Not_Found>This software won't run without a valid license file. Either a valid license file could not be found or your license file is expired.</Dialog_License_Not_Found>
|
||||
<Dialog_Nag_Screen_Enabled>false</Dialog_Nag_Screen_Enabled>
|
||||
<Dialog_Nag_Screen>Nag Screen! This message will disappear when a valid license file is installed. You are on day [current_minutes_days] of your [max_minutes_days] day evaluation period. You have [minutes_days_left] days left. You have used this software [current_uses] times out of a maximum of [max_uses]. You have [uses_left] uses left.</Dialog_Nag_Screen>
|
||||
<Dialog_Nag_Screen_XDays>-1</Dialog_Nag_Screen_XDays>
|
||||
<Dialog_Box_Interface />
|
||||
<Dialog_Caption>Lock System</Dialog_Caption>
|
||||
<Color_Gradient_Begin>255255255</Color_Gradient_Begin>
|
||||
<Color_Gradient_End>157211252</Color_Gradient_End>
|
||||
</Dialog_Settings>
|
||||
<License_Manager_Settings>
|
||||
<Individual_Licensing_Bahvior>false</Individual_Licensing_Bahvior>
|
||||
<License_Evaluation_Enabled>false</License_Evaluation_Enabled>
|
||||
<License_Evaluation_Type>Trial_Days</License_Evaluation_Type>
|
||||
<License_Evaluation_Time>1</License_Evaluation_Time>
|
||||
<License_Expiry_Date_Enabled>false</License_Expiry_Date_Enabled>
|
||||
<License_Expiry_Date>20180503</License_Expiry_Date>
|
||||
<License_Hardware_Lock_Enabled>false</License_Hardware_Lock_Enabled>
|
||||
<License_Hardware_BOARD>true</License_Hardware_BOARD>
|
||||
<License_Hardware_CPU>true</License_Hardware_CPU>
|
||||
<License_Hardware_HDD>false</License_Hardware_HDD>
|
||||
<License_Hardware_MAC>true</License_Hardware_MAC>
|
||||
<License_Hardware_ID>####-####-####-####-####</License_Hardware_ID>
|
||||
<License_Number_Of_Uses_Enabled>false</License_Number_Of_Uses_Enabled>
|
||||
<License_Number_Of_Uses>10</License_Number_Of_Uses>
|
||||
<License_Number_Of_Instances_Enabled>false</License_Number_Of_Instances_Enabled>
|
||||
<License_Number_Of_Instances>5</License_Number_Of_Instances>
|
||||
<AdditonalLicenseInformation />
|
||||
<MasterKey>Hr7YPNVEOuGLGJrWzxt2hKWI0xXn4h31i5nGAghNonQ=|<RSAKeyValue><Modulus>twxUWoRvbb2N6CMXQL36TBij9G7nxvU6rTULmVnbS1jYTvPQSKohB2o95vJvdlxjw7KBxYhIFqj9yEn5xvD4GVhj8+MEvG4lNqN1e1FErGin9YYYr4dTZHFe73aG5xxoscKZIg3YYdoBp0lgE2xwfaHyYe03M3mbhQx6axyf7Ak=</Modulus><Exponent>AQAB</Exponent><P>6OP29NbAV7sOKvOFRIeBbnJLh4fOiAjGtqiBlHLyOHt6w1s8N4o4Kr3N2KPVcpj82655KRzRlVDkwQika4eZ9w==</P><Q>yTY83K4a/WpcifMvuAFEuM9wVfXtbQUpV0MSSNgCmWcd6G3+GYShmPUW1gWMv+4H59iiPef1pnXvuzPYnQMp/w==</Q><DP>J/h4Oi1hda01EUoaZVicbkhPjkNQvyhCcrcZBlF0IR2QRFc0TpP6b9uDqNr1l2WKgGnBgbzge7AWksrY7VuooQ==</DP><DQ>PtmhQzFjHts1UqXStwA2bh/lsAQkiJQ/KJG7yWMn1LEAB5Ur9N6X94Y+/tU29NCuSX5Cl2G4OqnGG0yDke/mEw==</DQ><InverseQ>jiKqvwfWSUpKybcT3ucAedpT+kKuB/Qs1xJ0Z6bYOE8EsljxGbq8428Cma5rp33WMP6ybq2HwOddm/73ZFZZKQ==</InverseQ><D>bYP46/cUW8nvHxXvkZKYL/MGFPZNwaFyq7Jy8BrssxXCxOnmkbMH89HCm2ws99mq7qjcL3yr9LLCs5Re1oHRTQT2Vu2hXuGAGVjvHwYPLWGvcYvIuTWoTEw79m+lh/7CYDxfwzwWL095a8D40OvfHauk7xrXDB+qIsEJ7Gkjh0k=</D></RSAKeyValue></MasterKey>
|
||||
</License_Manager_Settings>
|
||||
</Reactor_Project>
|
||||
4
CHANGELOG.md
Normal file
4
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
### 2022-02-12更新
|
||||
------
|
||||
#### CarSongManage V1.0.2202.1201
|
||||
- *.[初始版本]
|
||||
14
README.md
Normal file
14
README.md
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# 车载歌曲维护
|
||||
|
||||
#### 基础介绍
|
||||
|
||||
车机与NAS媒体管家是一款专注于管理车机音乐、MV与NAS上的电影电视剧的软件。
|
||||
|
||||
#### 功能介绍
|
||||
|
||||
- **歌词转码:**将lrc歌词文件自动转码成符合要求的utf8编码。
|
||||
- **歌曲情况:**自动显示歌曲文件对应的写真数量、歌词情况。
|
||||
- **同步到U盘:**自动将本地歌曲文件和对应歌词、写真同步到U盘。
|
||||
- **音乐软件写真:**自动加载酷我音乐的歌手写真图片,并可以搜索、保存。
|
||||
- **电影命名助手:**提供电影文件、字幕、nfo文件,自动命名成统一的格式。
|
||||
|
||||
Binary file not shown.
BIN
Source/CarSongManage/.vs/CarSongManage/v16/.suo
Normal file
BIN
Source/CarSongManage/.vs/CarSongManage/v16/.suo
Normal file
Binary file not shown.
Binary file not shown.
BIN
Source/CarSongManage/.vs/CarSongManage/v17/.suo
Normal file
BIN
Source/CarSongManage/.vs/CarSongManage/v17/.suo
Normal file
Binary file not shown.
25
Source/CarSongManage/CarSongManage.sln
Normal file
25
Source/CarSongManage/CarSongManage.sln
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.29324.140
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarSongManage", "CarSongManage\CarSongManage.csproj", "{CA3D8090-8A4E-4F23-9264-6B41849495EA}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{CA3D8090-8A4E-4F23-9264-6B41849495EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CA3D8090-8A4E-4F23-9264-6B41849495EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CA3D8090-8A4E-4F23-9264-6B41849495EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CA3D8090-8A4E-4F23-9264-6B41849495EA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {7F7AC254-AFBB-49A0-BB56-DBC36960AF5A}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
102
Source/CarSongManage/CarSongManage/CarSongManage.csproj
Normal file
102
Source/CarSongManage/CarSongManage/CarSongManage.csproj
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{CA3D8090-8A4E-4F23-9264-6B41849495EA}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>CarSongManage</RootNamespace>
|
||||
<AssemblyName>CarSongManage</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\..\Bin\Debug\CarSongManage\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>music.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="MyDb">
|
||||
<HintPath>..\..\..\..\..\..\公共代码\C#\公用控件组\Bin\Debug\CommonControls\.NET4\MyDb.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ryControls">
|
||||
<HintPath>..\..\..\..\..\..\公共代码\C#\公用控件组\Bin\Debug\CommonControls\.NET4\ryControls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Design" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="XPTable">
|
||||
<HintPath>..\..\..\..\当游工具箱\Bin\Debug\DyTools\XPTable.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="FrmLrcConvert.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FrmLrcConvert.Designer.cs">
|
||||
<DependentUpon>FrmLrcConvert.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ImgExt.cs" />
|
||||
<Compile Include="Lrc.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="FrmLrcConvert.resx">
|
||||
<DependentUpon>FrmLrcConvert.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="app.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="music.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<EnableUnmanagedDebugging>true</EnableUnmanagedDebugging>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
805
Source/CarSongManage/CarSongManage/FrmLrcConvert.Designer.cs
generated
Normal file
805
Source/CarSongManage/CarSongManage/FrmLrcConvert.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,805 @@
|
|||
namespace CarSongManage
|
||||
{
|
||||
partial class FrmLrcConvert
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows 窗体设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmLrcConvert));
|
||||
this.TxtLrcFolder = new ryControls.TextBoxEx2();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.table_lrc = new XPTable.Models.Table();
|
||||
this.columnModel1 = new XPTable.Models.ColumnModel();
|
||||
this.ColLrcName = new XPTable.Models.TextColumn();
|
||||
this.ColLrcEncode = new XPTable.Models.TextColumn();
|
||||
this.ColPreview = new XPTable.Models.TextColumn();
|
||||
this.tableModel1 = new XPTable.Models.TableModel();
|
||||
this.BtnScanLrc = new ryControls.ButtonEx();
|
||||
this.BtnConvert = new ryControls.ButtonEx();
|
||||
this.LblState = new System.Windows.Forms.Label();
|
||||
this.chromeTabControl1 = new ryControls.ChromeTabControl();
|
||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||
this.BtnScanMusic = new ryControls.ButtonEx();
|
||||
this.table_music = new XPTable.Models.Table();
|
||||
this.columnModel2 = new XPTable.Models.ColumnModel();
|
||||
this.ColMFileName = new XPTable.Models.TextColumn();
|
||||
this.ColSingerPic = new XPTable.Models.TextColumn();
|
||||
this.ColMHaveLrc = new XPTable.Models.TextColumn();
|
||||
this.menuMusic = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.打开写真文件夹ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.定位歌曲文件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.定位歌词文件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.编辑歌词ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tableModel2 = new XPTable.Models.TableModel();
|
||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||
this.ChkPriority_Krc = new System.Windows.Forms.CheckBox();
|
||||
this.LblToPath = new System.Windows.Forms.Label();
|
||||
this.BtnCopy = new ryControls.ButtonEx();
|
||||
this.CbbDrive = new ryControls.RyComboBox();
|
||||
this.TxtToFolder = new ryControls.TextBoxEx2();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.tabPage4 = new System.Windows.Forms.TabPage();
|
||||
this.TxtPreviewRename = new ryControls.TextBoxEx2();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.BtnNew = new ryControls.ButtonEx();
|
||||
this.BtnRename = new ryControls.ButtonEx();
|
||||
this.TxtNFOPath = new ryControls.TextBoxEx2();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.TxtSubtitlesPath = new ryControls.TextBoxEx2();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.TxtMoviePath = new ryControls.TextBoxEx2();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.TxtMovieRename = new ryControls.TextBoxEx2();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.tabPage5 = new System.Windows.Forms.TabPage();
|
||||
this.BtnKuwo = new ryControls.ButtonEx();
|
||||
this.iconViewEx1 = new ryControls.IconViewEx();
|
||||
this.BtnQQMusic = new ryControls.ButtonEx();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
this.rySearch1 = new ryControls.rySearch();
|
||||
((System.ComponentModel.ISupportInitialize)(this.table_lrc)).BeginInit();
|
||||
this.chromeTabControl1.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
this.tabPage2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.table_music)).BeginInit();
|
||||
this.menuMusic.SuspendLayout();
|
||||
this.tabPage3.SuspendLayout();
|
||||
this.tabPage4.SuspendLayout();
|
||||
this.tabPage5.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// TxtLrcFolder
|
||||
//
|
||||
this.TxtLrcFolder.BackColor = System.Drawing.Color.White;
|
||||
this.TxtLrcFolder.EmptyText = "";
|
||||
this.TxtLrcFolder.Location = new System.Drawing.Point(59, 5);
|
||||
this.TxtLrcFolder.MaxLength = 999999999;
|
||||
this.TxtLrcFolder.Multiline = false;
|
||||
this.TxtLrcFolder.Name = "TxtLrcFolder";
|
||||
this.TxtLrcFolder.OnlyNumeric = false;
|
||||
this.TxtLrcFolder.PasswordChar = '\0';
|
||||
this.TxtLrcFolder.ReadOnly = false;
|
||||
this.TxtLrcFolder.SelectedText = "";
|
||||
this.TxtLrcFolder.SelectionLength = 0;
|
||||
this.TxtLrcFolder.SelectionStart = 0;
|
||||
this.TxtLrcFolder.Size = new System.Drawing.Size(630, 30);
|
||||
this.TxtLrcFolder.TabIndex = 0;
|
||||
this.TxtLrcFolder.TabStop = false;
|
||||
this.TxtLrcFolder.Text = "E:\\音乐中心\\车载歌曲";
|
||||
this.TxtLrcFolder.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
this.TxtLrcFolder.ToolTip = "";
|
||||
this.TxtLrcFolder.WordWrap = true;
|
||||
this.TxtLrcFolder.TextChanged2 += new System.EventHandler(this.TxtLrcFolder_TextChanged2);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(9, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(41, 12);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "文件夹";
|
||||
//
|
||||
// table_lrc
|
||||
//
|
||||
this.table_lrc.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.table_lrc.ColumnModel = this.columnModel1;
|
||||
this.table_lrc.FullRowSelect = true;
|
||||
this.table_lrc.Location = new System.Drawing.Point(3, 39);
|
||||
this.table_lrc.Name = "table_lrc";
|
||||
this.table_lrc.NoItemsText = "当前列表没有任何项";
|
||||
this.table_lrc.Size = new System.Drawing.Size(743, 429);
|
||||
this.table_lrc.TabIndex = 2;
|
||||
this.table_lrc.TableModel = this.tableModel1;
|
||||
this.table_lrc.Text = "table1";
|
||||
//
|
||||
// columnModel1
|
||||
//
|
||||
this.columnModel1.Columns.AddRange(new XPTable.Models.Column[] {
|
||||
this.ColLrcName,
|
||||
this.ColLrcEncode,
|
||||
this.ColPreview});
|
||||
//
|
||||
// ColLrcName
|
||||
//
|
||||
this.ColLrcName.Editable = false;
|
||||
this.ColLrcName.Tag = null;
|
||||
this.ColLrcName.Text = "歌词文件名";
|
||||
this.ColLrcName.Width = 200;
|
||||
//
|
||||
// ColLrcEncode
|
||||
//
|
||||
this.ColLrcEncode.Editable = false;
|
||||
this.ColLrcEncode.Tag = null;
|
||||
this.ColLrcEncode.Text = "可能编码";
|
||||
//
|
||||
// ColPreview
|
||||
//
|
||||
this.ColPreview.Tag = null;
|
||||
this.ColPreview.Text = "预览";
|
||||
this.ColPreview.Width = 400;
|
||||
//
|
||||
// BtnScanLrc
|
||||
//
|
||||
this.BtnScanLrc.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnScanLrc.Location = new System.Drawing.Point(3, 5);
|
||||
this.BtnScanLrc.Name = "BtnScanLrc";
|
||||
this.BtnScanLrc.Size = new System.Drawing.Size(64, 30);
|
||||
this.BtnScanLrc.TabIndex = 3;
|
||||
this.BtnScanLrc.Text = "扫描";
|
||||
this.BtnScanLrc.UseVisualStyleBackColor = true;
|
||||
this.BtnScanLrc.Click += new System.EventHandler(this.BtnScanLrc_Click);
|
||||
//
|
||||
// BtnConvert
|
||||
//
|
||||
this.BtnConvert.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnConvert.Location = new System.Drawing.Point(73, 5);
|
||||
this.BtnConvert.Name = "BtnConvert";
|
||||
this.BtnConvert.Size = new System.Drawing.Size(64, 30);
|
||||
this.BtnConvert.TabIndex = 4;
|
||||
this.BtnConvert.Text = "转换";
|
||||
this.BtnConvert.UseVisualStyleBackColor = true;
|
||||
this.BtnConvert.Click += new System.EventHandler(this.BtnConvert_Click);
|
||||
//
|
||||
// LblState
|
||||
//
|
||||
this.LblState.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.LblState.AutoSize = true;
|
||||
this.LblState.Location = new System.Drawing.Point(8, 545);
|
||||
this.LblState.Name = "LblState";
|
||||
this.LblState.Size = new System.Drawing.Size(83, 12);
|
||||
this.LblState.TabIndex = 5;
|
||||
this.LblState.Text = "状态:准备就绪";
|
||||
//
|
||||
// chromeTabControl1
|
||||
//
|
||||
this.chromeTabControl1.AllowDragTab = false;
|
||||
this.chromeTabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.chromeTabControl1.BackTabPageImage = null;
|
||||
this.chromeTabControl1.Controls.Add(this.tabPage2);
|
||||
this.chromeTabControl1.Controls.Add(this.tabPage5);
|
||||
this.chromeTabControl1.Controls.Add(this.tabPage1);
|
||||
this.chromeTabControl1.Controls.Add(this.tabPage3);
|
||||
this.chromeTabControl1.Controls.Add(this.tabPage4);
|
||||
this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.chromeTabControl1.ItemSize = new System.Drawing.Size(130, 25);
|
||||
this.chromeTabControl1.Location = new System.Drawing.Point(3, 38);
|
||||
this.chromeTabControl1.Name = "chromeTabControl1";
|
||||
this.chromeTabControl1.SelectedIndex = 0;
|
||||
this.chromeTabControl1.ShowAddButton = false;
|
||||
this.chromeTabControl1.ShowCloseButton = false;
|
||||
this.chromeTabControl1.Size = new System.Drawing.Size(753, 504);
|
||||
this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
|
||||
this.chromeTabControl1.TabContextMenuStrip = null;
|
||||
this.chromeTabControl1.TabIndex = 6;
|
||||
this.chromeTabControl1.TabMaxWidth = 130;
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
this.tabPage1.Controls.Add(this.table_lrc);
|
||||
this.tabPage1.Controls.Add(this.BtnScanLrc);
|
||||
this.tabPage1.Controls.Add(this.BtnConvert);
|
||||
this.tabPage1.Location = new System.Drawing.Point(1, 29);
|
||||
this.tabPage1.Name = "tabPage1";
|
||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage1.Size = new System.Drawing.Size(751, 474);
|
||||
this.tabPage1.TabIndex = 0;
|
||||
this.tabPage1.Text = "歌词转码";
|
||||
this.tabPage1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tabPage2
|
||||
//
|
||||
this.tabPage2.Controls.Add(this.BtnScanMusic);
|
||||
this.tabPage2.Controls.Add(this.table_music);
|
||||
this.tabPage2.Location = new System.Drawing.Point(1, 29);
|
||||
this.tabPage2.Name = "tabPage2";
|
||||
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage2.Size = new System.Drawing.Size(751, 474);
|
||||
this.tabPage2.TabIndex = 1;
|
||||
this.tabPage2.Text = "歌曲情况";
|
||||
this.tabPage2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BtnScanMusic
|
||||
//
|
||||
this.BtnScanMusic.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnScanMusic.Location = new System.Drawing.Point(3, 5);
|
||||
this.BtnScanMusic.Name = "BtnScanMusic";
|
||||
this.BtnScanMusic.Size = new System.Drawing.Size(64, 30);
|
||||
this.BtnScanMusic.TabIndex = 4;
|
||||
this.BtnScanMusic.Text = "扫描";
|
||||
this.BtnScanMusic.UseVisualStyleBackColor = true;
|
||||
this.BtnScanMusic.Click += new System.EventHandler(this.BtnScanMusic_Click);
|
||||
//
|
||||
// table_music
|
||||
//
|
||||
this.table_music.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.table_music.ColumnModel = this.columnModel2;
|
||||
this.table_music.ContextMenuStrip = this.menuMusic;
|
||||
this.table_music.FullRowSelect = true;
|
||||
this.table_music.Location = new System.Drawing.Point(3, 39);
|
||||
this.table_music.Name = "table_music";
|
||||
this.table_music.NoItemsText = "当前列表没有任何项";
|
||||
this.table_music.Size = new System.Drawing.Size(743, 429);
|
||||
this.table_music.TabIndex = 3;
|
||||
this.table_music.TableModel = this.tableModel2;
|
||||
this.table_music.Text = "table2";
|
||||
//
|
||||
// columnModel2
|
||||
//
|
||||
this.columnModel2.Columns.AddRange(new XPTable.Models.Column[] {
|
||||
this.ColMFileName,
|
||||
this.ColSingerPic,
|
||||
this.ColMHaveLrc});
|
||||
//
|
||||
// ColMFileName
|
||||
//
|
||||
this.ColMFileName.Editable = false;
|
||||
this.ColMFileName.Tag = null;
|
||||
this.ColMFileName.Text = "文件名";
|
||||
this.ColMFileName.Width = 200;
|
||||
//
|
||||
// ColSingerPic
|
||||
//
|
||||
this.ColSingerPic.Editable = false;
|
||||
this.ColSingerPic.Tag = null;
|
||||
this.ColSingerPic.Text = "写真数量";
|
||||
//
|
||||
// ColMHaveLrc
|
||||
//
|
||||
this.ColMHaveLrc.Editable = false;
|
||||
this.ColMHaveLrc.Tag = null;
|
||||
this.ColMHaveLrc.Text = "含歌词";
|
||||
this.ColMHaveLrc.Width = 120;
|
||||
//
|
||||
// menuMusic
|
||||
//
|
||||
this.menuMusic.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.打开写真文件夹ToolStripMenuItem,
|
||||
this.定位歌曲文件ToolStripMenuItem,
|
||||
this.定位歌词文件ToolStripMenuItem,
|
||||
this.编辑歌词ToolStripMenuItem});
|
||||
this.menuMusic.Name = "menuMusic";
|
||||
this.menuMusic.Size = new System.Drawing.Size(161, 92);
|
||||
//
|
||||
// 打开写真文件夹ToolStripMenuItem
|
||||
//
|
||||
this.打开写真文件夹ToolStripMenuItem.Name = "打开写真文件夹ToolStripMenuItem";
|
||||
this.打开写真文件夹ToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||
this.打开写真文件夹ToolStripMenuItem.Text = "打开写真文件夹";
|
||||
this.打开写真文件夹ToolStripMenuItem.Click += new System.EventHandler(this.打开写真文件夹ToolStripMenuItem_Click);
|
||||
//
|
||||
// 定位歌曲文件ToolStripMenuItem
|
||||
//
|
||||
this.定位歌曲文件ToolStripMenuItem.Name = "定位歌曲文件ToolStripMenuItem";
|
||||
this.定位歌曲文件ToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||
this.定位歌曲文件ToolStripMenuItem.Text = "定位歌曲文件";
|
||||
this.定位歌曲文件ToolStripMenuItem.Click += new System.EventHandler(this.定位歌曲文件ToolStripMenuItem_Click);
|
||||
//
|
||||
// 定位歌词文件ToolStripMenuItem
|
||||
//
|
||||
this.定位歌词文件ToolStripMenuItem.Name = "定位歌词文件ToolStripMenuItem";
|
||||
this.定位歌词文件ToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||
this.定位歌词文件ToolStripMenuItem.Text = "定位歌词文件";
|
||||
this.定位歌词文件ToolStripMenuItem.Click += new System.EventHandler(this.定位歌词文件ToolStripMenuItem_Click);
|
||||
//
|
||||
// 编辑歌词ToolStripMenuItem
|
||||
//
|
||||
this.编辑歌词ToolStripMenuItem.Name = "编辑歌词ToolStripMenuItem";
|
||||
this.编辑歌词ToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
|
||||
this.编辑歌词ToolStripMenuItem.Text = "编辑歌词";
|
||||
this.编辑歌词ToolStripMenuItem.Click += new System.EventHandler(this.编辑歌词ToolStripMenuItem_Click);
|
||||
//
|
||||
// tabPage3
|
||||
//
|
||||
this.tabPage3.Controls.Add(this.ChkPriority_Krc);
|
||||
this.tabPage3.Controls.Add(this.LblToPath);
|
||||
this.tabPage3.Controls.Add(this.BtnCopy);
|
||||
this.tabPage3.Controls.Add(this.CbbDrive);
|
||||
this.tabPage3.Controls.Add(this.TxtToFolder);
|
||||
this.tabPage3.Controls.Add(this.label3);
|
||||
this.tabPage3.Location = new System.Drawing.Point(1, 29);
|
||||
this.tabPage3.Name = "tabPage3";
|
||||
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage3.Size = new System.Drawing.Size(751, 474);
|
||||
this.tabPage3.TabIndex = 2;
|
||||
this.tabPage3.Text = "同步到U盘";
|
||||
this.tabPage3.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ChkPriority_Krc
|
||||
//
|
||||
this.ChkPriority_Krc.AutoSize = true;
|
||||
this.ChkPriority_Krc.Checked = true;
|
||||
this.ChkPriority_Krc.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.ChkPriority_Krc.Location = new System.Drawing.Point(10, 79);
|
||||
this.ChkPriority_Krc.Name = "ChkPriority_Krc";
|
||||
this.ChkPriority_Krc.Size = new System.Drawing.Size(138, 16);
|
||||
this.ChkPriority_Krc.TabIndex = 9;
|
||||
this.ChkPriority_Krc.Text = "优先复制Krc歌词文件";
|
||||
this.toolTip1.SetToolTip(this.ChkPriority_Krc, "勾选后,如果一首歌存在krc酷狗歌词文件,则进行优先复制,否则复制lrc歌词文件\r\n不勾选,则优先复制lrc歌词文件,如果lrc歌词文件不存在,则复制krc歌词文" +
|
||||
"件。");
|
||||
this.ChkPriority_Krc.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// LblToPath
|
||||
//
|
||||
this.LblToPath.AutoSize = true;
|
||||
this.LblToPath.BackColor = System.Drawing.Color.Transparent;
|
||||
this.LblToPath.ForeColor = System.Drawing.Color.Gray;
|
||||
this.LblToPath.Location = new System.Drawing.Point(8, 56);
|
||||
this.LblToPath.Name = "LblToPath";
|
||||
this.LblToPath.Size = new System.Drawing.Size(65, 12);
|
||||
this.LblToPath.TabIndex = 8;
|
||||
this.LblToPath.Text = "将拷贝到..";
|
||||
//
|
||||
// BtnCopy
|
||||
//
|
||||
this.BtnCopy.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnCopy.Location = new System.Drawing.Point(547, 23);
|
||||
this.BtnCopy.Name = "BtnCopy";
|
||||
this.BtnCopy.Size = new System.Drawing.Size(67, 26);
|
||||
this.BtnCopy.TabIndex = 7;
|
||||
this.BtnCopy.Text = "同步";
|
||||
this.BtnCopy.UseVisualStyleBackColor = true;
|
||||
this.BtnCopy.Click += new System.EventHandler(this.BtnCopy_Click);
|
||||
//
|
||||
// CbbDrive
|
||||
//
|
||||
this.CbbDrive.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||
this.CbbDrive.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CbbDrive.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.CbbDrive.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.CbbDrive.FormattingEnabled = true;
|
||||
this.CbbDrive.Location = new System.Drawing.Point(10, 25);
|
||||
this.CbbDrive.Name = "CbbDrive";
|
||||
this.CbbDrive.Size = new System.Drawing.Size(196, 24);
|
||||
this.CbbDrive.TabIndex = 6;
|
||||
this.CbbDrive.SelectedIndexChanged += new System.EventHandler(this.CbbDrive_SelectedIndexChanged);
|
||||
//
|
||||
// TxtToFolder
|
||||
//
|
||||
this.TxtToFolder.BackColor = System.Drawing.Color.White;
|
||||
this.TxtToFolder.EmptyText = "";
|
||||
this.TxtToFolder.Location = new System.Drawing.Point(212, 24);
|
||||
this.TxtToFolder.MaxLength = 999999999;
|
||||
this.TxtToFolder.Multiline = false;
|
||||
this.TxtToFolder.Name = "TxtToFolder";
|
||||
this.TxtToFolder.OnlyNumeric = false;
|
||||
this.TxtToFolder.PasswordChar = '\0';
|
||||
this.TxtToFolder.ReadOnly = false;
|
||||
this.TxtToFolder.SelectedText = "";
|
||||
this.TxtToFolder.SelectionLength = 0;
|
||||
this.TxtToFolder.SelectionStart = 0;
|
||||
this.TxtToFolder.Size = new System.Drawing.Size(329, 26);
|
||||
this.TxtToFolder.TabIndex = 5;
|
||||
this.TxtToFolder.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
this.TxtToFolder.ToolTip = "";
|
||||
this.TxtToFolder.WordWrap = true;
|
||||
this.TxtToFolder.TextChanged2 += new System.EventHandler(this.TxtToFolder_TextChanged2);
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(8, 9);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(77, 12);
|
||||
this.label3.TabIndex = 4;
|
||||
this.label3.Text = "同步到文件夹";
|
||||
//
|
||||
// tabPage4
|
||||
//
|
||||
this.tabPage4.Controls.Add(this.TxtPreviewRename);
|
||||
this.tabPage4.Controls.Add(this.label7);
|
||||
this.tabPage4.Controls.Add(this.BtnNew);
|
||||
this.tabPage4.Controls.Add(this.BtnRename);
|
||||
this.tabPage4.Controls.Add(this.TxtNFOPath);
|
||||
this.tabPage4.Controls.Add(this.label6);
|
||||
this.tabPage4.Controls.Add(this.TxtSubtitlesPath);
|
||||
this.tabPage4.Controls.Add(this.label5);
|
||||
this.tabPage4.Controls.Add(this.TxtMoviePath);
|
||||
this.tabPage4.Controls.Add(this.label4);
|
||||
this.tabPage4.Controls.Add(this.TxtMovieRename);
|
||||
this.tabPage4.Controls.Add(this.label2);
|
||||
this.tabPage4.Location = new System.Drawing.Point(1, 29);
|
||||
this.tabPage4.Name = "tabPage4";
|
||||
this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage4.Size = new System.Drawing.Size(751, 474);
|
||||
this.tabPage4.TabIndex = 3;
|
||||
this.tabPage4.Text = "电影命名助手";
|
||||
this.tabPage4.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TxtPreviewRename
|
||||
//
|
||||
this.TxtPreviewRename.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.TxtPreviewRename.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
|
||||
this.TxtPreviewRename.EmptyText = "";
|
||||
this.TxtPreviewRename.Location = new System.Drawing.Point(352, 24);
|
||||
this.TxtPreviewRename.MaxLength = 999999999;
|
||||
this.TxtPreviewRename.Multiline = false;
|
||||
this.TxtPreviewRename.Name = "TxtPreviewRename";
|
||||
this.TxtPreviewRename.OnlyNumeric = false;
|
||||
this.TxtPreviewRename.PasswordChar = '\0';
|
||||
this.TxtPreviewRename.ReadOnly = false;
|
||||
this.TxtPreviewRename.SelectedText = "";
|
||||
this.TxtPreviewRename.SelectionLength = 0;
|
||||
this.TxtPreviewRename.SelectionStart = 0;
|
||||
this.TxtPreviewRename.Size = new System.Drawing.Size(390, 26);
|
||||
this.TxtPreviewRename.TabIndex = 16;
|
||||
this.TxtPreviewRename.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
this.TxtPreviewRename.ToolTip = "";
|
||||
this.TxtPreviewRename.WordWrap = true;
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(352, 9);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(29, 12);
|
||||
this.label7.TabIndex = 15;
|
||||
this.label7.Text = "预览";
|
||||
//
|
||||
// BtnNew
|
||||
//
|
||||
this.BtnNew.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.BtnNew.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnNew.Location = new System.Drawing.Point(608, 201);
|
||||
this.BtnNew.Name = "BtnNew";
|
||||
this.BtnNew.Size = new System.Drawing.Size(64, 30);
|
||||
this.BtnNew.TabIndex = 14;
|
||||
this.BtnNew.Text = "新建";
|
||||
this.BtnNew.UseVisualStyleBackColor = true;
|
||||
this.BtnNew.Click += new System.EventHandler(this.BtnNew_Click);
|
||||
//
|
||||
// BtnRename
|
||||
//
|
||||
this.BtnRename.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.BtnRename.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnRename.Location = new System.Drawing.Point(678, 201);
|
||||
this.BtnRename.Name = "BtnRename";
|
||||
this.BtnRename.Size = new System.Drawing.Size(64, 30);
|
||||
this.BtnRename.TabIndex = 13;
|
||||
this.BtnRename.Text = "重命名";
|
||||
this.BtnRename.UseVisualStyleBackColor = true;
|
||||
this.BtnRename.Click += new System.EventHandler(this.BtnRename_Click);
|
||||
//
|
||||
// TxtNFOPath
|
||||
//
|
||||
this.TxtNFOPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.TxtNFOPath.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
|
||||
this.TxtNFOPath.EmptyText = "";
|
||||
this.TxtNFOPath.Location = new System.Drawing.Point(17, 160);
|
||||
this.TxtNFOPath.MaxLength = 999999999;
|
||||
this.TxtNFOPath.Multiline = false;
|
||||
this.TxtNFOPath.Name = "TxtNFOPath";
|
||||
this.TxtNFOPath.OnlyNumeric = false;
|
||||
this.TxtNFOPath.PasswordChar = '\0';
|
||||
this.TxtNFOPath.ReadOnly = false;
|
||||
this.TxtNFOPath.SelectedText = "";
|
||||
this.TxtNFOPath.SelectionLength = 0;
|
||||
this.TxtNFOPath.SelectionStart = 0;
|
||||
this.TxtNFOPath.Size = new System.Drawing.Size(725, 26);
|
||||
this.TxtNFOPath.TabIndex = 12;
|
||||
this.TxtNFOPath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
this.TxtNFOPath.ToolTip = "";
|
||||
this.TxtNFOPath.WordWrap = true;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(15, 145);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(47, 12);
|
||||
this.label6.TabIndex = 11;
|
||||
this.label6.Text = "nfo文件";
|
||||
//
|
||||
// TxtSubtitlesPath
|
||||
//
|
||||
this.TxtSubtitlesPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.TxtSubtitlesPath.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
|
||||
this.TxtSubtitlesPath.EmptyText = "";
|
||||
this.TxtSubtitlesPath.Location = new System.Drawing.Point(17, 114);
|
||||
this.TxtSubtitlesPath.MaxLength = 999999999;
|
||||
this.TxtSubtitlesPath.Multiline = false;
|
||||
this.TxtSubtitlesPath.Name = "TxtSubtitlesPath";
|
||||
this.TxtSubtitlesPath.OnlyNumeric = false;
|
||||
this.TxtSubtitlesPath.PasswordChar = '\0';
|
||||
this.TxtSubtitlesPath.ReadOnly = false;
|
||||
this.TxtSubtitlesPath.SelectedText = "";
|
||||
this.TxtSubtitlesPath.SelectionLength = 0;
|
||||
this.TxtSubtitlesPath.SelectionStart = 0;
|
||||
this.TxtSubtitlesPath.Size = new System.Drawing.Size(725, 26);
|
||||
this.TxtSubtitlesPath.TabIndex = 10;
|
||||
this.TxtSubtitlesPath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
this.TxtSubtitlesPath.ToolTip = "";
|
||||
this.TxtSubtitlesPath.WordWrap = true;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(15, 99);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(53, 12);
|
||||
this.label5.TabIndex = 9;
|
||||
this.label5.Text = "字幕文件";
|
||||
//
|
||||
// TxtMoviePath
|
||||
//
|
||||
this.TxtMoviePath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.TxtMoviePath.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
|
||||
this.TxtMoviePath.EmptyText = "";
|
||||
this.TxtMoviePath.Location = new System.Drawing.Point(17, 68);
|
||||
this.TxtMoviePath.MaxLength = 999999999;
|
||||
this.TxtMoviePath.Multiline = false;
|
||||
this.TxtMoviePath.Name = "TxtMoviePath";
|
||||
this.TxtMoviePath.OnlyNumeric = false;
|
||||
this.TxtMoviePath.PasswordChar = '\0';
|
||||
this.TxtMoviePath.ReadOnly = false;
|
||||
this.TxtMoviePath.SelectedText = "";
|
||||
this.TxtMoviePath.SelectionLength = 0;
|
||||
this.TxtMoviePath.SelectionStart = 0;
|
||||
this.TxtMoviePath.Size = new System.Drawing.Size(725, 26);
|
||||
this.TxtMoviePath.TabIndex = 8;
|
||||
this.TxtMoviePath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
this.TxtMoviePath.ToolTip = "";
|
||||
this.TxtMoviePath.WordWrap = true;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(15, 53);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(53, 12);
|
||||
this.label4.TabIndex = 7;
|
||||
this.label4.Text = "电影文件";
|
||||
//
|
||||
// TxtMovieRename
|
||||
//
|
||||
this.TxtMovieRename.BackColor = System.Drawing.Color.White;
|
||||
this.TxtMovieRename.EmptyText = "";
|
||||
this.TxtMovieRename.Location = new System.Drawing.Point(17, 24);
|
||||
this.TxtMovieRename.MaxLength = 999999999;
|
||||
this.TxtMovieRename.Multiline = false;
|
||||
this.TxtMovieRename.Name = "TxtMovieRename";
|
||||
this.TxtMovieRename.OnlyNumeric = false;
|
||||
this.TxtMovieRename.PasswordChar = '\0';
|
||||
this.TxtMovieRename.ReadOnly = false;
|
||||
this.TxtMovieRename.SelectedText = "";
|
||||
this.TxtMovieRename.SelectionLength = 0;
|
||||
this.TxtMovieRename.SelectionStart = 0;
|
||||
this.TxtMovieRename.Size = new System.Drawing.Size(329, 26);
|
||||
this.TxtMovieRename.TabIndex = 6;
|
||||
this.TxtMovieRename.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
this.TxtMovieRename.ToolTip = "";
|
||||
this.TxtMovieRename.WordWrap = true;
|
||||
this.TxtMovieRename.TextChanged2 += new System.EventHandler(this.TxtMovieRename_TextChanged2);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(15, 9);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(77, 12);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "请输入文件名";
|
||||
//
|
||||
// tabPage5
|
||||
//
|
||||
this.tabPage5.Controls.Add(this.rySearch1);
|
||||
this.tabPage5.Controls.Add(this.BtnKuwo);
|
||||
this.tabPage5.Controls.Add(this.iconViewEx1);
|
||||
this.tabPage5.Controls.Add(this.BtnQQMusic);
|
||||
this.tabPage5.Location = new System.Drawing.Point(1, 29);
|
||||
this.tabPage5.Name = "tabPage5";
|
||||
this.tabPage5.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage5.Size = new System.Drawing.Size(751, 474);
|
||||
this.tabPage5.TabIndex = 4;
|
||||
this.tabPage5.Text = "音乐软件写真";
|
||||
this.tabPage5.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BtnKuwo
|
||||
//
|
||||
this.BtnKuwo.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnKuwo.Location = new System.Drawing.Point(3, 6);
|
||||
this.BtnKuwo.Name = "BtnKuwo";
|
||||
this.BtnKuwo.Size = new System.Drawing.Size(84, 30);
|
||||
this.BtnKuwo.TabIndex = 6;
|
||||
this.BtnKuwo.Text = "刷新酷我";
|
||||
this.BtnKuwo.UseVisualStyleBackColor = true;
|
||||
this.BtnKuwo.Click += new System.EventHandler(this.BtnKuwo_Click);
|
||||
//
|
||||
// iconViewEx1
|
||||
//
|
||||
this.iconViewEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.iconViewEx1.BadgeListImage = ((System.Collections.Generic.List<System.Drawing.Image>)(resources.GetObject("iconViewEx1.BadgeListImage")));
|
||||
this.iconViewEx1.HideSelection = false;
|
||||
this.iconViewEx1.Icon = null;
|
||||
this.iconViewEx1.IconSize = 160;
|
||||
this.iconViewEx1.IsDrawGridLines = false;
|
||||
this.iconViewEx1.IsDrawIcon = true;
|
||||
this.iconViewEx1.Location = new System.Drawing.Point(3, 41);
|
||||
this.iconViewEx1.MultiSelect = false;
|
||||
this.iconViewEx1.Name = "iconViewEx1";
|
||||
this.iconViewEx1.OwnerDraw = true;
|
||||
this.iconViewEx1.SelectedBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(229)))), ((int)(((byte)(195)))), ((int)(((byte)(101)))));
|
||||
this.iconViewEx1.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
|
||||
this.iconViewEx1.SelectedForeColor = System.Drawing.Color.Black;
|
||||
this.iconViewEx1.SelectedStartBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(251)))), ((int)(((byte)(237)))));
|
||||
this.iconViewEx1.Size = new System.Drawing.Size(742, 430);
|
||||
this.iconViewEx1.TabIndex = 5;
|
||||
this.iconViewEx1.TextHeight = 20;
|
||||
this.iconViewEx1.TileSize = new System.Drawing.Size(170, 170);
|
||||
this.iconViewEx1.UseCompatibleStateImageBehavior = false;
|
||||
this.iconViewEx1.View = System.Windows.Forms.View.Tile;
|
||||
this.iconViewEx1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.iconViewEx1_MouseDoubleClick);
|
||||
//
|
||||
// BtnQQMusic
|
||||
//
|
||||
this.BtnQQMusic.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
|
||||
this.BtnQQMusic.Location = new System.Drawing.Point(93, 6);
|
||||
this.BtnQQMusic.Name = "BtnQQMusic";
|
||||
this.BtnQQMusic.Size = new System.Drawing.Size(104, 30);
|
||||
this.BtnQQMusic.TabIndex = 4;
|
||||
this.BtnQQMusic.Text = "打开QQ音乐写真";
|
||||
this.BtnQQMusic.UseVisualStyleBackColor = true;
|
||||
this.BtnQQMusic.Click += new System.EventHandler(this.BtnQQMusic_Click);
|
||||
//
|
||||
// saveFileDialog1
|
||||
//
|
||||
this.saveFileDialog1.Filter = "jpg图片|*.jpg";
|
||||
//
|
||||
// rySearch1
|
||||
//
|
||||
this.rySearch1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
|
||||
this.rySearch1.ButtonRoundBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
|
||||
this.rySearch1.EmptyText = "请输入歌手名称来搜索";
|
||||
this.rySearch1.Location = new System.Drawing.Point(203, 6);
|
||||
this.rySearch1.Name = "rySearch1";
|
||||
this.rySearch1.Size = new System.Drawing.Size(282, 30);
|
||||
this.rySearch1.TabIndex = 7;
|
||||
this.rySearch1.OnSearch += new System.EventHandler(this.rySearch1_OnSearch);
|
||||
//
|
||||
// FrmLrcConvert
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(758, 561);
|
||||
this.Controls.Add(this.chromeTabControl1);
|
||||
this.Controls.Add(this.LblState);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.TxtLrcFolder);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "FrmLrcConvert";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "车机音乐管理助手";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmLrcConvert_FormClosing);
|
||||
this.Load += new System.EventHandler(this.FrmLrcConvert_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.table_lrc)).EndInit();
|
||||
this.chromeTabControl1.ResumeLayout(false);
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.tabPage2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.table_music)).EndInit();
|
||||
this.menuMusic.ResumeLayout(false);
|
||||
this.tabPage3.ResumeLayout(false);
|
||||
this.tabPage3.PerformLayout();
|
||||
this.tabPage4.ResumeLayout(false);
|
||||
this.tabPage4.PerformLayout();
|
||||
this.tabPage5.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private ryControls.TextBoxEx2 TxtLrcFolder;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private XPTable.Models.Table table_lrc;
|
||||
private XPTable.Models.ColumnModel columnModel1;
|
||||
private XPTable.Models.TextColumn ColLrcName;
|
||||
private XPTable.Models.TextColumn ColLrcEncode;
|
||||
private XPTable.Models.TableModel tableModel1;
|
||||
private ryControls.ButtonEx BtnScanLrc;
|
||||
private ryControls.ButtonEx BtnConvert;
|
||||
private XPTable.Models.TextColumn ColPreview;
|
||||
private System.Windows.Forms.Label LblState;
|
||||
private ryControls.ChromeTabControl chromeTabControl1;
|
||||
private System.Windows.Forms.TabPage tabPage1;
|
||||
private System.Windows.Forms.TabPage tabPage2;
|
||||
private XPTable.Models.Table table_music;
|
||||
private XPTable.Models.TableModel tableModel2;
|
||||
private ryControls.ButtonEx BtnScanMusic;
|
||||
private XPTable.Models.ColumnModel columnModel2;
|
||||
private XPTable.Models.TextColumn ColMFileName;
|
||||
private XPTable.Models.TextColumn ColSingerPic;
|
||||
private XPTable.Models.TextColumn ColMHaveLrc;
|
||||
private System.Windows.Forms.ContextMenuStrip menuMusic;
|
||||
private System.Windows.Forms.ToolStripMenuItem 打开写真文件夹ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem 定位歌曲文件ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem 定位歌词文件ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem 编辑歌词ToolStripMenuItem;
|
||||
private System.Windows.Forms.TabPage tabPage3;
|
||||
private ryControls.RyComboBox CbbDrive;
|
||||
private ryControls.TextBoxEx2 TxtToFolder;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private ryControls.ButtonEx BtnCopy;
|
||||
private System.Windows.Forms.Label LblToPath;
|
||||
private System.Windows.Forms.CheckBox ChkPriority_Krc;
|
||||
private System.Windows.Forms.ToolTip toolTip1;
|
||||
private System.Windows.Forms.TabPage tabPage4;
|
||||
private ryControls.ButtonEx BtnNew;
|
||||
private ryControls.ButtonEx BtnRename;
|
||||
private ryControls.TextBoxEx2 TxtNFOPath;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private ryControls.TextBoxEx2 TxtSubtitlesPath;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private ryControls.TextBoxEx2 TxtMoviePath;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private ryControls.TextBoxEx2 TxtMovieRename;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private ryControls.TextBoxEx2 TxtPreviewRename;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.TabPage tabPage5;
|
||||
private ryControls.ButtonEx BtnQQMusic;
|
||||
private ryControls.IconViewEx iconViewEx1;
|
||||
private ryControls.ButtonEx BtnKuwo;
|
||||
private System.Windows.Forms.SaveFileDialog saveFileDialog1;
|
||||
private ryControls.rySearch rySearch1;
|
||||
}
|
||||
}
|
||||
|
||||
911
Source/CarSongManage/CarSongManage/FrmLrcConvert.cs
Normal file
911
Source/CarSongManage/CarSongManage/FrmLrcConvert.cs
Normal file
|
|
@ -0,0 +1,911 @@
|
|||
using Microsoft.Win32;
|
||||
using ryCommon;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Management;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace CarSongManage
|
||||
{
|
||||
public partial class FrmLrcConvert : Form
|
||||
{
|
||||
public FrmLrcConvert()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void BtnScanLrc_Click(object sender, EventArgs e)
|
||||
{
|
||||
var lrc_folder = TxtLrcFolder.Text;
|
||||
if(!System.IO.Directory.Exists(lrc_folder))
|
||||
{
|
||||
MessageBox.Show("歌词路径不存在。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
BtnScanLrc.Text = "扫描中";
|
||||
BtnScanLrc.Enabled = false;
|
||||
table_lrc.TableModel.Rows.Clear();
|
||||
table_lrc.BeginUpdate();
|
||||
var exts = "*.lrc";
|
||||
var ext_split = exts.Split(';');
|
||||
var error_count = 0;
|
||||
var first_error_row = -1;
|
||||
for (int i = 0; i < ext_split.Length; i++)
|
||||
{
|
||||
if (ext_split[i].Length == 0) { continue; }
|
||||
var files = System.IO.Directory.GetFiles(lrc_folder, ext_split[i]);
|
||||
for (int m = 0; m < files.Length; m++)
|
||||
{
|
||||
XPTable.Models.Row itemList = new XPTable.Models.Row()
|
||||
{
|
||||
Tag = files[m]
|
||||
};
|
||||
//需要修改此处
|
||||
itemList.Cells.Add(new XPTable.Models.Cell(System.IO.Path.GetFileName(files[m])));//示例
|
||||
var encode = ryCommon.TxtFileEncoder.GetEncoding(files[m]);
|
||||
itemList.Cells.Add(new XPTable.Models.Cell(encode.WebName));
|
||||
Lrc lrc = Lrc.InitLrc(files[m]);
|
||||
var str = "";
|
||||
var index = 0;
|
||||
foreach (var item in lrc.LrcWord)
|
||||
{
|
||||
index++;
|
||||
str += item.Value+" ";
|
||||
if (index > 5) { break; }
|
||||
}
|
||||
if (encode != Encoding.UTF8) {
|
||||
if (first_error_row == -1)
|
||||
{ first_error_row = table_lrc.RowCount; }
|
||||
error_count++; itemList.ForeColor = Color.Red;
|
||||
}
|
||||
var cell = new XPTable.Models.Cell(str.Trim());
|
||||
cell.ForeColor = Color.Gray;
|
||||
itemList.Cells.Add(cell);
|
||||
tableModel1.Rows.Add(itemList);
|
||||
}
|
||||
}
|
||||
table_lrc.EndUpdate();
|
||||
if (error_count == 0)
|
||||
{ LblState.Text = "状态:扫描完成,没有异常。";LblState.ForeColor = Color.Blue; }
|
||||
else
|
||||
{
|
||||
table_lrc.EnsureVisible(first_error_row, 0);
|
||||
LblState.Text = "状态:扫描完成,共有异常" + error_count + "项。";
|
||||
LblState.ForeColor = Color.Red;
|
||||
}
|
||||
BtnScanLrc.Enabled = true;
|
||||
BtnScanLrc.Text = "扫描";
|
||||
}
|
||||
|
||||
private void BtnConvert_Click(object sender, EventArgs e)
|
||||
{
|
||||
var lrc_folder = TxtLrcFolder.Text;
|
||||
if (!System.IO.Directory.Exists(lrc_folder))
|
||||
{
|
||||
MessageBox.Show("歌词路径不存在。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
var exts = "*.lrc";
|
||||
var ext_split = exts.Split(';');
|
||||
for (int i = 0; i < ext_split.Length; i++)
|
||||
{
|
||||
if (ext_split[i].Length == 0) { continue; }
|
||||
var files = System.IO.Directory.GetFiles(lrc_folder, ext_split[i]);
|
||||
for (int m = 0; m < files.Length; m++)
|
||||
{
|
||||
if (ryCommon.TxtFileEncoder.GetEncoding(files[m]) == Encoding.UTF8) { continue; }
|
||||
ryCommon.RyFiles.WriteAllText(files[m],ryCommon.RyFiles.ReadAllText(files[m]),Encoding.UTF8);
|
||||
}
|
||||
}
|
||||
MessageBox.Show("转换完成。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
BtnScanLrc.PerformClick();
|
||||
}
|
||||
|
||||
private void BtnScanMusic_Click(object sender, EventArgs e)
|
||||
{
|
||||
var lrc_folder = TxtLrcFolder.Text;
|
||||
if (!System.IO.Directory.Exists(lrc_folder))
|
||||
{
|
||||
MessageBox.Show("歌曲文件夹不存在。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
BtnScanMusic.Text = "扫描中";
|
||||
BtnScanMusic.Enabled = false;
|
||||
table_music.TableModel.Rows.Clear();
|
||||
table_music.BeginUpdate();
|
||||
var exts = "*.mp3;*.flac;*.ape;*.aac";
|
||||
var ext_split = exts.Split(';');
|
||||
var error_count = 0;
|
||||
var first_error_row = -1;
|
||||
var lrc_count = 0;
|
||||
var krc_count = 0;
|
||||
var lrc_krc_count = 0;
|
||||
ColMFileName.Text = "文件名(正在读取中)";
|
||||
for (int i = 0; i < ext_split.Length; i++)
|
||||
{
|
||||
if (ext_split[i].Length == 0) { continue; }
|
||||
var files = System.IO.Directory.GetFiles(lrc_folder, ext_split[i]);
|
||||
for (int m = 0; m < files.Length; m++)
|
||||
{
|
||||
var music_path = files[m];
|
||||
var music_folder = System.IO.Path.GetDirectoryName(music_path);
|
||||
var songfilename = System.IO.Path.GetFileNameWithoutExtension(music_path);
|
||||
var songname = "";
|
||||
var singername = "";
|
||||
var songfn_split = songfilename.Split('-');
|
||||
if (songfn_split.Length == 2)
|
||||
{
|
||||
songname = songfn_split[1];
|
||||
singername = songfn_split[0];
|
||||
}
|
||||
else { continue; }
|
||||
string have_lrc = "不含歌词";
|
||||
var lrc_path = music_folder + "\\" + songfilename + ".lrc";
|
||||
if (System.IO.File.Exists(lrc_path))
|
||||
{
|
||||
have_lrc = "Lrc歌词";
|
||||
lrc_count++;
|
||||
}
|
||||
if (System.IO.File.Exists(music_folder + "\\" + songfilename + ".krc"))
|
||||
{
|
||||
lrc_path = music_folder + "\\" + songfilename + ".krc";
|
||||
if(have_lrc != "不含歌词")
|
||||
{ have_lrc += " ";lrc_krc_count++; }
|
||||
else { have_lrc = ""; }
|
||||
have_lrc += "酷狗歌词";
|
||||
krc_count++;
|
||||
}
|
||||
var singer_picount = 0;
|
||||
var music_info = new MusicInfo()
|
||||
{
|
||||
SongPath = music_path,
|
||||
LrcPath = lrc_path,
|
||||
SingerFolder = music_folder + "\\写真\\" + singername
|
||||
};
|
||||
XPTable.Models.Row itemList = new XPTable.Models.Row()
|
||||
{
|
||||
Tag = music_info
|
||||
};
|
||||
//需要修改此处
|
||||
itemList.Cells.Add(new XPTable.Models.Cell(System.IO.Path.GetFileName(music_path)));//示例
|
||||
if(System.IO.Directory.Exists(music_info.SingerFolder))
|
||||
{
|
||||
var singerpic_files = System.IO.Directory.GetFiles(music_info.SingerFolder);
|
||||
if (singerpic_files != null) { singer_picount = singerpic_files.Length; }
|
||||
}
|
||||
var cell_picount = new XPTable.Models.Cell(singer_picount==0?"暂无写真":(singer_picount.ToString()+"个"));
|
||||
cell_picount.ForeColor = singer_picount == 0?Color.Red: Color.Black;
|
||||
itemList.Cells.Add(cell_picount);//示例
|
||||
if(have_lrc=="不含歌词" || singer_picount==0)
|
||||
{
|
||||
error_count++;
|
||||
if (first_error_row == -1)
|
||||
{ first_error_row = table_music.RowCount; }
|
||||
}
|
||||
else
|
||||
{
|
||||
if(have_lrc.IndexOfEx("酷狗")<0)
|
||||
{
|
||||
error_count++;
|
||||
if (first_error_row == -1)
|
||||
{ first_error_row = table_music.RowCount; }
|
||||
}
|
||||
}
|
||||
var cell = new XPTable.Models.Cell(have_lrc);
|
||||
cell.ForeColor = Color.Gray;
|
||||
itemList.Cells.Add(cell);
|
||||
tableModel2.Rows.Add(itemList);
|
||||
}
|
||||
}
|
||||
table_music.EndUpdate();
|
||||
ColMFileName.Text = "文件名("+table_music.TableModel.Rows.Count+")";
|
||||
if (error_count == 0)
|
||||
{ LblState.Text = "状态:扫描完成,没有异常。没有同时具备lrc和krc歌词歌曲共"+ (table_music.TableModel.Rows.Count-lrc_krc_count) + "项"; LblState.ForeColor = Color.Blue; }
|
||||
else
|
||||
{
|
||||
table_music.EnsureVisible(first_error_row, 0);
|
||||
LblState.Text = "状态:扫描完成,共有异常" + error_count + "项。没有具备krc歌词歌曲共" + (table_music.TableModel.Rows.Count - krc_count) + "项";
|
||||
LblState.ForeColor = Color.Red;
|
||||
}
|
||||
BtnScanMusic.Enabled = true;
|
||||
BtnScanMusic.Text = "扫描";
|
||||
}
|
||||
|
||||
private void 打开写真文件夹ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (table_music.SelectedItems.Length == 0) { return; }
|
||||
var musicinfo = (MusicInfo)table_music.SelectedItems[0].Tag;
|
||||
ryCommon.RyFiles.OpenFile(musicinfo.SingerFolder);
|
||||
}
|
||||
private void 定位歌曲文件ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (table_music.SelectedItems.Length == 0) { return; }
|
||||
var musicinfo = (MusicInfo)table_music.SelectedItems[0].Tag;
|
||||
ryCommon.RyFiles.OpenFolderGotoFile(musicinfo.SongPath);
|
||||
}
|
||||
|
||||
private void 定位歌词文件ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (table_music.SelectedItems.Length == 0) { return; }
|
||||
var musicinfo = (MusicInfo)table_music.SelectedItems[0].Tag;
|
||||
ryCommon.RyFiles.OpenFolderGotoFile(musicinfo.LrcPath);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取Notepad++路径
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private string GetNotepadPlusPath()
|
||||
{
|
||||
var path = "";
|
||||
try
|
||||
{
|
||||
RegistryKey LMach = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
|
||||
RegistryKey softwareRun = LMach.OpenSubKey(@"SOFTWARE\Notepad++", true);
|
||||
if (softwareRun.GetValue("") != null)
|
||||
{
|
||||
string notepad_plus_path = softwareRun.GetValue("").ToString() + "\\notepad++.exe";
|
||||
if (System.IO.File.Exists(notepad_plus_path))
|
||||
{
|
||||
path = notepad_plus_path;
|
||||
}
|
||||
}
|
||||
softwareRun.Close();
|
||||
LMach.Close();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
return path;
|
||||
}
|
||||
private void 编辑歌词ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (table_music.SelectedItems.Length == 0) { return; }
|
||||
var musicinfo = (MusicInfo)table_music.SelectedItems[0].Tag;
|
||||
var ext = System.IO.Path.GetExtension(musicinfo.LrcPath).ToLower();
|
||||
if(ext==".lrc")
|
||||
{
|
||||
string notepad_plus_path = GetNotepadPlusPath();
|
||||
if (System.IO.File.Exists(notepad_plus_path))
|
||||
{
|
||||
ryCommon.RyFiles.RunFile(notepad_plus_path, "\"" + musicinfo.LrcPath + "\"");
|
||||
}
|
||||
else
|
||||
{
|
||||
ryCommon.RyFiles.RunFile("notepad.exe",musicinfo.LrcPath);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("暂不支持编辑该歌词。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
//ryCommon.RyFiles.OpenFolderGotoFile(musicinfo.LrcPath);
|
||||
}
|
||||
private IList<Drive_Info> diskList = new List<Drive_Info>();
|
||||
/// 扫描U口设备
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
private void scanUDisk()
|
||||
{
|
||||
diskList.Clear();
|
||||
DriveInfo[] drives = DriveInfo.GetDrives();
|
||||
|
||||
foreach (DriveInfo drive in drives)
|
||||
{
|
||||
if ((drive.DriveType == DriveType.Removable) && !drive.Name.Substring(0, 1).Equals("A"))
|
||||
{
|
||||
try
|
||||
{
|
||||
diskList.Add(new Drive_Info() { Drive = drive.Name, VolumeName = drive.VolumeLabel });
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
MessageBox.Show("当前盘不能正确识别,请重新尝试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
public void GetListDisk()
|
||||
{
|
||||
try
|
||||
{
|
||||
diskList.Clear();
|
||||
List<string> lstDisk = new List<string>();
|
||||
ManagementClass mgtCls = new ManagementClass("Win32_DiskDrive");
|
||||
var disks = mgtCls.GetInstances();
|
||||
foreach (ManagementObject mo in disks)
|
||||
{
|
||||
//if (mo.Properties["InterfaceType"].Value.ToString() != "SCSI"
|
||||
// && mo.Properties["InterfaceType"].Value.ToString() != "USB"
|
||||
// )
|
||||
// continue;
|
||||
if (mo.Properties["MediaType"].Value == null ||
|
||||
(mo.Properties["MediaType"].Value.ToString() != "External hard disk media"
|
||||
&& mo.Properties["MediaType"].Value.ToString() != "Removable Media"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//foreach (var prop in mo.Properties)
|
||||
//{
|
||||
// Console.WriteLine(prop.Name + "\t" + prop.Value);
|
||||
//}
|
||||
|
||||
foreach (ManagementObject diskPartition in mo.GetRelated("Win32_DiskPartition"))
|
||||
{
|
||||
foreach (ManagementBaseObject disk in diskPartition.GetRelated("Win32_LogicalDisk"))
|
||||
{
|
||||
var drive = disk.Properties["Name"].Value.ToString().Substring(0, 1);
|
||||
var VolumeName = disk.Properties["VolumeName"].Value.ToString();
|
||||
diskList.Add(new Drive_Info() { Drive = drive, VolumeName = VolumeName });
|
||||
}
|
||||
}
|
||||
|
||||
//Console.WriteLine("-------------------------------------------------------------------------------------------");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
public const int WM_DEVICECHANGE = 0x219;
|
||||
public const int DBT_DEVICEARRIVAL = 0x8000;
|
||||
public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
try
|
||||
{
|
||||
//WM_DEVICECHANGE,系统硬件改变发出的系统消息
|
||||
if (m.Msg == WM_DEVICECHANGE)
|
||||
{
|
||||
switch (m.WParam.ToInt32())
|
||||
{
|
||||
case WM_DEVICECHANGE:
|
||||
break;
|
||||
//DBT_DEVICEARRIVAL,设备检测结束,并且可以使用
|
||||
case DBT_DEVICEARRIVAL:
|
||||
Thread th2 = new Thread(start2);
|
||||
th2.Start();
|
||||
void start2()
|
||||
{
|
||||
Thread.Sleep(1000);
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
GetListDisk();
|
||||
var select_drive2 = CbbDrive.Text;
|
||||
CbbDrive.Items.Clear();
|
||||
foreach (var s in diskList)
|
||||
{
|
||||
CbbDrive.Items.Add(s);
|
||||
}
|
||||
if (CbbDrive.Items.Contains(select_drive2))
|
||||
{
|
||||
CbbDrive.Text = select_drive2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CbbDrive.Items.Count > 0)
|
||||
{
|
||||
CbbDrive.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
//MessageBox.Show("设备加入");
|
||||
break;
|
||||
//DBT_DEVICEREMOVECOMPLETE,设备卸载或者拔出
|
||||
case DBT_DEVICEREMOVECOMPLETE:
|
||||
Thread th = new Thread(start);
|
||||
th.Start();
|
||||
void start()
|
||||
{
|
||||
Thread.Sleep(1000);
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
GetListDisk();
|
||||
var select_drive2 = CbbDrive.Text;
|
||||
CbbDrive.Items.Clear();
|
||||
foreach (var s in diskList)
|
||||
{
|
||||
CbbDrive.Items.Add(s);
|
||||
}
|
||||
if (CbbDrive.Items.Contains(select_drive2))
|
||||
{
|
||||
CbbDrive.Text = select_drive2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CbbDrive.Items.Count > 0)
|
||||
{
|
||||
CbbDrive.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
//MessageBox.Show("设备移除");
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("当前盘不能正确识别,请重新尝试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
private void FrmLrcConvert_Load(object sender, EventArgs e)
|
||||
{
|
||||
Text = "车机与NAS媒体管家 V"+RySoft.VersionStr;
|
||||
ryCommon.RyFiles.AddDropDrag(TxtMoviePath.Handle).ElevatedDragDrop += ElevatedDragDrop;
|
||||
ryCommon.RyFiles.AddDropDrag(TxtSubtitlesPath.Handle).ElevatedDragDrop += ElevatedDragDrop;
|
||||
ryCommon.RyFiles.AddDropDrag(TxtNFOPath.Handle).ElevatedDragDrop += ElevatedDragDrop;
|
||||
GetListDisk();
|
||||
CbbDrive.Items.Clear();
|
||||
foreach (var s in diskList)
|
||||
{
|
||||
CbbDrive.Items.Add(s);
|
||||
}
|
||||
if (CbbDrive.SelectedIndex == -1 && CbbDrive.Items.Count>0) { CbbDrive.SelectedIndex = 0; }
|
||||
}
|
||||
|
||||
private void ElevatedDragDrop(object sender, ElevatedDragDropArgs e)
|
||||
{
|
||||
for (int i = 0; i < e.Files.Count; i++)
|
||||
{
|
||||
var path = e.Files[i];
|
||||
var ext = System.IO.Path.GetExtension(path).ToLower();
|
||||
if ((";.mp4;.rmvb;.mkv;.avi;").IndexOfEx(";" + ext + ";") >= 0)
|
||||
{
|
||||
TxtMoviePath.Text = path;
|
||||
if (TxtMovieRename.Text.Length == 0)
|
||||
{
|
||||
var rename = System.IO.Path.GetFileNameWithoutExtension(path);
|
||||
rename = rename.Replace(" (1080p x265 EDGE2020)", ".1080p");
|
||||
rename = rename.Replace("Bones (2005) - ", "识骨寻踪.");
|
||||
rename = rename.Replace(" - ", ".");
|
||||
TxtMovieRename.Text = rename;
|
||||
}
|
||||
}
|
||||
else if ((";.ass;.srt;.ssa;.sub;.idx;.vtt;").IndexOfEx(";" + ext + ";") >= 0)
|
||||
{
|
||||
TxtSubtitlesPath.Text = path;
|
||||
}
|
||||
else if (ext == ".nfo")
|
||||
{
|
||||
TxtNFOPath.Text = path;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void SubtitlesPath_ElevatedDragDrop(object sender, ElevatedDragDropArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
private void NFOPath_ElevatedDragDrop(object sender, ElevatedDragDropArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
bool IsRunning = false;
|
||||
bool IsExit = false;
|
||||
/// <summary>
|
||||
/// 是否优先复制krc文件
|
||||
/// </summary>
|
||||
bool Priority_Krc = false;
|
||||
private void BtnCopy_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (IsRunning) { IsExit = true; BtnCopy.Text = "停止中"; return; }
|
||||
if (CbbDrive.SelectedIndex==-1)
|
||||
{
|
||||
MessageBox.Show("请先插入可移动设备(U盘、移动硬盘).", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
switch (MessageBox.Show("是否确定要同步?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
|
||||
{
|
||||
case DialogResult.No:
|
||||
return;
|
||||
}
|
||||
Priority_Krc = ChkPriority_Krc.Checked;
|
||||
var from_folder = TxtLrcFolder.Text;
|
||||
string to_folder;
|
||||
if (TxtToFolder.Text.Length == 0)
|
||||
{
|
||||
to_folder = ((Drive_Info)CbbDrive.SelectedItem).Drive + ":\\" + System.IO.Path.GetFileName(TxtLrcFolder.Text);
|
||||
}
|
||||
else
|
||||
{
|
||||
to_folder = ((Drive_Info)CbbDrive.SelectedItem).Drive + ":\\" + TxtToFolder.Text + "\\" + System.IO.Path.GetFileName(TxtLrcFolder.Text);
|
||||
}
|
||||
if(!Directory.Exists(from_folder))
|
||||
{
|
||||
MessageBox.Show("原文件夹不存在.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
ryCommon.RyFiles.CreateDirectory(to_folder);
|
||||
if (!Directory.Exists(to_folder))
|
||||
{
|
||||
MessageBox.Show("同步到的文件夹不存在.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
IsRunning = true;
|
||||
BtnCopy.Text = "同步中";
|
||||
LblState.Text = "状态:正在进行同步..."; LblState.ForeColor = Color.Blue;
|
||||
Application.DoEvents();
|
||||
Thread th = new Thread(Start);
|
||||
th.IsBackground = true;
|
||||
th.Start();
|
||||
void Start()
|
||||
{
|
||||
SyncFolder(from_folder, to_folder);
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
LblState.Text = "状态:同步完成."; LblState.ForeColor = Color.Blue;
|
||||
BtnCopy.Text = "同步";
|
||||
}));
|
||||
IsRunning = false;
|
||||
}
|
||||
}
|
||||
void SyncFolder(string from_folder,string to_folder)
|
||||
{
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
LblState.Text = "状态:正在进行同步[" + from_folder + "]...";
|
||||
}));
|
||||
try
|
||||
{
|
||||
Sync(from_folder);
|
||||
Sync_Del(to_folder);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
LblState.Text = "状态:同步出错[" + ex.Message + "]...";
|
||||
}));
|
||||
}
|
||||
void Sync(string _folder)
|
||||
{
|
||||
var path_item = _folder.Replace(from_folder,"").Trim('\\');
|
||||
var from_files_list = System.IO.Directory.GetFiles(_folder);
|
||||
var from_dirs_list = System.IO.Directory.GetDirectories(_folder);
|
||||
for (int i = 0; i < from_files_list.Length; i++)
|
||||
{
|
||||
if (IsExit) { break; }
|
||||
var item_path = from_files_list[i];
|
||||
var _path = item_path;
|
||||
var to_path = (to_folder + "\\" + path_item + "\\" + System.IO.Path.GetFileName(item_path)).Replace("\\\\","\\");
|
||||
var ext = System.IO.Path.GetExtension(item_path).ToLower();
|
||||
var filename_noext= System.IO.Path.GetFileNameWithoutExtension(item_path);
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
LblState.Text = "状态:正在进行同步[" + from_folder + "]"+ System.IO.Path.GetFileName(item_path) + "...";
|
||||
}));
|
||||
if (ext==".lrc" || ext==".krc")
|
||||
{
|
||||
if (Priority_Krc && ext == ".lrc") //如果优先是krc歌词文件,而当前是lrc
|
||||
{
|
||||
//如果存在krc文件
|
||||
if(System.IO.File.Exists(System.IO.Path.GetDirectoryName(item_path)+"\\"+ filename_noext+".krc"))
|
||||
{
|
||||
_path = System.IO.Path.GetDirectoryName(item_path) + "\\" + filename_noext + ".krc";
|
||||
to_path= System.IO.Path.GetDirectoryName(to_path) + "\\" + filename_noext + ".krc";
|
||||
if (System.IO.File.Exists(System.IO.Path.GetDirectoryName(to_path) + "\\" + filename_noext + ext))
|
||||
{
|
||||
ryCommon.RyFiles.DeleteFile(System.IO.Path.GetDirectoryName(to_path) + "\\" + filename_noext + ext);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!Priority_Krc && ext == ".krc") //如果优先是lrc歌词文件,而当前是krc
|
||||
{
|
||||
//如果存在krc文件
|
||||
if (System.IO.File.Exists(System.IO.Path.GetDirectoryName(item_path) + "\\" + filename_noext + ".lrc"))
|
||||
{
|
||||
_path = System.IO.Path.GetDirectoryName(item_path) + "\\" + filename_noext + ".lrc";
|
||||
to_path = System.IO.Path.GetDirectoryName(to_path) + "\\" + filename_noext + ".lrc";
|
||||
if (System.IO.File.Exists(System.IO.Path.GetDirectoryName(to_path) + "\\" + filename_noext + ext))
|
||||
{
|
||||
ryCommon.RyFiles.DeleteFile(System.IO.Path.GetDirectoryName(to_path) + "\\" + filename_noext + ext);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var to_size = ryCommon.RyFiles.GetFileSize(to_path);
|
||||
var from_size = ryCommon.RyFiles.GetFileSize(_path);
|
||||
if (to_size != from_size)
|
||||
{
|
||||
ryCommon.RyFiles.CreateDirectory(System.IO.Path.GetDirectoryName(to_path));
|
||||
ryCommon.RyFiles.DeleteFile(to_path);
|
||||
ryCommon.RyFiles.CopyBigFile(_path, to_path);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < from_dirs_list.Length; i++)
|
||||
{
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
LblState.Text = "状态:正在进行同步[" + from_dirs_list[i] + "]...";
|
||||
}));
|
||||
Sync(from_dirs_list[i]);
|
||||
}
|
||||
}
|
||||
void Sync_Del(string _folder)
|
||||
{
|
||||
var path_item = _folder.Replace(to_folder, "").Trim('\\');
|
||||
var to_files_list = System.IO.Directory.GetFiles(_folder);
|
||||
var to_dirs_list = System.IO.Directory.GetDirectories(_folder);
|
||||
for (int i = 0; i < to_files_list.Length; i++)
|
||||
{
|
||||
if (IsExit) { break; }
|
||||
var from_path = from_folder + "\\" + path_item + "\\" + System.IO.Path.GetFileName(to_files_list[i]);
|
||||
if(!System.IO.File.Exists(from_path))
|
||||
{
|
||||
ryCommon.RyFiles.DeleteFile(to_files_list[i]);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < to_dirs_list.Length; i++)
|
||||
{
|
||||
if (IsExit) { break; }
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
LblState.Text = "状态:正在进行删除多余文件[" + to_dirs_list[i] + "]...";
|
||||
}));
|
||||
var from_path = from_folder + "\\" + path_item + "\\" + System.IO.Path.GetFileName(to_dirs_list[i]);
|
||||
if (!System.IO.Directory.Exists(from_path))
|
||||
{
|
||||
ryCommon.RyFiles.DeleteFile(to_dirs_list[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Sync_Del(to_dirs_list[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void ChangedPath()
|
||||
{
|
||||
if (CbbDrive.SelectedIndex == -1)
|
||||
{
|
||||
LblToPath.Text = "无法进行同步."; LblToPath.ForeColor = Color.Red; return;
|
||||
}
|
||||
string to_folder;
|
||||
if (TxtToFolder.Text.Length == 0)
|
||||
{
|
||||
to_folder = ((Drive_Info)CbbDrive.SelectedItem).Drive + ":\\" + System.IO.Path.GetFileName(TxtLrcFolder.Text);
|
||||
}
|
||||
else
|
||||
{
|
||||
to_folder = ((Drive_Info)CbbDrive.SelectedItem).Drive + ":\\" + TxtToFolder.Text + "\\" + System.IO.Path.GetFileName(TxtLrcFolder.Text);
|
||||
}
|
||||
LblToPath.Text = "将同步到 --> " + to_folder; LblToPath.ForeColor = Color.Gray;
|
||||
}
|
||||
private void CbbDrive_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
ChangedPath();
|
||||
}
|
||||
|
||||
private void TxtToFolder_TextChanged2(object sender, EventArgs e)
|
||||
{
|
||||
ChangedPath();
|
||||
}
|
||||
|
||||
private void FrmLrcConvert_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void TxtLrcFolder_TextChanged2(object sender, EventArgs e)
|
||||
{
|
||||
ChangedPath();
|
||||
}
|
||||
|
||||
private void BtnNew_Click(object sender, EventArgs e)
|
||||
{
|
||||
TxtMoviePath.Text = "";
|
||||
TxtPreviewRename.Text = "";
|
||||
TxtMovieRename.Text = "";
|
||||
TxtSubtitlesPath.Text = "";
|
||||
TxtNFOPath.Text = "";
|
||||
}
|
||||
|
||||
private void BtnRename_Click(object sender, EventArgs e)
|
||||
{
|
||||
var rename = TxtMovieRename.Text;
|
||||
var movie_path = TxtMoviePath.Text;
|
||||
var subtitles_path = TxtSubtitlesPath.Text;
|
||||
var nfo_path = TxtNFOPath.Text;
|
||||
if(!RyFiles.IsValidFileName(rename))
|
||||
{
|
||||
MessageBox.Show("无效的文件名。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
if (System.IO.File.Exists(movie_path))
|
||||
{
|
||||
System.IO.File.Move(movie_path, System.IO.Path.GetDirectoryName(movie_path) +"\\"+ rename + System.IO.Path.GetExtension(movie_path));
|
||||
}
|
||||
if (System.IO.File.Exists(subtitles_path))
|
||||
{
|
||||
System.IO.File.Move(subtitles_path, System.IO.Path.GetDirectoryName(subtitles_path) + "\\" + rename + ".中文.default" + System.IO.Path.GetExtension(subtitles_path));
|
||||
}
|
||||
if (System.IO.File.Exists(nfo_path))
|
||||
{
|
||||
System.IO.File.Move(nfo_path, System.IO.Path.GetDirectoryName(nfo_path) + "\\" + rename + System.IO.Path.GetExtension(nfo_path));
|
||||
}
|
||||
MessageBox.Show("重命名成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
private void TxtMovieRename_TextChanged2(object sender, EventArgs e)
|
||||
{
|
||||
TxtPreviewRename.Text = TxtMovieRename.Text;
|
||||
}
|
||||
|
||||
private void BtnQQMusic_Click(object sender, EventArgs e)
|
||||
{
|
||||
ryCommon.RyFiles.OpenFile(@"E:\SysDoc\缓存\QQMusicCache\QQMusicSingerPicture");
|
||||
}
|
||||
|
||||
private void BtnKuwo_Click(object sender, EventArgs e)
|
||||
{
|
||||
var searchtext = rySearch1.Text;
|
||||
var xmllines = RyFiles.ReadAllLines(@"C:\ProgramData\kuwodata\kwmusic2013\Res\cache\DOWNLOAD_LYRIC_PIC\LyricBkConf.xml", Encoding.GetEncoding("gb2312"));
|
||||
iconViewEx1.Items.Clear();
|
||||
var folder = @"C:\ProgramData\kuwodata\kwmusic2013\Res\cache\DOWNLOAD_LYRIC_PIC";
|
||||
var filelist = System.IO.Directory.GetFiles(folder,"*.dat");
|
||||
if (filelist == null) { return; }
|
||||
List<ImgInfo> list=new List<ImgInfo>();
|
||||
for (int i = 0; i < filelist.Length; i++)
|
||||
{
|
||||
var file = filelist[i];
|
||||
var ext = ImgExt.CheckImgFile(file);
|
||||
if (ext == FileExtension.JPG || ext== FileExtension.BMP || ext== FileExtension.PNG)
|
||||
{
|
||||
var filename = System.IO.Path.GetFileName(file);
|
||||
var singerName = "";
|
||||
if(xmllines!=null)
|
||||
{
|
||||
for (int l = 0; l < xmllines.Length; l++)
|
||||
{
|
||||
var line = xmllines[l];
|
||||
if(line.IndexOfEx("\""+filename+";")>0 || line.IndexOfEx(";" + filename + ";") > 0
|
||||
|| line.IndexOfEx(";" + filename + "\"") > 0 || line.IndexOfEx("\"" + filename + "\"") > 0)
|
||||
{
|
||||
singerName = line.GetStr("Artist=\"", "\"");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(searchtext.Length>0)
|
||||
{
|
||||
if (singerName.IndexOfEx(searchtext) < 0) { continue; }
|
||||
}
|
||||
var filedate=RyFiles.GetFileDate(file).LastWriteTime;
|
||||
var image = RyFiles.LoadPicFromFile(file);
|
||||
if (image == null) { continue; }
|
||||
ImgInfo img = new ImgInfo()
|
||||
{
|
||||
Image= image,
|
||||
Text="图"+(i+1),
|
||||
LastWriteTime=filedate,
|
||||
FileName= filename,
|
||||
Singer=singerName,
|
||||
};
|
||||
list.Add(img);
|
||||
}
|
||||
}
|
||||
list.Sort((a, b) =>
|
||||
{
|
||||
return (a.LastWriteTime<b.LastWriteTime)?1:-1;
|
||||
});
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
var img = list[i];
|
||||
var text = img.Singer;
|
||||
var fbl = img.Image.Width + "*" + img.Image.Height;
|
||||
if (img.Image.Width == 1920 && img.Image.Height == 1080)
|
||||
{ fbl= "1080p"; }
|
||||
if (text.Length > 0) {
|
||||
text += "(" + fbl + ")";
|
||||
}
|
||||
else { text = fbl; }
|
||||
ListViewItem item = new ListViewItem(text);
|
||||
item.Tag = img;
|
||||
if (fbl != "1080p")
|
||||
{
|
||||
item.ForeColor = Color.Red;
|
||||
}
|
||||
iconViewEx1.Items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void iconViewEx1_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if(e.Button!= MouseButtons.Left) { return; }
|
||||
if (iconViewEx1.SelectedItems.Count == 0) { return; }
|
||||
if (saveFileDialog1.FileName.Length == 0) { saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); }
|
||||
else
|
||||
{
|
||||
saveFileDialog1.InitialDirectory = "";
|
||||
}
|
||||
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
|
||||
{
|
||||
var path = saveFileDialog1.FileName;
|
||||
if (System.IO.Path.GetExtension(path).ToLower() != ".jpg") { path += ".jpg"; }
|
||||
var item =(ImgInfo) iconViewEx1.SelectedItems[0].Tag;
|
||||
RyFiles.SaveHighQualityImage(item.Image, path);
|
||||
}
|
||||
}
|
||||
|
||||
private void rySearch1_OnSearch(object sender, EventArgs e)
|
||||
{
|
||||
BtnKuwo.PerformClick();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 图片信息
|
||||
/// </summary>
|
||||
public class ImgInfo : ryControls.Interface.IItemInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 歌手名称
|
||||
/// </summary>
|
||||
public string Singer { get; set; }
|
||||
/// <summary>
|
||||
/// 文件名
|
||||
/// </summary>
|
||||
public string FileName { get; set; }
|
||||
/// <summary>
|
||||
/// 最后修改时间
|
||||
/// </summary>
|
||||
public DateTime LastWriteTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图标
|
||||
/// </summary>
|
||||
public Image Image { get; set; }
|
||||
/// <summary>
|
||||
/// 角标序号
|
||||
/// </summary>
|
||||
public int BadgeImageIndex { get; set; } = -1;
|
||||
/// <summary>
|
||||
/// 服务器文件名
|
||||
/// </summary>
|
||||
public string Text { get; set; } = "";
|
||||
}
|
||||
public class MusicInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 写真文件夹
|
||||
/// </summary>
|
||||
public string SingerFolder { get; set; }
|
||||
/// <summary>
|
||||
/// 歌曲路径
|
||||
/// </summary>
|
||||
public string SongPath { get; set; }
|
||||
/// <summary>
|
||||
/// 歌词路径
|
||||
/// </summary>
|
||||
public string LrcPath { get; set; }
|
||||
}
|
||||
public class Drive_Info
|
||||
{
|
||||
/// <summary>
|
||||
/// 盘符
|
||||
/// </summary>
|
||||
public string Drive { get; set; }
|
||||
/// <summary>
|
||||
/// 卷标名
|
||||
/// </summary>
|
||||
public string VolumeName { get; set; }
|
||||
public override string ToString()
|
||||
{
|
||||
return Drive+":\\("+ VolumeName + ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
1289
Source/CarSongManage/CarSongManage/FrmLrcConvert.resx
Normal file
1289
Source/CarSongManage/CarSongManage/FrmLrcConvert.resx
Normal file
File diff suppressed because it is too large
Load Diff
93
Source/CarSongManage/CarSongManage/ImgExt.cs
Normal file
93
Source/CarSongManage/CarSongManage/ImgExt.cs
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CarSongManage
|
||||
{
|
||||
class ImgExt
|
||||
{
|
||||
public static FileExtension CheckImgFile(string fileName)
|
||||
{
|
||||
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
|
||||
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
|
||||
string fileType = string.Empty;
|
||||
FileExtension extension;
|
||||
try
|
||||
{
|
||||
byte data = br.ReadByte();
|
||||
fileType += data.ToString();
|
||||
data = br.ReadByte();
|
||||
fileType += data.ToString();
|
||||
try
|
||||
{
|
||||
extension = (FileExtension)Enum.Parse(typeof(FileExtension), fileType);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
extension = FileExtension.VALIDFILE;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
extension = FileExtension.VALIDFILE;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (fs != null)
|
||||
{
|
||||
fs.Close();
|
||||
br.Close();
|
||||
}
|
||||
}
|
||||
return extension;
|
||||
}
|
||||
}
|
||||
public enum FileExtension
|
||||
{
|
||||
JPG = 255216,
|
||||
GIF = 7173,
|
||||
PNG = 13780,
|
||||
SWF = 6787,
|
||||
RAR = 8297,
|
||||
ZIP = 8075,
|
||||
_7Z = 55122,
|
||||
WebP = 8273,
|
||||
BMP = 6677,
|
||||
VALIDFILE = 9999999
|
||||
// 255216 jpg;
|
||||
|
||||
// 7173 gif;
|
||||
|
||||
// 6677 bmp,
|
||||
|
||||
// 13780 png;
|
||||
|
||||
// 6787 swf
|
||||
|
||||
// 7790 exe dll,
|
||||
|
||||
// 8297 rar
|
||||
|
||||
// 8075 zip
|
||||
|
||||
// 55122 7z
|
||||
|
||||
// 6063 xml
|
||||
|
||||
// 6033 html
|
||||
|
||||
// 239187 aspx
|
||||
|
||||
// 117115 cs
|
||||
|
||||
// 119105 js
|
||||
|
||||
// 102100 txt
|
||||
|
||||
// 255254 sql
|
||||
}
|
||||
}
|
||||
111
Source/CarSongManage/CarSongManage/Lrc.cs
Normal file
111
Source/CarSongManage/CarSongManage/Lrc.cs
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace CarSongManage
|
||||
{
|
||||
public class Lrc
|
||||
{
|
||||
/// <summary>
|
||||
/// 歌曲
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
/// <summary>
|
||||
/// 艺术家
|
||||
/// </summary>
|
||||
public string Artist { get; set; }
|
||||
/// <summary>
|
||||
/// 专辑
|
||||
/// </summary>
|
||||
public string Album { get; set; }
|
||||
/// <summary>
|
||||
/// 歌词作者
|
||||
/// </summary>
|
||||
public string LrcBy { get; set; }
|
||||
/// <summary>
|
||||
/// 偏移量
|
||||
/// </summary>
|
||||
public string Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 歌词
|
||||
/// </summary>
|
||||
public Dictionary<double, string> LrcWord = new Dictionary<double, string>();
|
||||
|
||||
/// <summary>
|
||||
/// 获得歌词信息
|
||||
/// </summary>
|
||||
/// <param name="LrcPath">歌词路径</param>
|
||||
/// <returns>返回歌词信息(Lrc实例)</returns>
|
||||
public static Lrc InitLrc(string LrcPath)
|
||||
{
|
||||
Lrc lrc = new Lrc();
|
||||
Dictionary<double, string> dicword = new Dictionary<double, string>();
|
||||
using (FileStream fs = new FileStream(LrcPath, FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||
{
|
||||
string line;
|
||||
using (StreamReader sr = new StreamReader(fs, Encoding.UTF8))
|
||||
{
|
||||
while ((line = sr.ReadLine()) != null)
|
||||
{
|
||||
if (line.StartsWith("[ti:"))
|
||||
{
|
||||
lrc.Title = SplitInfo(line);
|
||||
}
|
||||
else if (line.StartsWith("[ar:"))
|
||||
{
|
||||
lrc.Artist = SplitInfo(line);
|
||||
}
|
||||
else if (line.StartsWith("[al:"))
|
||||
{
|
||||
lrc.Album = SplitInfo(line);
|
||||
}
|
||||
else if (line.StartsWith("[by:"))
|
||||
{
|
||||
lrc.LrcBy = SplitInfo(line);
|
||||
}
|
||||
else if (line.StartsWith("[offset:"))
|
||||
{
|
||||
lrc.Offset = SplitInfo(line);
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
Regex regexword = new Regex(@".*\](.*)");
|
||||
Match mcw = regexword.Match(line);
|
||||
string word = mcw.Groups[1].Value;
|
||||
Regex regextime = new Regex(@"\[([0-9.:]*)\]", RegexOptions.Compiled);
|
||||
MatchCollection mct = regextime.Matches(line);
|
||||
foreach (Match item in mct)
|
||||
{
|
||||
double time = TimeSpan.Parse("00:" + item.Groups[1].Value).TotalSeconds;
|
||||
dicword.Add(time, word);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lrc.LrcWord = dicword.OrderBy(t => t.Key).ToDictionary(t => t.Key, p => p.Value);
|
||||
return lrc;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 处理信息(私有方法)
|
||||
/// </summary>
|
||||
/// <param name="line"></param>
|
||||
/// <returns>返回基础信息</returns>
|
||||
static string SplitInfo(string line)
|
||||
{
|
||||
return line.Substring(line.IndexOf(":") + 1).TrimEnd(']');
|
||||
}
|
||||
}
|
||||
}
|
||||
35
Source/CarSongManage/CarSongManage/Program.cs
Normal file
35
Source/CarSongManage/CarSongManage/Program.cs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace CarSongManage
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// 应用程序的主入口点。
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||
Application.ThreadException += Application_ThreadException;
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new FrmLrcConvert());
|
||||
}
|
||||
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = e.ExceptionObject as Exception;
|
||||
MessageBox.Show(string.Format("捕获到未处理异常:{0}\r\n异常信息:{1}\r\n异常堆栈:{2}\r\nCLR即将退出:{3}", ex.GetType(), ex.Message, ex.StackTrace, e.IsTerminating));
|
||||
//ryCommon.RyFiles.WriteAllText(Application.StartupPath + "\\错误.txt", DateTime.Now.ToString() + "\r\n\r\n错误描述:" + ex.Message + "\r\n\r\n异常堆栈:" + ex.StackTrace + "\r\n\r\n异常方法:" + ex.TargetSite, Encoding.UTF8);
|
||||
}
|
||||
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = e.Exception;
|
||||
MessageBox.Show(string.Format("捕获到未处理异常:{0}\r\n异常信息:{1}\r\n异常堆栈:{2}", ex.GetType(), ex.Message, ex.StackTrace));
|
||||
//ryCommon.RyFiles.WriteAllText(Application.StartupPath + "\\线程错误.txt",DateTime.Now.ToString()+ "\r\n\r\n错误描述:" + ex.Message + "\r\n\r\n异常堆栈:" + ex.StackTrace + "\r\n\r\n异常方法:" + ex.TargetSite, Encoding.UTF8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("车机与NAS媒体管家")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("车机与NAS媒体管家")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("ca3d8090-8a4e-4f23-9264-6b41849495ea")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.2202.1201")]
|
||||
[assembly: AssemblyFileVersion("1.0.2202.1201")]
|
||||
63
Source/CarSongManage/CarSongManage/Properties/Resources.Designer.cs
generated
Normal file
63
Source/CarSongManage/CarSongManage/Properties/Resources.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace CarSongManage.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||
/// </summary>
|
||||
// 此类是由 StronglyTypedResourceBuilder
|
||||
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CarSongManage.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
117
Source/CarSongManage/CarSongManage/Properties/Resources.resx
Normal file
117
Source/CarSongManage/CarSongManage/Properties/Resources.resx
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
26
Source/CarSongManage/CarSongManage/Properties/Settings.Designer.cs
generated
Normal file
26
Source/CarSongManage/CarSongManage/Properties/Settings.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace CarSongManage.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.2.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
3
Source/CarSongManage/CarSongManage/app.config
Normal file
3
Source/CarSongManage/CarSongManage/app.config
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>
|
||||
78
Source/CarSongManage/CarSongManage/app.manifest
Normal file
78
Source/CarSongManage/CarSongManage/app.manifest
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- UAC 清单选项
|
||||
如果想要更改 Windows 用户帐户控制级别,请使用
|
||||
以下节点之一替换 requestedExecutionLevel 节点。n
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
|
||||
如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
|
||||
元素。
|
||||
-->
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
|
||||
Windows 版本的列表。取消评论适当的元素,
|
||||
Windows 将自动选择最兼容的环境。 -->
|
||||
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
|
||||
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
|
||||
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
|
||||
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
|
||||
|
||||
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
|
||||
<!--
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
-->
|
||||
|
||||
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
</assembly>
|
||||
BIN
Source/CarSongManage/CarSongManage/bin/Release/CarSongManage.exe
Normal file
BIN
Source/CarSongManage/CarSongManage/bin/Release/CarSongManage.exe
Normal file
Binary file not shown.
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>
|
||||
BIN
Source/CarSongManage/CarSongManage/bin/Release/MyDb.dll
Normal file
BIN
Source/CarSongManage/CarSongManage/bin/Release/MyDb.dll
Normal file
Binary file not shown.
10623
Source/CarSongManage/CarSongManage/bin/Release/MyDb.xml
Normal file
10623
Source/CarSongManage/CarSongManage/bin/Release/MyDb.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Source/CarSongManage/CarSongManage/bin/Release/XPTable.dll
Normal file
BIN
Source/CarSongManage/CarSongManage/bin/Release/XPTable.dll
Normal file
Binary file not shown.
14840
Source/CarSongManage/CarSongManage/bin/Release/XPTable.xml
Normal file
14840
Source/CarSongManage/CarSongManage/bin/Release/XPTable.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Source/CarSongManage/CarSongManage/bin/Release/ryControls.dll
Normal file
BIN
Source/CarSongManage/CarSongManage/bin/Release/ryControls.dll
Normal file
Binary file not shown.
31913
Source/CarSongManage/CarSongManage/bin/Release/ryControls.xml
Normal file
31913
Source/CarSongManage/CarSongManage/bin/Release/ryControls.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Source/CarSongManage/CarSongManage/music.ico
Normal file
BIN
Source/CarSongManage/CarSongManage/music.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 66 KiB |
Loading…
Reference in New Issue
Block a user