初始版本
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