创建
This commit is contained in:
commit
2f9aff990f
63
.gitattributes
vendored
Normal file
63
.gitattributes
vendored
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
###############################################################################
|
||||||
|
# Set default behavior to automatically normalize line endings.
|
||||||
|
###############################################################################
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set default behavior for command prompt diff.
|
||||||
|
#
|
||||||
|
# This is need for earlier builds of msysgit that does not have it on by
|
||||||
|
# default for csharp files.
|
||||||
|
# Note: This is only used by command line
|
||||||
|
###############################################################################
|
||||||
|
#*.cs diff=csharp
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set the merge driver for project and solution files
|
||||||
|
#
|
||||||
|
# Merging from the command prompt will add diff markers to the files if there
|
||||||
|
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||||
|
# the diff markers are never inserted). Diff markers may cause the following
|
||||||
|
# file extensions to fail to load in VS. An alternative would be to treat
|
||||||
|
# these files as binary and thus will always conflict and require user
|
||||||
|
# intervention with every merge. To do so, just uncomment the entries below
|
||||||
|
###############################################################################
|
||||||
|
#*.sln merge=binary
|
||||||
|
#*.csproj merge=binary
|
||||||
|
#*.vbproj merge=binary
|
||||||
|
#*.vcxproj merge=binary
|
||||||
|
#*.vcproj merge=binary
|
||||||
|
#*.dbproj merge=binary
|
||||||
|
#*.fsproj merge=binary
|
||||||
|
#*.lsproj merge=binary
|
||||||
|
#*.wixproj merge=binary
|
||||||
|
#*.modelproj merge=binary
|
||||||
|
#*.sqlproj merge=binary
|
||||||
|
#*.wwaproj merge=binary
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# behavior for image files
|
||||||
|
#
|
||||||
|
# image files are treated as binary by default.
|
||||||
|
###############################################################################
|
||||||
|
#*.jpg binary
|
||||||
|
#*.png binary
|
||||||
|
#*.gif binary
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# diff behavior for common document formats
|
||||||
|
#
|
||||||
|
# Convert binary document formats to text before diffing them. This feature
|
||||||
|
# is only available from the command line. Turn it on by uncommenting the
|
||||||
|
# entries below.
|
||||||
|
###############################################################################
|
||||||
|
#*.doc diff=astextplain
|
||||||
|
#*.DOC diff=astextplain
|
||||||
|
#*.docx diff=astextplain
|
||||||
|
#*.DOCX diff=astextplain
|
||||||
|
#*.dot diff=astextplain
|
||||||
|
#*.DOT diff=astextplain
|
||||||
|
#*.pdf diff=astextplain
|
||||||
|
#*.PDF diff=astextplain
|
||||||
|
#*.rtf diff=astextplain
|
||||||
|
#*.RTF diff=astextplain
|
189
.gitignore
vendored
Normal file
189
.gitignore
vendored
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
x64/
|
||||||
|
build/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
|
||||||
|
# Roslyn cache directories
|
||||||
|
*.ide/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
#NUNIT
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_i.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# JustCode is a .NET coding addin-in
|
||||||
|
.JustCode
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
## TODO: Comment the next line if you want to checkin your
|
||||||
|
## web deploy settings but do note that will include unencrypted
|
||||||
|
## passwords
|
||||||
|
#*.pubxml
|
||||||
|
|
||||||
|
# NuGet Packages Directory
|
||||||
|
packages/*
|
||||||
|
## TODO: If the tool you use requires repositories.config
|
||||||
|
## uncomment the next line
|
||||||
|
#!packages/repositories.config
|
||||||
|
|
||||||
|
# Enable "build/" folder in the NuGet Packages folder since
|
||||||
|
# NuGet packages use it for MSBuild targets.
|
||||||
|
# This line needs to be after the ignore of the build folder
|
||||||
|
# (and the packages folder if the line above has been uncommented)
|
||||||
|
!packages/build/
|
||||||
|
|
||||||
|
# Windows Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Windows Store app package directory
|
||||||
|
AppPackages/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
sql/
|
||||||
|
*.Cache
|
||||||
|
ClientBin/
|
||||||
|
[Ss]tyle[Cc]op.*
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# LightSwitch generated files
|
||||||
|
GeneratedArtifacts/
|
||||||
|
_Pvt_Extensions/
|
||||||
|
ModelManifest.xml
|
22
AutoPackage.sln
Normal file
22
AutoPackage.sln
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 2013
|
||||||
|
VisualStudioVersion = 12.0.31101.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoPackage", "AutoPekage\AutoPackage.csproj", "{2BFA2AB8-A979-4C70-B1E7-5FCA3DEFFD46}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{2BFA2AB8-A979-4C70-B1E7-5FCA3DEFFD46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2BFA2AB8-A979-4C70-B1E7-5FCA3DEFFD46}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2BFA2AB8-A979-4C70-B1E7-5FCA3DEFFD46}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2BFA2AB8-A979-4C70-B1E7-5FCA3DEFFD46}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
152
AutoPekage/AutoPackage.csproj
Normal file
152
AutoPekage/AutoPackage.csproj
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="12.0" DefaultTargets="Build" 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>{2BFA2AB8-A979-4C70-B1E7-5FCA3DEFFD46}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>AutoPackage</RootNamespace>
|
||||||
|
<AssemblyName>AutoPackage</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
<NuGetPackageImportStamp>13a4b414</NuGetPackageImportStamp>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</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>Folder_Zip_128px_1163283_easyicon.net.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="LiteDB">
|
||||||
|
<HintPath>..\packages\LiteDB.2.0.4\lib\net35\LiteDB.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="SharpCompress, Version=0.14.1.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\SharpCompress.0.14.1\lib\net40\SharpCompress.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="frmAddSender.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmAddSender.Designer.cs">
|
||||||
|
<DependentUpon>frmAddSender.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Form1.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Form1.Designer.cs">
|
||||||
|
<DependentUpon>Form1.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmPackage.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmPackage.Designer.cs">
|
||||||
|
<DependentUpon>frmPackage.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmSettings.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmSettings.Designer.cs">
|
||||||
|
<DependentUpon>frmSettings.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmStmpServer.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmStmpServer.Designer.cs">
|
||||||
|
<DependentUpon>frmStmpServer.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="GetFileIcon.cs" />
|
||||||
|
<Compile Include="LiteDbHelper.cs" />
|
||||||
|
<Compile Include="MailToDao.cs" />
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="SenderDao.cs" />
|
||||||
|
<Compile Include="SettingsDao.cs" />
|
||||||
|
<Compile Include="StmpServerDao.cs" />
|
||||||
|
<Compile Include="ZipControl.cs" />
|
||||||
|
<EmbeddedResource Include="frmAddSender.resx">
|
||||||
|
<DependentUpon>frmAddSender.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Form1.resx">
|
||||||
|
<DependentUpon>Form1.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmPackage.resx">
|
||||||
|
<DependentUpon>frmPackage.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmSettings.resx">
|
||||||
|
<DependentUpon>frmSettings.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmStmpServer.resx">
|
||||||
|
<DependentUpon>frmStmpServer.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="packages.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="FodyWeavers.xml" />
|
||||||
|
<Content Include="Folder_Zip_128px_1163283_easyicon.net.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<Import Project="..\packages\Fody.1.28.3\build\Fody.targets" Condition="Exists('..\packages\Fody.1.28.3\build\Fody.targets')" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。启用“NuGet 程序包还原”可下载这些程序包。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\Fody.1.28.3\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.1.28.3\build\Fody.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
5
AutoPekage/FodyWeavers.xml
Normal file
5
AutoPekage/FodyWeavers.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Weavers>
|
||||||
|
<Costura/>
|
||||||
|
|
||||||
|
</Weavers>
|
BIN
AutoPekage/Folder_Zip_128px_1163283_easyicon.net.ico
Normal file
BIN
AutoPekage/Folder_Zip_128px_1163283_easyicon.net.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
169
AutoPekage/Form1.Designer.cs
generated
Normal file
169
AutoPekage/Form1.Designer.cs
generated
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
partial class Form1
|
||||||
|
{
|
||||||
|
/// <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(Form1));
|
||||||
|
this.lvFileList = new System.Windows.Forms.ListView();
|
||||||
|
this.cmsFileContextMenu = 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.ilFileList = new System.Windows.Forms.ImageList(this.components);
|
||||||
|
this.btnStart = new System.Windows.Forms.Button();
|
||||||
|
this.btnExit = new System.Windows.Forms.Button();
|
||||||
|
this.btnSettings = new System.Windows.Forms.Button();
|
||||||
|
this.cmsFileContextMenu.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// lvFileList
|
||||||
|
//
|
||||||
|
this.lvFileList.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.lvFileList.ContextMenuStrip = this.cmsFileContextMenu;
|
||||||
|
this.lvFileList.LargeImageList = this.ilFileList;
|
||||||
|
this.lvFileList.Location = new System.Drawing.Point(0, 1);
|
||||||
|
this.lvFileList.Name = "lvFileList";
|
||||||
|
this.lvFileList.Size = new System.Drawing.Size(452, 328);
|
||||||
|
this.lvFileList.TabIndex = 0;
|
||||||
|
this.lvFileList.UseCompatibleStateImageBehavior = false;
|
||||||
|
this.lvFileList.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.lvFileList_ItemCheck);
|
||||||
|
this.lvFileList.DoubleClick += new System.EventHandler(this.lvFileList_DoubleClick);
|
||||||
|
//
|
||||||
|
// cmsFileContextMenu
|
||||||
|
//
|
||||||
|
this.cmsFileContextMenu.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.cmsFileContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.打开文件ToolStripMenuItem,
|
||||||
|
this.移除文件ToolStripMenuItem,
|
||||||
|
this.打开所在目录ToolStripMenuItem});
|
||||||
|
this.cmsFileContextMenu.Name = "cmsFileContextMenu";
|
||||||
|
this.cmsFileContextMenu.Size = new System.Drawing.Size(149, 70);
|
||||||
|
this.cmsFileContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.cmsFileContextMenu_Opening);
|
||||||
|
//
|
||||||
|
// 打开文件ToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.打开文件ToolStripMenuItem.Name = "打开文件ToolStripMenuItem";
|
||||||
|
this.打开文件ToolStripMenuItem.Size = new System.Drawing.Size(148, 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(148, 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(148, 22);
|
||||||
|
this.打开所在目录ToolStripMenuItem.Text = "打开所在目录";
|
||||||
|
this.打开所在目录ToolStripMenuItem.Click += new System.EventHandler(this.打开所在目录ToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// ilFileList
|
||||||
|
//
|
||||||
|
this.ilFileList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
|
||||||
|
this.ilFileList.ImageSize = new System.Drawing.Size(48, 48);
|
||||||
|
this.ilFileList.TransparentColor = System.Drawing.Color.Transparent;
|
||||||
|
//
|
||||||
|
// btnStart
|
||||||
|
//
|
||||||
|
this.btnStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.btnStart.Location = new System.Drawing.Point(41, 347);
|
||||||
|
this.btnStart.Name = "btnStart";
|
||||||
|
this.btnStart.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnStart.TabIndex = 2;
|
||||||
|
this.btnStart.Text = "开始打包";
|
||||||
|
this.btnStart.UseVisualStyleBackColor = true;
|
||||||
|
this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
|
||||||
|
//
|
||||||
|
// btnExit
|
||||||
|
//
|
||||||
|
this.btnExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnExit.Location = new System.Drawing.Point(321, 347);
|
||||||
|
this.btnExit.Name = "btnExit";
|
||||||
|
this.btnExit.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnExit.TabIndex = 3;
|
||||||
|
this.btnExit.Text = "退出";
|
||||||
|
this.btnExit.UseVisualStyleBackColor = true;
|
||||||
|
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
|
||||||
|
//
|
||||||
|
// btnSettings
|
||||||
|
//
|
||||||
|
this.btnSettings.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
|
||||||
|
this.btnSettings.Location = new System.Drawing.Point(183, 347);
|
||||||
|
this.btnSettings.Name = "btnSettings";
|
||||||
|
this.btnSettings.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnSettings.TabIndex = 4;
|
||||||
|
this.btnSettings.Text = "设置";
|
||||||
|
this.btnSettings.UseVisualStyleBackColor = true;
|
||||||
|
this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click);
|
||||||
|
//
|
||||||
|
// Form1
|
||||||
|
//
|
||||||
|
this.AllowDrop = true;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(452, 382);
|
||||||
|
this.Controls.Add(this.btnSettings);
|
||||||
|
this.Controls.Add(this.btnExit);
|
||||||
|
this.Controls.Add(this.btnStart);
|
||||||
|
this.Controls.Add(this.lvFileList);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.KeyPreview = true;
|
||||||
|
this.Name = "Form1";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "文件修改打包";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
|
||||||
|
this.Load += new System.EventHandler(this.Form1_Load);
|
||||||
|
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||||
|
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||||
|
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
|
||||||
|
this.cmsFileContextMenu.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.ListView lvFileList;
|
||||||
|
private System.Windows.Forms.ImageList ilFileList;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip cmsFileContextMenu;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem 打开文件ToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem 移除文件ToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem 打开所在目录ToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.Button btnStart;
|
||||||
|
private System.Windows.Forms.Button btnExit;
|
||||||
|
private System.Windows.Forms.Button btnSettings;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
270
AutoPekage/Form1.cs
Normal file
270
AutoPekage/Form1.cs
Normal file
@ -0,0 +1,270 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public partial class Form1 : Form
|
||||||
|
{
|
||||||
|
|
||||||
|
public static string tempPath = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.Combine("AutoPackage", "tempfile"));
|
||||||
|
//Dictionary<string, int>
|
||||||
|
public Form1()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Form1_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var dao = LiteDbHelper.Settings;
|
||||||
|
if (Directory.Exists(tempPath) &&
|
||||||
|
((dao.AskAutoLoadFile && MessageBox.Show("发现临时目录存在文件,是否自动加载内容?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) ||
|
||||||
|
(!dao.AskAutoLoadFile && dao.AutoLoadFile == 1)))
|
||||||
|
{
|
||||||
|
var files = Directory.GetFiles(tempPath);
|
||||||
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
AddNewFile(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Form1_DragEnter(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||||
|
{
|
||||||
|
e.Effect = DragDropEffects.Link;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e.Effect = DragDropEffects.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Form1_DragDrop(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
var dropList = (System.Array)e.Data.GetData(DataFormats.FileDrop);
|
||||||
|
foreach (var item in dropList)
|
||||||
|
{
|
||||||
|
string filePath = item.ToString();
|
||||||
|
AddDropFile(filePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddDropFile(string filePath)
|
||||||
|
{
|
||||||
|
FileInfo fi = new FileInfo(filePath);
|
||||||
|
if (fi.Attributes == FileAttributes.Directory)
|
||||||
|
{
|
||||||
|
var files = Directory.EnumerateFiles(filePath, "*", SearchOption.AllDirectories);
|
||||||
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
AddDropFile(file);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string extension = Path.GetExtension(filePath);
|
||||||
|
if (extension.ToLower() == ".zip" || extension.ToLower() == ".rar" || extension.ToLower() == ".7z" || extension.ToLower() == ".gzip" || extension.ToLower() == ".tar")
|
||||||
|
{
|
||||||
|
ZipControl.NewFileDecompress += AddNewFile;
|
||||||
|
//ZipControl.UnZip(filePath, "");
|
||||||
|
ZipControl.FileWillDecompress += ZipControl_FileWillDecompress;
|
||||||
|
ZipControl.UnCompress(filePath, tempPath);
|
||||||
|
ZipControl.FileWillDecompress -= ZipControl_FileWillDecompress;
|
||||||
|
ZipControl.NewFileDecompress -= AddNewFile;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var itemlist = lvFileList.Items.Cast<ListViewItem>().Where(x => Path.GetFileName(x.Tag as string) == Path.GetFileName(filePath));
|
||||||
|
if (itemlist.Count() > 0)
|
||||||
|
{
|
||||||
|
if (itemlist.First().Tag as string == filePath)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (MessageBox.Show(Path.GetFileName(filePath) + "已存在并且与目前列表中文件不同,是否替换?"
|
||||||
|
, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
AddNewFile(filePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddNewFile(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddNewFile(string filePath)
|
||||||
|
{
|
||||||
|
var itemlist = lvFileList.Items.Cast<ListViewItem>().Where(x => Path.GetFileName(x.Tag as string) == Path.GetFileName(filePath));
|
||||||
|
if (itemlist.Count() > 0)
|
||||||
|
{
|
||||||
|
itemlist.First().Tag = filePath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ilFileList.Images.Add(GetIcon.GetFileIcon(filePath));
|
||||||
|
string filename = Path.GetFileName(filePath);
|
||||||
|
var item = new ListViewItem(filename);
|
||||||
|
item.ImageIndex = ilFileList.Images.Count - 1;
|
||||||
|
item.Tag = filePath;
|
||||||
|
lvFileList.Items.Add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
var dao = LiteDbHelper.Settings;
|
||||||
|
if (Directory.Exists(tempPath) &&
|
||||||
|
((dao.AskAutoDeleteFile && MessageBox.Show("发现临时目录存在文件,是否删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)||
|
||||||
|
(!dao.AskAutoDeleteFile && dao.AutoDeleteFile == 1)))
|
||||||
|
{
|
||||||
|
Directory.Delete(tempPath, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cmsFileContextMenu_Opening(object sender, CancelEventArgs e)
|
||||||
|
{
|
||||||
|
bool showMenu = false;
|
||||||
|
|
||||||
|
//要判断是否点击项,控件里至少要有一个项
|
||||||
|
if (this.lvFileList.Items.Count > 0)
|
||||||
|
{
|
||||||
|
Point point = this.lvFileList.PointToClient(MousePosition);
|
||||||
|
ListViewHitTestInfo hitTest = this.lvFileList.HitTest(point);
|
||||||
|
|
||||||
|
if ( hitTest.Item != null)
|
||||||
|
{//点击的不是列且不是空白区域
|
||||||
|
showMenu = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
e.Cancel = !showMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void 打开文件ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach (ListViewItem item in lvFileList.SelectedItems)
|
||||||
|
{
|
||||||
|
Process.Start(item.Tag as string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void 移除文件ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (ListViewItem item in lvFileList.SelectedItems)
|
||||||
|
{
|
||||||
|
lvFileList.Items.Remove(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void 打开所在目录ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach (ListViewItem item in lvFileList.SelectedItems)
|
||||||
|
{
|
||||||
|
Process.Start("Explorer.exe", Path.GetDirectoryName(item.Tag as string));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lvFileList_ItemCheck(object sender, ItemCheckEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lvFileList_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//要判断是否点击项,控件里至少要有一个项
|
||||||
|
if (this.lvFileList.Items.Count > 0)
|
||||||
|
{
|
||||||
|
Point point = this.lvFileList.PointToClient(MousePosition);
|
||||||
|
ListViewHitTestInfo hitTest = this.lvFileList.HitTest(point);
|
||||||
|
|
||||||
|
if (hitTest.Item != null)
|
||||||
|
{//点击的不是列且不是空白区域
|
||||||
|
Process.Start(lvFileList.SelectedItems[0].Tag as string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnStart_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (lvFileList.Items.Count == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("打包前至少应该有一个文件", "自动打包", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
frmPackage package = new frmPackage(lvFileList.Items.Cast<ListViewItem>().Select(x => x.Tag as string).ToList());
|
||||||
|
package.ShowDialog();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZipControl_FileWillDecompress(string filePath)
|
||||||
|
{
|
||||||
|
if (lvFileList.Items.Cast<ListViewItem>().Where(x => Path.GetFileName(x.Tag as string) == Path.GetFileName(filePath)).Count() > 0)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show(Path.GetFileName(filePath) + "已存在在列表中,是否覆盖?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnExit_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnSettings_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
new frmSettings().ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Form1_KeyDown(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
//要判断是否点击项,控件里至少要有一个项
|
||||||
|
if (this.lvFileList.SelectedItems.Count > 0)
|
||||||
|
{
|
||||||
|
if(e.Shift && e.KeyCode == Keys.Delete)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show("确实要同时删除此文件吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||||
|
{
|
||||||
|
foreach (ListViewItem item in lvFileList.SelectedItems)
|
||||||
|
{
|
||||||
|
File.Delete(item.Tag as string);
|
||||||
|
lvFileList.Items.Remove(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (e.KeyCode == Keys.Delete)
|
||||||
|
{
|
||||||
|
foreach (ListViewItem item in lvFileList.SelectedItems)
|
||||||
|
{
|
||||||
|
lvFileList.Items.Remove(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1259
AutoPekage/Form1.resx
Normal file
1259
AutoPekage/Form1.resx
Normal file
File diff suppressed because it is too large
Load Diff
69
AutoPekage/GetFileIcon.cs
Normal file
69
AutoPekage/GetFileIcon.cs
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
class GetIcon
|
||||||
|
{
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct SHFILEINFO
|
||||||
|
{
|
||||||
|
public IntPtr hIcon;
|
||||||
|
public IntPtr iIcon;
|
||||||
|
public uint dwAttributes;
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
|
||||||
|
public string szDisplayName;
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
|
||||||
|
public string szTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回系统设置的图标
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pszPath">文件路径 如果为"" 返回文件夹的</param>
|
||||||
|
/// <param name="dwFileAttributes">0</param>
|
||||||
|
/// <param name="psfi">结构体</param>
|
||||||
|
/// <param name="cbSizeFileInfo">结构体大小</param>
|
||||||
|
/// <param name="uFlags">枚举类型</param>
|
||||||
|
/// <returns>-1失败</returns>
|
||||||
|
[DllImport("shell32.dll")]
|
||||||
|
public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
|
||||||
|
|
||||||
|
public enum SHGFI
|
||||||
|
{
|
||||||
|
SHGFI_ICON = 0x100,
|
||||||
|
SHGFI_LARGEICON = 0x0,
|
||||||
|
SHGFI_USEFILEATTRIBUTES = 0x10
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取文件图标 zgke@sina.com qq:116149
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="p_Path">文件全路径</param>
|
||||||
|
/// <returns>图标</returns>
|
||||||
|
public static Icon GetFileIcon(string p_Path)
|
||||||
|
{
|
||||||
|
SHFILEINFO _SHFILEINFO = new SHFILEINFO();
|
||||||
|
IntPtr _IconIntPtr = SHGetFileInfo(p_Path, 0, ref _SHFILEINFO, (uint)Marshal.SizeOf(_SHFILEINFO), (uint)(SHGFI.SHGFI_ICON | SHGFI.SHGFI_LARGEICON | SHGFI.SHGFI_USEFILEATTRIBUTES));
|
||||||
|
if (_IconIntPtr.Equals(IntPtr.Zero)) return null;
|
||||||
|
Icon _Icon = System.Drawing.Icon.FromHandle(_SHFILEINFO.hIcon);
|
||||||
|
return _Icon;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取文件夹图标 zgke@sina.com qq:116149
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>图标</returns>
|
||||||
|
public static Icon GetDirectoryIcon()
|
||||||
|
{
|
||||||
|
SHFILEINFO _SHFILEINFO = new SHFILEINFO();
|
||||||
|
IntPtr _IconIntPtr = SHGetFileInfo(@"", 0, ref _SHFILEINFO, (uint)Marshal.SizeOf(_SHFILEINFO), (uint)(SHGFI.SHGFI_ICON | SHGFI.SHGFI_LARGEICON));
|
||||||
|
if (_IconIntPtr.Equals(IntPtr.Zero)) return null;
|
||||||
|
Icon _Icon = System.Drawing.Icon.FromHandle(_SHFILEINFO.hIcon);
|
||||||
|
return _Icon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
180
AutoPekage/LiteDbHelper.cs
Normal file
180
AutoPekage/LiteDbHelper.cs
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
using LiteDB;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
class LiteDbHelper
|
||||||
|
{
|
||||||
|
private static string liteDbPath = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "AutoPackage", "sittings.db");
|
||||||
|
|
||||||
|
public static void init()
|
||||||
|
{
|
||||||
|
if (!File.Exists(liteDbPath))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(Path.GetDirectoryName(liteDbPath));
|
||||||
|
AddStmpServer("qq", "smtp.qq.com");
|
||||||
|
CreateDefaultSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SettingsDao CreateDefaultSettings()
|
||||||
|
{
|
||||||
|
SettingsDao dao = new SettingsDao();
|
||||||
|
dao.AskAutoDeleteFile = true;
|
||||||
|
dao.AskAutoLoadFile = true;
|
||||||
|
dao.AutoDeleteFile = 0;
|
||||||
|
dao.AutoLoadFile = 0;
|
||||||
|
dao.DefaultFileName = "我的打包文件.zip";
|
||||||
|
dao.LastPath = null;
|
||||||
|
dao.SendMail = false;
|
||||||
|
dao.TitleModel = 0;
|
||||||
|
Settings = dao;
|
||||||
|
return dao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddStmpServer(string serverName, string stmp)
|
||||||
|
{
|
||||||
|
var dao = new StmpServerDao();
|
||||||
|
dao.ServerName = serverName;
|
||||||
|
dao.Stmp = stmp;
|
||||||
|
AddStmpServer(dao);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddStmpServer(StmpServerDao dao)
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<StmpServerDao>("stmpservers");
|
||||||
|
col.Insert(dao);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<StmpServerDao> GetAllStmpServer()
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<StmpServerDao>("stmpservers");
|
||||||
|
return col.FindAll().ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddSender(string name)
|
||||||
|
{
|
||||||
|
var dao = new SenderDao();
|
||||||
|
dao.Name = name;
|
||||||
|
AddSender(dao);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddSender(string name, string username, string password, string nikename, string stmpServer)
|
||||||
|
{
|
||||||
|
var dao = new SenderDao();
|
||||||
|
dao.Name = name;
|
||||||
|
dao.NickName = nikename;
|
||||||
|
dao.Password = password;
|
||||||
|
dao.StmpServer = stmpServer;
|
||||||
|
dao.UserName = username;
|
||||||
|
AddSender(dao);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddSender(SenderDao dao)
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<SenderDao>("senders");
|
||||||
|
if (dao.Id == 0)
|
||||||
|
{
|
||||||
|
col.Insert(dao);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
col.Update(dao);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DelSender(SenderDao dao)
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<SenderDao>("senders");
|
||||||
|
col.Delete(dao.Id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<SenderDao> GetAllSender()
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<SenderDao>("senders");
|
||||||
|
return col.FindAll().ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SenderDao GetSenderById(int id)
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<SenderDao>("senders");
|
||||||
|
return col.FindById(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddMailTo(string mailto)
|
||||||
|
{
|
||||||
|
var mailToDao = new MailToDao();
|
||||||
|
mailToDao.MailTo = mailto;
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<MailToDao>("mailto");
|
||||||
|
col.Insert(mailToDao);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<MailToDao> GetAllMailTo()
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<MailToDao>("mailto");
|
||||||
|
return col.FindAll().ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SettingsDao Settings
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<SettingsDao>("settings");
|
||||||
|
var dao = col.FindOne(Query.All());
|
||||||
|
if (dao == null)
|
||||||
|
{
|
||||||
|
dao = CreateDefaultSettings();
|
||||||
|
}
|
||||||
|
return dao;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
using (var db = new LiteDatabase(liteDbPath))
|
||||||
|
{
|
||||||
|
var col = db.GetCollection<SettingsDao>("settings");
|
||||||
|
if (col.Count() > 0)
|
||||||
|
{
|
||||||
|
col.Update(value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
col.Insert(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
AutoPekage/MailToDao.cs
Normal file
12
AutoPekage/MailToDao.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public class MailToDao
|
||||||
|
{
|
||||||
|
public string MailTo { get; set; }
|
||||||
|
}
|
||||||
|
}
|
21
AutoPekage/Program.cs
Normal file
21
AutoPekage/Program.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 应用程序的主入口点。
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
LiteDbHelper.init();
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new Form1());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
AutoPekage/Properties/AssemblyInfo.cs
Normal file
36
AutoPekage/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 有关程序集的常规信息通过以下
|
||||||
|
// 特性集控制。更改这些特性值可修改
|
||||||
|
// 与程序集关联的信息。
|
||||||
|
[assembly: AssemblyTitle("自动打包发邮件")]
|
||||||
|
[assembly: AssemblyDescription("一个可以自动解压压缩包,并打包发邮件的程序")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("JX")]
|
||||||
|
[assembly: AssemblyProduct("AutoPackage")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// 将 ComVisible 设置为 false 使此程序集中的类型
|
||||||
|
// 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
|
||||||
|
// 则将该类型上的 ComVisible 特性设置为 true。
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||||
|
[assembly: Guid("7d8db1ae-da15-4a37-bb28-5377390b520c")]
|
||||||
|
|
||||||
|
// 程序集的版本信息由下面四个值组成:
|
||||||
|
//
|
||||||
|
// 主版本
|
||||||
|
// 次版本
|
||||||
|
// 生成号
|
||||||
|
// 修订号
|
||||||
|
//
|
||||||
|
// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
|
||||||
|
// 方法是按如下所示使用“*”:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
63
AutoPekage/Properties/Resources.Designer.cs
generated
Normal file
63
AutoPekage/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
// 运行时版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
|
// 重新生成代码,这些更改将会丢失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace AutoPackage.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||||
|
/// </summary>
|
||||||
|
// 此类是由 StronglyTypedResourceBuilder
|
||||||
|
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||||
|
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||||
|
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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("AutoPackage.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
AutoPekage/Properties/Resources.resx
Normal file
117
AutoPekage/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
AutoPekage/Properties/Settings.Designer.cs
generated
Normal file
26
AutoPekage/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
// 运行时版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
|
// 重新生成代码,这些更改将会丢失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace AutoPackage.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
AutoPekage/Properties/Settings.settings
Normal file
7
AutoPekage/Properties/Settings.settings
Normal file
@ -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>
|
22
AutoPekage/SenderDao.cs
Normal file
22
AutoPekage/SenderDao.cs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public class SenderDao
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
public string StmpServer { get; set; }
|
||||||
|
|
||||||
|
public string UserName { get; set; }
|
||||||
|
|
||||||
|
public string Password { get; set; }
|
||||||
|
|
||||||
|
public string NickName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
64
AutoPekage/SettingsDao.cs
Normal file
64
AutoPekage/SettingsDao.cs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public class SettingsDao
|
||||||
|
{
|
||||||
|
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 默认打包文件名
|
||||||
|
/// </summary>
|
||||||
|
public string DefaultFileName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 最后一次打包路径
|
||||||
|
/// </summary>
|
||||||
|
public string LastPath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否勾选发送邮件
|
||||||
|
/// </summary>
|
||||||
|
public bool SendMail { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否询问自动加载temp目录的文件
|
||||||
|
/// </summary>
|
||||||
|
public bool AskAutoLoadFile { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否自动加载temp目录文件
|
||||||
|
/// 1:加载文件
|
||||||
|
/// 0:不加载文件
|
||||||
|
/// </summary>
|
||||||
|
public int AutoLoadFile { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 询问是否自动删除temp目录文件
|
||||||
|
/// </summary>
|
||||||
|
public bool AskAutoDeleteFile { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否自动删除temp目录文件
|
||||||
|
/// 1:删除文件
|
||||||
|
/// 0:不删除文件
|
||||||
|
/// </summary>
|
||||||
|
public int AutoDeleteFile { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 邮件标题模式
|
||||||
|
/// 1:自定义标题
|
||||||
|
/// 0:使用文件名作为标题
|
||||||
|
/// </summary>
|
||||||
|
public int TitleModel { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 邮件标题
|
||||||
|
/// </summary>
|
||||||
|
public string Title { get; set; }
|
||||||
|
}
|
||||||
|
}
|
14
AutoPekage/StmpServerDao.cs
Normal file
14
AutoPekage/StmpServerDao.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public class StmpServerDao
|
||||||
|
{
|
||||||
|
public string ServerName { get; set; }
|
||||||
|
|
||||||
|
public string Stmp { get; set; }
|
||||||
|
}
|
||||||
|
}
|
202
AutoPekage/ZipControl.cs
Normal file
202
AutoPekage/ZipControl.cs
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
using SharpCompress.Archives;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
using System.Linq;
|
||||||
|
using SharpCompress.Readers;
|
||||||
|
using SharpCompress.Writers;
|
||||||
|
using SharpCompress.Common;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
class ZipControl
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public delegate void NewFileDecompressHandle(string filePath);
|
||||||
|
|
||||||
|
public static event NewFileDecompressHandle NewFileDecompress;
|
||||||
|
|
||||||
|
public delegate bool FileWillDecompressHandle(string filePath);
|
||||||
|
|
||||||
|
public static event FileWillDecompressHandle FileWillDecompress;
|
||||||
|
/// <summary>
|
||||||
|
/// ZIP:解压一个zip文件
|
||||||
|
/// add yuangang by 2016-06-13
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ZipFile">需要解压的Zip文件(绝对路径)</param>
|
||||||
|
/// <param name="Password">解压密码</param>
|
||||||
|
/// <param name="OverWrite">是否覆盖已存在的文件</param>
|
||||||
|
public static void UnZip(string ZipFile, string Password, bool OverWrite = true)
|
||||||
|
{
|
||||||
|
//如果解压到的目录不存在,则报错
|
||||||
|
//if (!System.IO.Directory.Exists(Form1.tempPath))
|
||||||
|
//{
|
||||||
|
// Directory.CreateDirectory(Form1.tempPath);
|
||||||
|
//}
|
||||||
|
|
||||||
|
//using (ZipInputStream zipfiles = new ZipInputStream(File.OpenRead(ZipFile)))
|
||||||
|
//{
|
||||||
|
// zipfiles.Password = Password;
|
||||||
|
// ZipEntry theEntry;
|
||||||
|
|
||||||
|
// while ((theEntry = zipfiles.GetNextEntry()) != null)
|
||||||
|
// {
|
||||||
|
// string pathToZip = "";
|
||||||
|
// pathToZip = theEntry.Name;
|
||||||
|
|
||||||
|
// string fileName = Path.GetFileName(pathToZip);
|
||||||
|
|
||||||
|
// if (fileName != "")
|
||||||
|
// {
|
||||||
|
// string filePath = Path.Combine(Form1.tempPath, fileName);
|
||||||
|
// if ((File.Exists(Form1.tempPath + fileName) && OverWrite) || (!File.Exists(filePath)))
|
||||||
|
// {
|
||||||
|
// using (FileStream streamWriter = File.Create(filePath))
|
||||||
|
// {
|
||||||
|
// int size = 2048;
|
||||||
|
// byte[] data = new byte[2048];
|
||||||
|
// while (true)
|
||||||
|
// {
|
||||||
|
// size = zipfiles.Read(data, 0, data.Length);
|
||||||
|
|
||||||
|
// if (size > 0)
|
||||||
|
// streamWriter.Write(data, 0, size);
|
||||||
|
// else
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// streamWriter.Close();
|
||||||
|
// }
|
||||||
|
// if (NewFileDecompress != null)
|
||||||
|
// {
|
||||||
|
// NewFileDecompress(filePath);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// zipfiles.Close();
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 压缩文件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="zipPath">压缩文件路径</param>
|
||||||
|
/// <param name="fileList">文件列表</param>
|
||||||
|
public static void Zip(string zipPath, List<string> fileList)
|
||||||
|
{
|
||||||
|
//ZipOutputStream zipStream = null;
|
||||||
|
//FileStream streamWriter = null;
|
||||||
|
//try
|
||||||
|
//{
|
||||||
|
// //Use Crc32
|
||||||
|
// Crc32 crc32 = new Crc32();
|
||||||
|
|
||||||
|
// //Create Zip File
|
||||||
|
// zipStream = new ZipOutputStream(File.Create(zipPath));
|
||||||
|
|
||||||
|
// //Specify Level
|
||||||
|
// zipStream.SetLevel(9);
|
||||||
|
|
||||||
|
// //Foreach File
|
||||||
|
// foreach (string file in fileList)
|
||||||
|
// {
|
||||||
|
// //Check Whether the file exists
|
||||||
|
// if (!File.Exists(file))
|
||||||
|
// {
|
||||||
|
// throw new FileNotFoundException(file);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //Read the file to stream
|
||||||
|
// streamWriter = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||||
|
// byte[] buffer = new byte[streamWriter.Length];
|
||||||
|
// streamWriter.Read(buffer, 0, buffer.Length);
|
||||||
|
// streamWriter.Close();
|
||||||
|
|
||||||
|
// //Specify ZipEntry
|
||||||
|
// crc32.Reset();
|
||||||
|
// crc32.Update(buffer);
|
||||||
|
// ZipEntry zipEntry = new ZipEntry(Path.GetFileName(file));
|
||||||
|
// zipEntry.DateTime = DateTime.Now;
|
||||||
|
// zipEntry.Size = buffer.Length;
|
||||||
|
// zipEntry.Crc = crc32.Value;
|
||||||
|
|
||||||
|
// //Put file info into zip stream
|
||||||
|
// zipStream.PutNextEntry(zipEntry);
|
||||||
|
|
||||||
|
// //Put file data into zip stream
|
||||||
|
// zipStream.Write(buffer, 0, buffer.Length);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//catch
|
||||||
|
//{
|
||||||
|
// throw;
|
||||||
|
//}
|
||||||
|
//finally
|
||||||
|
//{
|
||||||
|
// //Clear Resource
|
||||||
|
// if (streamWriter != null)
|
||||||
|
// {
|
||||||
|
// streamWriter.Close();
|
||||||
|
// }
|
||||||
|
// if (zipStream != null)
|
||||||
|
// {
|
||||||
|
// zipStream.Finish();
|
||||||
|
// zipStream.Close();
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
using (Stream stream = File.OpenWrite(zipPath))
|
||||||
|
{
|
||||||
|
using (var writer = WriterFactory.Open(stream, ArchiveType.Zip, new WriterOptions(CompressionType.Deflate)
|
||||||
|
{
|
||||||
|
LeaveStreamOpen = true
|
||||||
|
}))
|
||||||
|
{
|
||||||
|
foreach (var file in fileList)
|
||||||
|
{
|
||||||
|
writer.Write(Path.GetFileName(file), file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!stream.CanWrite)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UnCompress(string ZipFile, string unCompressPath, bool OverWrite = true)
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(unCompressPath))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(unCompressPath);
|
||||||
|
}
|
||||||
|
using (Stream stream = File.OpenRead(ZipFile))
|
||||||
|
using (var archive = ArchiveFactory.Open(stream))
|
||||||
|
{
|
||||||
|
SharpCompress.Common.ArchiveEncoding.Default = Encoding.Default;
|
||||||
|
foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory))
|
||||||
|
{
|
||||||
|
if (FileWillDecompress != null)
|
||||||
|
{
|
||||||
|
if (!FileWillDecompress(entry.Key))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
entry.WriteToDirectory(unCompressPath, new ExtractionOptions()
|
||||||
|
{
|
||||||
|
Overwrite = true
|
||||||
|
});
|
||||||
|
if (NewFileDecompress != null)
|
||||||
|
{
|
||||||
|
NewFileDecompress(Path.Combine(unCompressPath, Path.GetFileName(entry.Key)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
AutoPekage/app.config
Normal file
3
AutoPekage/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.0"/></startup></configuration>
|
259
AutoPekage/frmAddSender.Designer.cs
generated
Normal file
259
AutoPekage/frmAddSender.Designer.cs
generated
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
partial class frmAddSender
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.cbStmpAll = new System.Windows.Forms.ComboBox();
|
||||||
|
this.txtMailAddr = new System.Windows.Forms.TextBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.txtPassword = new System.Windows.Forms.TextBox();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.cbShowPwd = new System.Windows.Forms.CheckBox();
|
||||||
|
this.txtNickName = new System.Windows.Forms.TextBox();
|
||||||
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
|
this.btnModify = new System.Windows.Forms.Button();
|
||||||
|
this.btnAddStmpServer = new System.Windows.Forms.Button();
|
||||||
|
this.btnCencel = new System.Windows.Forms.Button();
|
||||||
|
this.lbSender = new System.Windows.Forms.ListBox();
|
||||||
|
this.txtName = new System.Windows.Forms.TextBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.btnAd = new System.Windows.Forms.Button();
|
||||||
|
this.btnDel = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(130, 41);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(77, 12);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "发信服务器:";
|
||||||
|
//
|
||||||
|
// cbStmpAll
|
||||||
|
//
|
||||||
|
this.cbStmpAll.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cbStmpAll.FormattingEnabled = true;
|
||||||
|
this.cbStmpAll.Location = new System.Drawing.Point(213, 38);
|
||||||
|
this.cbStmpAll.Name = "cbStmpAll";
|
||||||
|
this.cbStmpAll.Size = new System.Drawing.Size(146, 20);
|
||||||
|
this.cbStmpAll.TabIndex = 1;
|
||||||
|
this.cbStmpAll.SelectedIndexChanged += new System.EventHandler(this.cbStmpAll_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// txtMailAddr
|
||||||
|
//
|
||||||
|
this.txtMailAddr.Location = new System.Drawing.Point(213, 91);
|
||||||
|
this.txtMailAddr.Name = "txtMailAddr";
|
||||||
|
this.txtMailAddr.Size = new System.Drawing.Size(146, 21);
|
||||||
|
this.txtMailAddr.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(130, 94);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(65, 12);
|
||||||
|
this.label3.TabIndex = 4;
|
||||||
|
this.label3.Text = "邮箱地址:";
|
||||||
|
//
|
||||||
|
// txtPassword
|
||||||
|
//
|
||||||
|
this.txtPassword.Location = new System.Drawing.Point(213, 145);
|
||||||
|
this.txtPassword.Name = "txtPassword";
|
||||||
|
this.txtPassword.PasswordChar = '*';
|
||||||
|
this.txtPassword.Size = new System.Drawing.Size(146, 21);
|
||||||
|
this.txtPassword.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
this.label4.AutoSize = true;
|
||||||
|
this.label4.Location = new System.Drawing.Point(130, 148);
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label4.TabIndex = 6;
|
||||||
|
this.label4.Text = "密钥:";
|
||||||
|
//
|
||||||
|
// cbShowPwd
|
||||||
|
//
|
||||||
|
this.cbShowPwd.AutoSize = true;
|
||||||
|
this.cbShowPwd.Location = new System.Drawing.Point(287, 172);
|
||||||
|
this.cbShowPwd.Name = "cbShowPwd";
|
||||||
|
this.cbShowPwd.Size = new System.Drawing.Size(72, 16);
|
||||||
|
this.cbShowPwd.TabIndex = 8;
|
||||||
|
this.cbShowPwd.Text = "显示密钥";
|
||||||
|
this.cbShowPwd.UseVisualStyleBackColor = true;
|
||||||
|
this.cbShowPwd.CheckedChanged += new System.EventHandler(this.cbShowPwd_CheckedChanged);
|
||||||
|
//
|
||||||
|
// txtNickName
|
||||||
|
//
|
||||||
|
this.txtNickName.Location = new System.Drawing.Point(213, 118);
|
||||||
|
this.txtNickName.Name = "txtNickName";
|
||||||
|
this.txtNickName.Size = new System.Drawing.Size(146, 21);
|
||||||
|
this.txtNickName.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
this.label5.AutoSize = true;
|
||||||
|
this.label5.Location = new System.Drawing.Point(130, 121);
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label5.TabIndex = 9;
|
||||||
|
this.label5.Text = "昵称:";
|
||||||
|
//
|
||||||
|
// btnModify
|
||||||
|
//
|
||||||
|
this.btnModify.Location = new System.Drawing.Point(179, 201);
|
||||||
|
this.btnModify.Name = "btnModify";
|
||||||
|
this.btnModify.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnModify.TabIndex = 11;
|
||||||
|
this.btnModify.Text = "修改";
|
||||||
|
this.btnModify.UseVisualStyleBackColor = true;
|
||||||
|
this.btnModify.Click += new System.EventHandler(this.btnAdd_Click);
|
||||||
|
//
|
||||||
|
// btnAddStmpServer
|
||||||
|
//
|
||||||
|
this.btnAddStmpServer.Location = new System.Drawing.Point(250, 64);
|
||||||
|
this.btnAddStmpServer.Name = "btnAddStmpServer";
|
||||||
|
this.btnAddStmpServer.Size = new System.Drawing.Size(109, 23);
|
||||||
|
this.btnAddStmpServer.TabIndex = 14;
|
||||||
|
this.btnAddStmpServer.Text = "添加发信服务器";
|
||||||
|
this.btnAddStmpServer.UseVisualStyleBackColor = true;
|
||||||
|
this.btnAddStmpServer.Click += new System.EventHandler(this.btnAddStmpServer_Click);
|
||||||
|
//
|
||||||
|
// btnCencel
|
||||||
|
//
|
||||||
|
this.btnCencel.Location = new System.Drawing.Point(269, 201);
|
||||||
|
this.btnCencel.Name = "btnCencel";
|
||||||
|
this.btnCencel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnCencel.TabIndex = 13;
|
||||||
|
this.btnCencel.Text = "关闭";
|
||||||
|
this.btnCencel.UseVisualStyleBackColor = true;
|
||||||
|
this.btnCencel.Click += new System.EventHandler(this.btnCencel_Click);
|
||||||
|
//
|
||||||
|
// lbSender
|
||||||
|
//
|
||||||
|
this.lbSender.FormattingEnabled = true;
|
||||||
|
this.lbSender.HorizontalScrollbar = true;
|
||||||
|
this.lbSender.ItemHeight = 12;
|
||||||
|
this.lbSender.Location = new System.Drawing.Point(4, 10);
|
||||||
|
this.lbSender.Name = "lbSender";
|
||||||
|
this.lbSender.Size = new System.Drawing.Size(120, 184);
|
||||||
|
this.lbSender.TabIndex = 15;
|
||||||
|
this.lbSender.SelectedIndexChanged += new System.EventHandler(this.lbSender_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// txtName
|
||||||
|
//
|
||||||
|
this.txtName.Location = new System.Drawing.Point(213, 10);
|
||||||
|
this.txtName.Name = "txtName";
|
||||||
|
this.txtName.Size = new System.Drawing.Size(146, 21);
|
||||||
|
this.txtName.TabIndex = 17;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(130, 13);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label2.TabIndex = 16;
|
||||||
|
this.label2.Text = "名称:";
|
||||||
|
//
|
||||||
|
// btnAd
|
||||||
|
//
|
||||||
|
this.btnAd.Location = new System.Drawing.Point(23, 201);
|
||||||
|
this.btnAd.Name = "btnAd";
|
||||||
|
this.btnAd.Size = new System.Drawing.Size(31, 23);
|
||||||
|
this.btnAd.TabIndex = 18;
|
||||||
|
this.btnAd.Text = "+";
|
||||||
|
this.btnAd.UseVisualStyleBackColor = true;
|
||||||
|
this.btnAd.Click += new System.EventHandler(this.btnAd_Click);
|
||||||
|
//
|
||||||
|
// btnDel
|
||||||
|
//
|
||||||
|
this.btnDel.Location = new System.Drawing.Point(71, 201);
|
||||||
|
this.btnDel.Name = "btnDel";
|
||||||
|
this.btnDel.Size = new System.Drawing.Size(31, 23);
|
||||||
|
this.btnDel.TabIndex = 19;
|
||||||
|
this.btnDel.Text = "-";
|
||||||
|
this.btnDel.UseVisualStyleBackColor = true;
|
||||||
|
this.btnDel.Click += new System.EventHandler(this.btnDel_Click);
|
||||||
|
//
|
||||||
|
// frmAddSender
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(367, 233);
|
||||||
|
this.Controls.Add(this.btnDel);
|
||||||
|
this.Controls.Add(this.btnAd);
|
||||||
|
this.Controls.Add(this.txtName);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.lbSender);
|
||||||
|
this.Controls.Add(this.btnCencel);
|
||||||
|
this.Controls.Add(this.btnAddStmpServer);
|
||||||
|
this.Controls.Add(this.btnModify);
|
||||||
|
this.Controls.Add(this.txtNickName);
|
||||||
|
this.Controls.Add(this.label5);
|
||||||
|
this.Controls.Add(this.cbShowPwd);
|
||||||
|
this.Controls.Add(this.txtPassword);
|
||||||
|
this.Controls.Add(this.label4);
|
||||||
|
this.Controls.Add(this.txtMailAddr);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.cbStmpAll);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "frmAddSender";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "配置发件人";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.ComboBox cbStmpAll;
|
||||||
|
private System.Windows.Forms.TextBox txtMailAddr;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.TextBox txtPassword;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.CheckBox cbShowPwd;
|
||||||
|
private System.Windows.Forms.TextBox txtNickName;
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
|
private System.Windows.Forms.Button btnModify;
|
||||||
|
private System.Windows.Forms.Button btnAddStmpServer;
|
||||||
|
private System.Windows.Forms.Button btnCencel;
|
||||||
|
private System.Windows.Forms.ListBox lbSender;
|
||||||
|
private System.Windows.Forms.TextBox txtName;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Button btnAd;
|
||||||
|
private System.Windows.Forms.Button btnDel;
|
||||||
|
}
|
||||||
|
}
|
103
AutoPekage/frmAddSender.cs
Normal file
103
AutoPekage/frmAddSender.cs
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public partial class frmAddSender : Form
|
||||||
|
{
|
||||||
|
public frmAddSender()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
cbStmpAll.DataSource = LiteDbHelper.GetAllStmpServer();
|
||||||
|
cbStmpAll.DisplayMember = "ServerName";
|
||||||
|
cbStmpAll.ValueMember = "Stmp";
|
||||||
|
lbSender.DataSource = LiteDbHelper.GetAllSender();
|
||||||
|
lbSender.DisplayMember = "Name";
|
||||||
|
//lbSender.ValueMember = "Id";
|
||||||
|
if (lbSender.SelectedIndex == -1)
|
||||||
|
{
|
||||||
|
btnModify.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cbStmpAll_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnAddStmpServer_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (new frmStmpServer().ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||||
|
{
|
||||||
|
cbStmpAll.DataSource = LiteDbHelper.GetAllStmpServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cbShowPwd_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (cbShowPwd.Checked)
|
||||||
|
{
|
||||||
|
txtPassword.PasswordChar = '\0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
txtPassword.PasswordChar = '*';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//LiteDbHelper.AddSender(txtName.Text, txtMailAddr.Text, txtPassword.Text, txtNickName.Text, cbStmpAll.SelectedValue.ToString());
|
||||||
|
var mailSender = lbSender.SelectedValue as SenderDao;
|
||||||
|
mailSender.Name = txtName.Text;
|
||||||
|
mailSender.UserName = txtMailAddr.Text;
|
||||||
|
mailSender.NickName = txtNickName.Text;
|
||||||
|
mailSender.Password = txtPassword.Text;
|
||||||
|
mailSender.StmpServer = cbStmpAll.SelectedValue.ToString();
|
||||||
|
LiteDbHelper.AddSender(mailSender);
|
||||||
|
lbSender.DataSource = LiteDbHelper.GetAllSender();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnCencel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnAd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LiteDbHelper.AddSender("新建发件人");
|
||||||
|
lbSender.DataSource = LiteDbHelper.GetAllSender();
|
||||||
|
btnModify.Enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lbSender_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var mailSender = lbSender.SelectedValue as SenderDao;
|
||||||
|
txtName.Text = mailSender.Name;
|
||||||
|
txtMailAddr.Text = mailSender.UserName;
|
||||||
|
txtNickName.Text = mailSender.NickName;
|
||||||
|
txtPassword.Text = mailSender.Password;
|
||||||
|
if (mailSender.StmpServer != null)
|
||||||
|
{
|
||||||
|
cbStmpAll.SelectedValue = mailSender.StmpServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnDel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LiteDbHelper.DelSender(lbSender.SelectedValue as SenderDao);
|
||||||
|
lbSender.DataSource = LiteDbHelper.GetAllSender();
|
||||||
|
if (lbSender.SelectedIndex == -1)
|
||||||
|
{
|
||||||
|
btnModify.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
AutoPekage/frmAddSender.resx
Normal file
120
AutoPekage/frmAddSender.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<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" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
288
AutoPekage/frmPackage.Designer.cs
generated
Normal file
288
AutoPekage/frmPackage.Designer.cs
generated
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
partial class frmPackage
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.rbDesktop = new System.Windows.Forms.RadioButton();
|
||||||
|
this.rbCustom = new System.Windows.Forms.RadioButton();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.txtPackagePath = new System.Windows.Forms.TextBox();
|
||||||
|
this.btnSelectPath = new System.Windows.Forms.Button();
|
||||||
|
this.sfdPackagePath = new System.Windows.Forms.SaveFileDialog();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.btnExit = new System.Windows.Forms.Button();
|
||||||
|
this.gbMail = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtContext = new System.Windows.Forms.TextBox();
|
||||||
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
|
this.txtCaption = new System.Windows.Forms.TextBox();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.cbMailTo = new System.Windows.Forms.ComboBox();
|
||||||
|
this.btnAddSender = new System.Windows.Forms.Button();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.cbSender = new System.Windows.Forms.ComboBox();
|
||||||
|
this.cbSendMail = new System.Windows.Forms.CheckBox();
|
||||||
|
this.gbMail.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// rbDesktop
|
||||||
|
//
|
||||||
|
this.rbDesktop.AutoSize = true;
|
||||||
|
this.rbDesktop.Checked = true;
|
||||||
|
this.rbDesktop.Location = new System.Drawing.Point(9, 13);
|
||||||
|
this.rbDesktop.Name = "rbDesktop";
|
||||||
|
this.rbDesktop.Size = new System.Drawing.Size(83, 16);
|
||||||
|
this.rbDesktop.TabIndex = 0;
|
||||||
|
this.rbDesktop.TabStop = true;
|
||||||
|
this.rbDesktop.Text = "打包到桌面";
|
||||||
|
this.rbDesktop.UseVisualStyleBackColor = true;
|
||||||
|
this.rbDesktop.CheckedChanged += new System.EventHandler(this.rbDesktop_CheckedChanged);
|
||||||
|
//
|
||||||
|
// rbCustom
|
||||||
|
//
|
||||||
|
this.rbCustom.AutoSize = true;
|
||||||
|
this.rbCustom.Location = new System.Drawing.Point(139, 13);
|
||||||
|
this.rbCustom.Name = "rbCustom";
|
||||||
|
this.rbCustom.Size = new System.Drawing.Size(107, 16);
|
||||||
|
this.rbCustom.TabIndex = 1;
|
||||||
|
this.rbCustom.Text = "打包到指定路径";
|
||||||
|
this.rbCustom.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(9, 40);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label1.TabIndex = 2;
|
||||||
|
this.label1.Text = "路径:";
|
||||||
|
//
|
||||||
|
// txtPackagePath
|
||||||
|
//
|
||||||
|
this.txtPackagePath.Enabled = false;
|
||||||
|
this.txtPackagePath.Location = new System.Drawing.Point(56, 37);
|
||||||
|
this.txtPackagePath.Name = "txtPackagePath";
|
||||||
|
this.txtPackagePath.ReadOnly = true;
|
||||||
|
this.txtPackagePath.Size = new System.Drawing.Size(311, 21);
|
||||||
|
this.txtPackagePath.TabIndex = 3;
|
||||||
|
this.txtPackagePath.TextChanged += new System.EventHandler(this.txtPackagePath_TextChanged);
|
||||||
|
this.txtPackagePath.DoubleClick += new System.EventHandler(this.txtPackagePath_DoubleClick);
|
||||||
|
//
|
||||||
|
// btnSelectPath
|
||||||
|
//
|
||||||
|
this.btnSelectPath.Enabled = false;
|
||||||
|
this.btnSelectPath.Location = new System.Drawing.Point(374, 37);
|
||||||
|
this.btnSelectPath.Name = "btnSelectPath";
|
||||||
|
this.btnSelectPath.Size = new System.Drawing.Size(40, 23);
|
||||||
|
this.btnSelectPath.TabIndex = 4;
|
||||||
|
this.btnSelectPath.Text = "...";
|
||||||
|
this.btnSelectPath.UseVisualStyleBackColor = true;
|
||||||
|
this.btnSelectPath.Click += new System.EventHandler(this.btnSelectPath_Click);
|
||||||
|
//
|
||||||
|
// sfdPackagePath
|
||||||
|
//
|
||||||
|
this.sfdPackagePath.DefaultExt = "zip";
|
||||||
|
this.sfdPackagePath.FileName = "我的打包文件.zip";
|
||||||
|
this.sfdPackagePath.Filter = "zip文件|*.zip|所有文件|*.*";
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
this.btnOK.Location = new System.Drawing.Point(56, 295);
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnOK.TabIndex = 5;
|
||||||
|
this.btnOK.Text = "确定";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// btnExit
|
||||||
|
//
|
||||||
|
this.btnExit.Location = new System.Drawing.Point(292, 295);
|
||||||
|
this.btnExit.Name = "btnExit";
|
||||||
|
this.btnExit.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnExit.TabIndex = 6;
|
||||||
|
this.btnExit.Text = "返回";
|
||||||
|
this.btnExit.UseVisualStyleBackColor = true;
|
||||||
|
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
|
||||||
|
//
|
||||||
|
// gbMail
|
||||||
|
//
|
||||||
|
this.gbMail.Controls.Add(this.txtContext);
|
||||||
|
this.gbMail.Controls.Add(this.label5);
|
||||||
|
this.gbMail.Controls.Add(this.txtCaption);
|
||||||
|
this.gbMail.Controls.Add(this.label4);
|
||||||
|
this.gbMail.Controls.Add(this.label3);
|
||||||
|
this.gbMail.Controls.Add(this.cbMailTo);
|
||||||
|
this.gbMail.Controls.Add(this.btnAddSender);
|
||||||
|
this.gbMail.Controls.Add(this.label2);
|
||||||
|
this.gbMail.Controls.Add(this.cbSender);
|
||||||
|
this.gbMail.Enabled = false;
|
||||||
|
this.gbMail.Location = new System.Drawing.Point(9, 72);
|
||||||
|
this.gbMail.Name = "gbMail";
|
||||||
|
this.gbMail.Size = new System.Drawing.Size(405, 217);
|
||||||
|
this.gbMail.TabIndex = 7;
|
||||||
|
this.gbMail.TabStop = false;
|
||||||
|
this.gbMail.Text = "发送邮件";
|
||||||
|
//
|
||||||
|
// txtContext
|
||||||
|
//
|
||||||
|
this.txtContext.Location = new System.Drawing.Point(53, 100);
|
||||||
|
this.txtContext.Multiline = true;
|
||||||
|
this.txtContext.Name = "txtContext";
|
||||||
|
this.txtContext.Size = new System.Drawing.Size(348, 106);
|
||||||
|
this.txtContext.TabIndex = 14;
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
this.label5.AutoSize = true;
|
||||||
|
this.label5.Location = new System.Drawing.Point(6, 103);
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label5.TabIndex = 13;
|
||||||
|
this.label5.Text = "内容:";
|
||||||
|
//
|
||||||
|
// txtCaption
|
||||||
|
//
|
||||||
|
this.txtCaption.Location = new System.Drawing.Point(53, 73);
|
||||||
|
this.txtCaption.Name = "txtCaption";
|
||||||
|
this.txtCaption.Size = new System.Drawing.Size(348, 21);
|
||||||
|
this.txtCaption.TabIndex = 12;
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
this.label4.AutoSize = true;
|
||||||
|
this.label4.Location = new System.Drawing.Point(6, 76);
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label4.TabIndex = 11;
|
||||||
|
this.label4.Text = "标题:";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(6, 48);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(77, 12);
|
||||||
|
this.label3.TabIndex = 10;
|
||||||
|
this.label3.Text = "收件人信息:";
|
||||||
|
//
|
||||||
|
// cbMailTo
|
||||||
|
//
|
||||||
|
this.cbMailTo.FormattingEnabled = true;
|
||||||
|
this.cbMailTo.Location = new System.Drawing.Point(89, 45);
|
||||||
|
this.cbMailTo.Name = "cbMailTo";
|
||||||
|
this.cbMailTo.Size = new System.Drawing.Size(310, 20);
|
||||||
|
this.cbMailTo.TabIndex = 9;
|
||||||
|
//
|
||||||
|
// btnAddSender
|
||||||
|
//
|
||||||
|
this.btnAddSender.Location = new System.Drawing.Point(326, 15);
|
||||||
|
this.btnAddSender.Name = "btnAddSender";
|
||||||
|
this.btnAddSender.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnAddSender.TabIndex = 8;
|
||||||
|
this.btnAddSender.Text = "添加发件人";
|
||||||
|
this.btnAddSender.UseVisualStyleBackColor = true;
|
||||||
|
this.btnAddSender.Click += new System.EventHandler(this.btnAddSender_Click);
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(6, 20);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(77, 12);
|
||||||
|
this.label2.TabIndex = 2;
|
||||||
|
this.label2.Text = "发件人信息:";
|
||||||
|
//
|
||||||
|
// cbSender
|
||||||
|
//
|
||||||
|
this.cbSender.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cbSender.FormattingEnabled = true;
|
||||||
|
this.cbSender.Location = new System.Drawing.Point(89, 17);
|
||||||
|
this.cbSender.Name = "cbSender";
|
||||||
|
this.cbSender.Size = new System.Drawing.Size(231, 20);
|
||||||
|
this.cbSender.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// cbSendMail
|
||||||
|
//
|
||||||
|
this.cbSendMail.AutoSize = true;
|
||||||
|
this.cbSendMail.Location = new System.Drawing.Point(318, 12);
|
||||||
|
this.cbSendMail.Name = "cbSendMail";
|
||||||
|
this.cbSendMail.Size = new System.Drawing.Size(96, 16);
|
||||||
|
this.cbSendMail.TabIndex = 0;
|
||||||
|
this.cbSendMail.Text = "同时发送邮件";
|
||||||
|
this.cbSendMail.UseVisualStyleBackColor = true;
|
||||||
|
this.cbSendMail.CheckedChanged += new System.EventHandler(this.cbSendMail_CheckedChanged);
|
||||||
|
//
|
||||||
|
// frmPackage
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(427, 330);
|
||||||
|
this.Controls.Add(this.gbMail);
|
||||||
|
this.Controls.Add(this.btnExit);
|
||||||
|
this.Controls.Add(this.cbSendMail);
|
||||||
|
this.Controls.Add(this.btnOK);
|
||||||
|
this.Controls.Add(this.btnSelectPath);
|
||||||
|
this.Controls.Add(this.txtPackagePath);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Controls.Add(this.rbCustom);
|
||||||
|
this.Controls.Add(this.rbDesktop);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.Name = "frmPackage";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "打包选项";
|
||||||
|
this.gbMail.ResumeLayout(false);
|
||||||
|
this.gbMail.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.RadioButton rbDesktop;
|
||||||
|
private System.Windows.Forms.RadioButton rbCustom;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TextBox txtPackagePath;
|
||||||
|
private System.Windows.Forms.Button btnSelectPath;
|
||||||
|
private System.Windows.Forms.SaveFileDialog sfdPackagePath;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Button btnExit;
|
||||||
|
private System.Windows.Forms.GroupBox gbMail;
|
||||||
|
private System.Windows.Forms.TextBox txtContext;
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
|
private System.Windows.Forms.TextBox txtCaption;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.ComboBox cbMailTo;
|
||||||
|
private System.Windows.Forms.Button btnAddSender;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.ComboBox cbSender;
|
||||||
|
private System.Windows.Forms.CheckBox cbSendMail;
|
||||||
|
}
|
||||||
|
}
|
182
AutoPekage/frmPackage.cs
Normal file
182
AutoPekage/frmPackage.cs
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Mail;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public partial class frmPackage : Form
|
||||||
|
{
|
||||||
|
List<string> fileList;
|
||||||
|
public frmPackage(List<string> fileList)
|
||||||
|
{
|
||||||
|
this.fileList = fileList;
|
||||||
|
InitializeComponent();
|
||||||
|
cbSender.DataSource = LiteDbHelper.GetAllSender();
|
||||||
|
cbSender.DisplayMember = "Name";
|
||||||
|
cbSender.ValueMember = "Id";
|
||||||
|
cbMailTo.DataSource = LiteDbHelper.GetAllMailTo();
|
||||||
|
cbMailTo.DisplayMember = "MailTo";
|
||||||
|
var dao = LiteDbHelper.Settings;
|
||||||
|
cbSendMail.Checked = dao.SendMail;
|
||||||
|
if (dao.LastPath == null)
|
||||||
|
{
|
||||||
|
rbDesktop.Checked = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rbCustom.Checked = true;
|
||||||
|
txtPackagePath.Text = dao.LastPath;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnSelectPath_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var dao = LiteDbHelper.Settings;
|
||||||
|
sfdPackagePath.FileName = dao.DefaultFileName;
|
||||||
|
if (sfdPackagePath.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||||
|
{
|
||||||
|
txtPackagePath.Text = sfdPackagePath.FileName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rbDesktop_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (rbDesktop.Checked)
|
||||||
|
{
|
||||||
|
txtPackagePath.Enabled = false;
|
||||||
|
btnSelectPath.Enabled = false;
|
||||||
|
txtCaption.Text = LiteDbHelper.Settings.DefaultFileName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
txtPackagePath.Enabled = true;
|
||||||
|
btnSelectPath.Enabled = true;
|
||||||
|
if (txtPackagePath.Text != null)
|
||||||
|
{
|
||||||
|
txtCaption.Text = Path.GetFileName(txtPackagePath.Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void txtPackagePath_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
btnSelectPath.PerformClick();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string filePath;
|
||||||
|
var dao = LiteDbHelper.Settings;
|
||||||
|
if (rbDesktop.Checked)
|
||||||
|
{
|
||||||
|
filePath = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), dao.DefaultFileName);
|
||||||
|
if (dao.LastPath != null)
|
||||||
|
{
|
||||||
|
dao.LastPath = null;
|
||||||
|
LiteDbHelper.Settings = dao;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
filePath = txtPackagePath.Text;
|
||||||
|
if (dao.LastPath != filePath)
|
||||||
|
{
|
||||||
|
dao.LastPath = filePath;
|
||||||
|
LiteDbHelper.Settings = dao;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (File.Exists(filePath))
|
||||||
|
{
|
||||||
|
if (MessageBox.Show("该文件已存在,是否替换?", "自动打包", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||||
|
{
|
||||||
|
File.Delete(filePath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ZipControl.Zip(filePath, fileList);
|
||||||
|
if (cbSendMail.Checked)
|
||||||
|
{
|
||||||
|
var info = LiteDbHelper.GetSenderById((int)cbSender.SelectedValue);
|
||||||
|
MailMessage msg = new MailMessage();
|
||||||
|
msg.To.Add(cbMailTo.Text);
|
||||||
|
msg.From = new MailAddress(info.UserName, info.NickName, System.Text.Encoding.UTF8);
|
||||||
|
msg.Subject = txtCaption.Text;//邮件标题
|
||||||
|
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
|
||||||
|
msg.Body = txtContext.Text;//邮件内容
|
||||||
|
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
|
||||||
|
msg.IsBodyHtml = false;//是否是HTML邮件
|
||||||
|
msg.Priority = MailPriority.Normal;//邮件优先级
|
||||||
|
msg.Attachments.Add(new Attachment(filePath));
|
||||||
|
SmtpClient client = new SmtpClient(info.StmpServer);
|
||||||
|
client.Credentials = new NetworkCredential(info.UserName, info.Password);
|
||||||
|
client.EnableSsl = true;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
client.Send(msg);
|
||||||
|
//简单一点儿可以client.Send(msg);
|
||||||
|
MessageBox.Show("打包并发送邮件成功");
|
||||||
|
if (LiteDbHelper.GetAllMailTo().Where(x => x.MailTo == cbMailTo.Text).Count() == 0)
|
||||||
|
{
|
||||||
|
LiteDbHelper.AddMailTo(cbMailTo.Text);
|
||||||
|
cbMailTo.DataSource = LiteDbHelper.GetAllMailTo();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (System.Net.Mail.SmtpException ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "打包成功,发送邮件出错");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("打包完成");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnExit_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cbSendMail_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (cbSendMail.Checked)
|
||||||
|
{
|
||||||
|
gbMail.Enabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gbMail.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnAddSender_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
new frmAddSender().ShowDialog();
|
||||||
|
cbSender.DataSource = LiteDbHelper.GetAllSender();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void txtPackagePath_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (txtPackagePath.Text != null)
|
||||||
|
{
|
||||||
|
txtCaption.Text = Path.GetFileName(txtPackagePath.Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
123
AutoPekage/frmPackage.resx
Normal file
123
AutoPekage/frmPackage.resx
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<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" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="sfdPackagePath.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
330
AutoPekage/frmSettings.Designer.cs
generated
Normal file
330
AutoPekage/frmSettings.Designer.cs
generated
Normal file
@ -0,0 +1,330 @@
|
|||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
partial class frmSettings
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.txtPackageName = new System.Windows.Forms.TextBox();
|
||||||
|
this.rbLoad = new System.Windows.Forms.RadioButton();
|
||||||
|
this.cbSendMail = new System.Windows.Forms.CheckBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.rbUnload = new System.Windows.Forms.RadioButton();
|
||||||
|
this.cbAskLoad = new System.Windows.Forms.CheckBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.rbUnDelete = new System.Windows.Forms.RadioButton();
|
||||||
|
this.cbAskDelete = new System.Windows.Forms.CheckBox();
|
||||||
|
this.rbDelete = new System.Windows.Forms.RadioButton();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.btnCancel = new System.Windows.Forms.Button();
|
||||||
|
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.rbFileName = new System.Windows.Forms.RadioButton();
|
||||||
|
this.rbCustom = new System.Windows.Forms.RadioButton();
|
||||||
|
this.txtTitle = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
|
this.groupBox3.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(9, 19);
|
||||||
|
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(101, 12);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "默认打包文件名:";
|
||||||
|
//
|
||||||
|
// txtPackageName
|
||||||
|
//
|
||||||
|
this.txtPackageName.Location = new System.Drawing.Point(117, 17);
|
||||||
|
this.txtPackageName.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.txtPackageName.Name = "txtPackageName";
|
||||||
|
this.txtPackageName.Size = new System.Drawing.Size(140, 21);
|
||||||
|
this.txtPackageName.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// rbLoad
|
||||||
|
//
|
||||||
|
this.rbLoad.AutoSize = true;
|
||||||
|
this.rbLoad.Location = new System.Drawing.Point(130, 18);
|
||||||
|
this.rbLoad.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.rbLoad.Name = "rbLoad";
|
||||||
|
this.rbLoad.Size = new System.Drawing.Size(47, 16);
|
||||||
|
this.rbLoad.TabIndex = 2;
|
||||||
|
this.rbLoad.TabStop = true;
|
||||||
|
this.rbLoad.Text = "加载";
|
||||||
|
this.rbLoad.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbSendMail
|
||||||
|
//
|
||||||
|
this.cbSendMail.AutoSize = true;
|
||||||
|
this.cbSendMail.Location = new System.Drawing.Point(112, 15);
|
||||||
|
this.cbSendMail.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.cbSendMail.Name = "cbSendMail";
|
||||||
|
this.cbSendMail.Size = new System.Drawing.Size(108, 16);
|
||||||
|
this.cbSendMail.TabIndex = 3;
|
||||||
|
this.cbSendMail.Text = "是否勾选发邮件";
|
||||||
|
this.cbSendMail.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.rbUnload);
|
||||||
|
this.groupBox1.Controls.Add(this.cbAskLoad);
|
||||||
|
this.groupBox1.Controls.Add(this.rbLoad);
|
||||||
|
this.groupBox1.Location = new System.Drawing.Point(11, 42);
|
||||||
|
this.groupBox1.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Padding = new System.Windows.Forms.Padding(2);
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(244, 38);
|
||||||
|
this.groupBox1.TabIndex = 4;
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "自动加载临时目录文件";
|
||||||
|
//
|
||||||
|
// rbUnload
|
||||||
|
//
|
||||||
|
this.rbUnload.AutoSize = true;
|
||||||
|
this.rbUnload.Location = new System.Drawing.Point(181, 19);
|
||||||
|
this.rbUnload.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.rbUnload.Name = "rbUnload";
|
||||||
|
this.rbUnload.Size = new System.Drawing.Size(59, 16);
|
||||||
|
this.rbUnload.TabIndex = 8;
|
||||||
|
this.rbUnload.TabStop = true;
|
||||||
|
this.rbUnload.Text = "不加载";
|
||||||
|
this.rbUnload.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbAskLoad
|
||||||
|
//
|
||||||
|
this.cbAskLoad.AutoSize = true;
|
||||||
|
this.cbAskLoad.Location = new System.Drawing.Point(4, 18);
|
||||||
|
this.cbAskLoad.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.cbAskLoad.Name = "cbAskLoad";
|
||||||
|
this.cbAskLoad.Size = new System.Drawing.Size(96, 16);
|
||||||
|
this.cbAskLoad.TabIndex = 7;
|
||||||
|
this.cbAskLoad.Text = "询问是否加载";
|
||||||
|
this.cbAskLoad.UseVisualStyleBackColor = true;
|
||||||
|
this.cbAskLoad.CheckedChanged += new System.EventHandler(this.cbAskLoad_CheckedChanged);
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(4, 16);
|
||||||
|
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(101, 12);
|
||||||
|
this.label2.TabIndex = 5;
|
||||||
|
this.label2.Text = "勾选自动发邮件:";
|
||||||
|
//
|
||||||
|
// groupBox2
|
||||||
|
//
|
||||||
|
this.groupBox2.Controls.Add(this.rbUnDelete);
|
||||||
|
this.groupBox2.Controls.Add(this.cbAskDelete);
|
||||||
|
this.groupBox2.Controls.Add(this.rbDelete);
|
||||||
|
this.groupBox2.Location = new System.Drawing.Point(11, 84);
|
||||||
|
this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
|
||||||
|
this.groupBox2.Size = new System.Drawing.Size(244, 40);
|
||||||
|
this.groupBox2.TabIndex = 9;
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
|
this.groupBox2.Text = "自动删除临时目录文件";
|
||||||
|
//
|
||||||
|
// rbUnDelete
|
||||||
|
//
|
||||||
|
this.rbUnDelete.AutoSize = true;
|
||||||
|
this.rbUnDelete.Location = new System.Drawing.Point(181, 18);
|
||||||
|
this.rbUnDelete.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.rbUnDelete.Name = "rbUnDelete";
|
||||||
|
this.rbUnDelete.Size = new System.Drawing.Size(59, 16);
|
||||||
|
this.rbUnDelete.TabIndex = 8;
|
||||||
|
this.rbUnDelete.TabStop = true;
|
||||||
|
this.rbUnDelete.Text = "不删除";
|
||||||
|
this.rbUnDelete.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbAskDelete
|
||||||
|
//
|
||||||
|
this.cbAskDelete.AutoSize = true;
|
||||||
|
this.cbAskDelete.Location = new System.Drawing.Point(4, 18);
|
||||||
|
this.cbAskDelete.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.cbAskDelete.Name = "cbAskDelete";
|
||||||
|
this.cbAskDelete.Size = new System.Drawing.Size(96, 16);
|
||||||
|
this.cbAskDelete.TabIndex = 7;
|
||||||
|
this.cbAskDelete.Text = "询问是否删除";
|
||||||
|
this.cbAskDelete.UseVisualStyleBackColor = true;
|
||||||
|
this.cbAskDelete.CheckedChanged += new System.EventHandler(this.cbAskDelete_CheckedChanged);
|
||||||
|
//
|
||||||
|
// rbDelete
|
||||||
|
//
|
||||||
|
this.rbDelete.AutoSize = true;
|
||||||
|
this.rbDelete.Location = new System.Drawing.Point(130, 18);
|
||||||
|
this.rbDelete.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.rbDelete.Name = "rbDelete";
|
||||||
|
this.rbDelete.Size = new System.Drawing.Size(47, 16);
|
||||||
|
this.rbDelete.TabIndex = 2;
|
||||||
|
this.rbDelete.TabStop = true;
|
||||||
|
this.rbDelete.Text = "删除";
|
||||||
|
this.rbDelete.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
this.btnOK.Location = new System.Drawing.Point(41, 219);
|
||||||
|
this.btnOK.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnOK.TabIndex = 10;
|
||||||
|
this.btnOK.Text = "确定";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// btnCancel
|
||||||
|
//
|
||||||
|
this.btnCancel.Location = new System.Drawing.Point(162, 219);
|
||||||
|
this.btnCancel.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.btnCancel.Name = "btnCancel";
|
||||||
|
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnCancel.TabIndex = 11;
|
||||||
|
this.btnCancel.Text = "取消";
|
||||||
|
this.btnCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||||
|
//
|
||||||
|
// groupBox3
|
||||||
|
//
|
||||||
|
this.groupBox3.Controls.Add(this.txtTitle);
|
||||||
|
this.groupBox3.Controls.Add(this.rbCustom);
|
||||||
|
this.groupBox3.Controls.Add(this.rbFileName);
|
||||||
|
this.groupBox3.Controls.Add(this.label3);
|
||||||
|
this.groupBox3.Controls.Add(this.label2);
|
||||||
|
this.groupBox3.Controls.Add(this.cbSendMail);
|
||||||
|
this.groupBox3.Location = new System.Drawing.Point(11, 128);
|
||||||
|
this.groupBox3.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.groupBox3.Name = "groupBox3";
|
||||||
|
this.groupBox3.Padding = new System.Windows.Forms.Padding(2);
|
||||||
|
this.groupBox3.Size = new System.Drawing.Size(244, 87);
|
||||||
|
this.groupBox3.TabIndex = 10;
|
||||||
|
this.groupBox3.TabStop = false;
|
||||||
|
this.groupBox3.Text = "邮件相关";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(4, 38);
|
||||||
|
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(65, 12);
|
||||||
|
this.label3.TabIndex = 6;
|
||||||
|
this.label3.Text = "邮件标题:";
|
||||||
|
//
|
||||||
|
// rbFileName
|
||||||
|
//
|
||||||
|
this.rbFileName.AutoSize = true;
|
||||||
|
this.rbFileName.Location = new System.Drawing.Point(85, 36);
|
||||||
|
this.rbFileName.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.rbFileName.Name = "rbFileName";
|
||||||
|
this.rbFileName.Size = new System.Drawing.Size(59, 16);
|
||||||
|
this.rbFileName.TabIndex = 9;
|
||||||
|
this.rbFileName.TabStop = true;
|
||||||
|
this.rbFileName.Text = "文件名";
|
||||||
|
this.rbFileName.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// rbCustom
|
||||||
|
//
|
||||||
|
this.rbCustom.AutoSize = true;
|
||||||
|
this.rbCustom.Location = new System.Drawing.Point(157, 36);
|
||||||
|
this.rbCustom.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.rbCustom.Name = "rbCustom";
|
||||||
|
this.rbCustom.Size = new System.Drawing.Size(83, 16);
|
||||||
|
this.rbCustom.TabIndex = 10;
|
||||||
|
this.rbCustom.TabStop = true;
|
||||||
|
this.rbCustom.Text = "自定义内容";
|
||||||
|
this.rbCustom.UseVisualStyleBackColor = true;
|
||||||
|
this.rbCustom.CheckedChanged += new System.EventHandler(this.rbCustom_CheckedChanged);
|
||||||
|
//
|
||||||
|
// txtTitle
|
||||||
|
//
|
||||||
|
this.txtTitle.Enabled = false;
|
||||||
|
this.txtTitle.Location = new System.Drawing.Point(4, 56);
|
||||||
|
this.txtTitle.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.txtTitle.Name = "txtTitle";
|
||||||
|
this.txtTitle.Size = new System.Drawing.Size(236, 21);
|
||||||
|
this.txtTitle.TabIndex = 12;
|
||||||
|
//
|
||||||
|
// frmSettings
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(270, 249);
|
||||||
|
this.Controls.Add(this.groupBox3);
|
||||||
|
this.Controls.Add(this.btnCancel);
|
||||||
|
this.Controls.Add(this.btnOK);
|
||||||
|
this.Controls.Add(this.groupBox2);
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.txtPackageName);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "frmSettings";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "设置";
|
||||||
|
this.Load += new System.EventHandler(this.frmSettings_Load);
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
|
this.groupBox3.ResumeLayout(false);
|
||||||
|
this.groupBox3.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TextBox txtPackageName;
|
||||||
|
private System.Windows.Forms.RadioButton rbLoad;
|
||||||
|
private System.Windows.Forms.CheckBox cbSendMail;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.RadioButton rbUnload;
|
||||||
|
private System.Windows.Forms.CheckBox cbAskLoad;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.RadioButton rbUnDelete;
|
||||||
|
private System.Windows.Forms.CheckBox cbAskDelete;
|
||||||
|
private System.Windows.Forms.RadioButton rbDelete;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Button btnCancel;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox3;
|
||||||
|
private System.Windows.Forms.TextBox txtTitle;
|
||||||
|
private System.Windows.Forms.RadioButton rbCustom;
|
||||||
|
private System.Windows.Forms.RadioButton rbFileName;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
}
|
||||||
|
}
|
122
AutoPekage/frmSettings.cs
Normal file
122
AutoPekage/frmSettings.cs
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public partial class frmSettings : Form
|
||||||
|
{
|
||||||
|
|
||||||
|
private SettingsDao dao;
|
||||||
|
public frmSettings()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void frmSettings_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
dao = LiteDbHelper.Settings;
|
||||||
|
txtPackageName.Text = dao.DefaultFileName;
|
||||||
|
cbSendMail.Checked = dao.SendMail;
|
||||||
|
cbAskLoad.Checked = dao.AskAutoLoadFile;
|
||||||
|
cbAskDelete.Checked = dao.AskAutoDeleteFile;
|
||||||
|
rbLoad.Checked = dao.AutoLoadFile == 1 ? true : false;
|
||||||
|
rbUnload.Checked = dao.AutoLoadFile == 0 ? true : false;
|
||||||
|
rbDelete.Checked = dao.AutoDeleteFile == 1 ? true : false;
|
||||||
|
rbUnDelete.Checked = dao.AutoDeleteFile == 0 ? true : false;
|
||||||
|
rbCustom.Checked = dao.TitleModel == 1 ? true : false;
|
||||||
|
rbFileName.Checked = dao.TitleModel == 0 ? true : false;
|
||||||
|
if (rbCustom.Checked)
|
||||||
|
{
|
||||||
|
txtTitle.Text = dao.Title;
|
||||||
|
txtTitle.Enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cbAskLoad_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (cbAskLoad.Checked)
|
||||||
|
{
|
||||||
|
rbLoad.Enabled = false;
|
||||||
|
rbUnload.Enabled = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rbLoad.Enabled = true;
|
||||||
|
rbUnload.Enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cbAskDelete_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (cbAskDelete.Checked)
|
||||||
|
{
|
||||||
|
rbDelete.Enabled = false;
|
||||||
|
rbUnDelete.Enabled = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rbDelete.Enabled = true;
|
||||||
|
rbUnDelete.Enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
dao.DefaultFileName = txtPackageName.Text;
|
||||||
|
dao.SendMail = cbSendMail.Checked;
|
||||||
|
dao.AskAutoLoadFile = cbAskLoad.Checked;
|
||||||
|
dao.AskAutoDeleteFile = cbAskDelete.Checked;
|
||||||
|
if (rbLoad.Checked)
|
||||||
|
{
|
||||||
|
dao.AutoLoadFile = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dao.AutoLoadFile = 0;
|
||||||
|
}
|
||||||
|
if (rbDelete.Checked)
|
||||||
|
{
|
||||||
|
dao.AutoDeleteFile = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dao.AutoDeleteFile = 0;
|
||||||
|
}
|
||||||
|
if (rbFileName.Checked)
|
||||||
|
{
|
||||||
|
dao.TitleModel = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dao.TitleModel = 1;
|
||||||
|
dao.Title = txtTitle.Text;
|
||||||
|
}
|
||||||
|
LiteDbHelper.Settings = dao;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rbCustom_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (rbCustom.Checked)
|
||||||
|
{
|
||||||
|
txtTitle.Enabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
txtTitle.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
AutoPekage/frmSettings.resx
Normal file
120
AutoPekage/frmSettings.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<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" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
122
AutoPekage/frmStmpServer.Designer.cs
generated
Normal file
122
AutoPekage/frmStmpServer.Designer.cs
generated
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
partial class frmStmpServer
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.txtServerName = new System.Windows.Forms.TextBox();
|
||||||
|
this.txtStmpAddr = new System.Windows.Forms.TextBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.btnCencel = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 24);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(101, 12);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "发信服务器名称:";
|
||||||
|
//
|
||||||
|
// txtServerName
|
||||||
|
//
|
||||||
|
this.txtServerName.Location = new System.Drawing.Point(119, 21);
|
||||||
|
this.txtServerName.Name = "txtServerName";
|
||||||
|
this.txtServerName.Size = new System.Drawing.Size(153, 21);
|
||||||
|
this.txtServerName.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// txtStmpAddr
|
||||||
|
//
|
||||||
|
this.txtStmpAddr.Location = new System.Drawing.Point(119, 53);
|
||||||
|
this.txtStmpAddr.Name = "txtStmpAddr";
|
||||||
|
this.txtStmpAddr.Size = new System.Drawing.Size(153, 21);
|
||||||
|
this.txtStmpAddr.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 56);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(65, 12);
|
||||||
|
this.label2.TabIndex = 2;
|
||||||
|
this.label2.Text = "Smtp地址:";
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
this.btnOK.Location = new System.Drawing.Point(26, 88);
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnOK.TabIndex = 4;
|
||||||
|
this.btnOK.Text = "确定";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// btnCencel
|
||||||
|
//
|
||||||
|
this.btnCencel.Location = new System.Drawing.Point(181, 88);
|
||||||
|
this.btnCencel.Name = "btnCencel";
|
||||||
|
this.btnCencel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnCencel.TabIndex = 5;
|
||||||
|
this.btnCencel.Text = "返回";
|
||||||
|
this.btnCencel.UseVisualStyleBackColor = true;
|
||||||
|
this.btnCencel.Click += new System.EventHandler(this.btnCencel_Click);
|
||||||
|
//
|
||||||
|
// frmStmpServer
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(284, 126);
|
||||||
|
this.Controls.Add(this.btnCencel);
|
||||||
|
this.Controls.Add(this.btnOK);
|
||||||
|
this.Controls.Add(this.txtStmpAddr);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.txtServerName);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "frmStmpServer";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "添加发信服务器";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TextBox txtServerName;
|
||||||
|
private System.Windows.Forms.TextBox txtStmpAddr;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Button btnCencel;
|
||||||
|
}
|
||||||
|
}
|
35
AutoPekage/frmStmpServer.cs
Normal file
35
AutoPekage/frmStmpServer.cs
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AutoPekage
|
||||||
|
{
|
||||||
|
public partial class frmStmpServer : Form
|
||||||
|
{
|
||||||
|
public frmStmpServer()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (LiteDbHelper.GetAllStmpServer().Where(x => x.Stmp == txtStmpAddr.Text || x.ServerName == txtServerName.Text).Count() > 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("stmp地址或发信服务器名字已经存在,请检查!", "自动打包", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LiteDbHelper.AddStmpServer(txtServerName.Text, txtStmpAddr.Text);
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnCencel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
AutoPekage/frmStmpServer.resx
Normal file
120
AutoPekage/frmStmpServer.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<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" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
7
AutoPekage/packages.config
Normal file
7
AutoPekage/packages.config
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Costura.Fody" version="1.3.3.0" targetFramework="net40" developmentDependency="true" />
|
||||||
|
<package id="Fody" version="1.28.3" targetFramework="net40" developmentDependency="true" />
|
||||||
|
<package id="LiteDB" version="2.0.4" targetFramework="net40" />
|
||||||
|
<package id="SharpCompress" version="0.14.1" targetFramework="net40" />
|
||||||
|
</packages>
|
Loading…
Reference in New Issue
Block a user