怎么把S4的SecSettings.apk编辑器制作共存成S5风格

三星i9100G新浪天气怎么下载?来自: ALAN 日分享至 :
三星i9100G新浪天气怎么下载?谢谢分享至 :
下一篇:上一篇:其它类似问题相关帖子相关文章--三星i9100G新浪天气怎么下载?/ registration_1
项目语言:POWERBUILDER
权限:read-only(如需更高权限请先加入项目)
registration_1/
Index: WaveLib/WaveMain.cs
===================================================================
--- WaveLib/WaveMain.cs (revision 0)
+++ WaveLib/WaveMain.cs (revision 34)
@@ -0,0 +1,141 @@
+using System.Collections.G
+using System.L
+using System.T
+using System.IO;
+using DotNetS
+using System.Windows.F
+namespace WaveLib
public class WaveMain
private WaveOutPlayer m_P
private Stream m_AudioS
private WaveFormat m_F
private int _DevId;
private int m_AudioS
public int DevId
get { return _DevId; }
set { _DevId = }
public WaveMain(string msg, int number)
CloseFile();
//写入语音文件
SpFileStream stream = new SpFileStream();
stream.Open(number + &.wav&, SpeechStreamFileMode.SSFMCreateForWrite, false);
SpVoice voice = new SpVoice();
voice.AudioOutputStream =
voice.Speak(msg);
voice.WaitUntilDone(System.Threading.Timeout.Infinite);
stream.Close();
//加载语音文件
WaveStream S = new WaveStream(number + &.wav&);
m_AudioSize = Convert.ToInt32(S.Length);
if (S.Length &= 0)
throw new Exception(&Invalid WAV file&);
m_Format = S.F
if (m_Format.wFormatTag != (short)WaveFormats.Pcm && m_Format.wFormatTag != (short)WaveFormats.Float)
throw new Exception(&Olny PCM files are supported&);
m_AudioStream = S;
//文件加载到内存不会锁定文件
//byte[] file = new byte[2000000];
//file = File.ReadAllBytes(&begin.wav&);
//MemoryStream ms = new MemoryStream();
//WaveStream S = new WaveStream(ms);
//m_AudioSize = Convert.ToInt32(ms.Length);
//if (ms.Length &= 0)
throw new Exception(&Invalid WAV file&);
//if (S.Length &= 0)
throw new Exception(&无效的WAV文件.&);//Invalid WAV file
//m_Format = S.F
//if (m_Format.wFormatTag != (short)WaveFormats.Pcm && m_Format.wFormatTag != (short)WaveFormats.Float)
throw new Exception(&Olny PCM files are supported&);
//m_AudioStream = S;
catch (Exception e)
CloseFile();
private void Filler(IntPtr data, int size)
byte[] b = new byte[size];
if (m_AudioStream != null)
int pos = 0;
//循环加载流内容
//while (pos & size)
int toget = size -
int got = m_AudioStream.Read(b, pos, toget);
if (got & toget)
m_AudioStream.Position = 0; // loop if the file ends
for (int i = 0; i & b.L i++)
System.Runtime.InteropServices.Marshal.Copy(b, 0, data, size);
public void Play()
if (m_AudioStream != null)
m_AudioStream.Position = 0;
//m_Player = new WaveOutPlayer(DevId, m_Format, 16384, 3, new BufferFillEventHandler(Filler));
m_Player = new WaveOutPlayer(DevId, m_Format, m_AudioSize, 3, new BufferFillEventHandler(Filler), m_AudioStream, DevId);
public bool getFinished()
return m_Player.getFinished();
public void Stop()
if (m_Player != null)
m_Player.Dispose();
m_Player =
public void CloseFile()
if (m_AudioStream != null)
m_AudioStream.Close();
m_AudioStream =
Index: WaveLib/WaveNative.cs
===================================================================
--- WaveLib/WaveNative.cs (revision 0)
+++ WaveLib/WaveNative.cs (revision 34)
@@ -0,0 +1,132 @@
+using System.Runtime.InteropS
+namespace WaveLib
public enum WaveFormats
[StructLayout(LayoutKind.Sequential)]
public struct WAVEOUTCAPS
public short wM
public short wP
public int vDriverV
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string szP
public uint dwF
public short wC
public short wR
public uint dwS
public override string ToString()
return string.Format(&wMid:{0}|wPid:{1}|vDriverVersion:{2}|'szPname:{3}'|dwFormats:{4}|wChannels:{5}|wReserved:{6}|dwSupport:{7}&, new object[] { wMid, wPid, vDriverVersion, szPname, dwFormats, wChannels, wReserved, dwSupport });
public struct WAVEVALUE
public short wMid { }
public short wPid { }
public int vDriverVersion { }
public string szPname { }
public uint dwFormats { }
public short wChannels { }
public short wReserved { }
public uint dwSupport { }
public int DevId { }
public override string ToString()
return string.Format(&wMid:{0}|wPid:{1}|vDriverVersion:{2}|'szPname:{3}'|dwFormats:{4}|wChannels:{5}|wReserved:{6}|dwSupport:{7}&, new object[] { wMid, wPid, vDriverVersion, szPname, dwFormats, wChannels, wReserved, dwSupport });
[StructLayout(LayoutKind.Sequential)]
public class WaveFormat
public short wFormatT
public short nC
public int nSamplesPerS
public int nAvgBytesPerS
public short nBlockA
public short wBitsPerS
public short cbS
public WaveFormat(int rate, int bits, int channels)
wFormatTag = (short)WaveFormats.P
nChannels = (short)
nSamplesPerSec =
wBitsPerSample = (short)
cbSize = 0;
nBlockAlign = (short)(channels * (bits / 8));
nAvgBytesPerSec = nSamplesPerSec * nBlockA
public class WaveNative
public const int MMSYSERR_NOERROR = 0; // no error
public const int MM_WOM_OPEN = 0x3BB;
public const int MM_WOM_CLOSE = 0x3BC;
public const int MM_WOM_DONE = 0x3BD;
public const int CALLBACK_FUNCTION = 0x;
// dwCallback is a FARPROC
public const int TIME_MS = 0x0001;
// time in milliseconds
public const int TIME_SAMPLES = 0x0002;
// number of wave samples
public const int TIME_BYTES = 0x0004;
// current byte offset
// callbacks
public delegate void WaveDelegate(IntPtr hdrvr, int uMsg, int dwUser, ref WaveHdr wavhdr, int dwParam2);
// structs
[StructLayout(LayoutKind.Sequential)]
public struct WaveHdr
public IntPtr lpD // pointer to locked data buffer
public int dwBufferL // length of data buffer
public int dwBytesR // used for input only
public IntPtr dwU // for client's use
public int dwF // assorted flags (see defines)
public int dwL // loop control counter
public IntPtr lpN // PWaveHdr, reserved for driver
// reserved for driver
private const string mmdll = &winmm.dll&;
// native calls
[DllImport(mmdll)]
public static extern int waveOutGetNumDevs();
[DllImport(mmdll)]
public static extern uint waveOutGetDevCaps(int index, ref WAVEOUTCAPS pwoc, /*uint*/ int cbwoc);
[DllImport(mmdll)]
public static extern int waveOutPrepareHeader(IntPtr hWaveOut, ref WaveHdr lpWaveOutHdr, int uSize);
[DllImport(mmdll)]
public static extern int waveOutUnprepareHeader(IntPtr hWaveOut, ref WaveHdr lpWaveOutHdr, int uSize);
[DllImport(mmdll)]
public static extern int waveOutWrite(IntPtr hWaveOut, ref WaveHdr lpWaveOutHdr, int uSize);
[DllImport(mmdll)]
public static extern int waveOutOpen(out IntPtr hWaveOut, int uDeviceID, WaveFormat lpFormat, WaveDelegate dwCallback, int dwInstance, int dwFlags);
[DllImport(mmdll)]
public static extern int waveOutReset(IntPtr hWaveOut);
[DllImport(mmdll)]
public static extern int waveOutClose(IntPtr hWaveOut);
[DllImport(mmdll)]
public static extern int waveOutPause(IntPtr hWaveOut);
[DllImport(mmdll)]
public static extern int waveOutRestart(IntPtr hWaveOut);
[DllImport(mmdll)]
public static extern int waveOutGetPosition(IntPtr hWaveOut, out int lpInfo, int uSize);
[DllImport(mmdll)]
public static extern int waveOutSetVolume(int hWaveOut, System.UInt32 dwVolume);
[DllImport(mmdll)]
public static extern int waveOutGetVolume(int hWaveOut, out System.UInt32 dwVolume);
Index: WaveLib/WaveOut.cs
===================================================================
--- WaveLib/WaveOut.cs (revision 0)
+++ WaveLib/WaveOut.cs (revision 34)
@@ -0,0 +1,275 @@
THIS CODE AND INFORMATION IS PROVIDED &AS IS& WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
This material may not be duplicated in whole or in part, except for
personal use, without the express written consent of the author.
Copyright (C)
Ianier Munoz. All Rights Reserved.
+using System.T
+using System.Runtime.InteropS
+using System.IO;
+namespace WaveLib
internal class WaveOutHelper
public static void Try(int err)
if (err != WaveNative.MMSYSERR_NOERROR)
err.ToString();
public delegate void BufferFillEventHandler(IntPtr data, int size);
internal class WaveOutBuffer : IDisposable
public WaveOutBuffer NextB
private AutoResetEvent m_PlayEvent = new AutoResetEvent(false);
private IntPtr m_WaveO
private WaveNative.WaveHdr m_H
private byte[] m_HeaderD
private GCHandle m_HeaderH
private GCHandle m_HeaderDataH
private bool m_P
internal static void WaveOutProc(IntPtr hdrvr, int uMsg, int dwUser, ref WaveNative.WaveHdr wavhdr, int dwParam2)
if (uMsg == WaveNative.MM_WOM_DONE)
GCHandle h = (GCHandle)wavhdr.dwU
WaveOutBuffer buf = (WaveOutBuffer)h.T
buf.OnCompleted();
public WaveOutBuffer(IntPtr waveOutHandle, int size)
m_WaveOut = waveOutH
m_HeaderHandle = GCHandle.Alloc(m_Header, GCHandleType.Pinned);
m_Header.dwUser = (IntPtr)GCHandle.Alloc(this);
m_HeaderData = new byte[size];
m_HeaderDataHandle = GCHandle.Alloc(m_HeaderData, GCHandleType.Pinned);
m_Header.lpData = m_HeaderDataHandle.AddrOfPinnedObject();
m_Header.dwBufferLength =
WaveOutHelper.Try(WaveNative.waveOutPrepareHeader(m_WaveOut, ref m_Header, Marshal.SizeOf(m_Header)));
~WaveOutBuffer()
Dispose();
public void Dispose()
if (m_Header.lpData != IntPtr.Zero)
WaveNative.waveOutUnprepareHeader(m_WaveOut, ref m_Header, Marshal.SizeOf(m_Header));
m_HeaderHandle.Free();
m_Header.lpData = IntPtr.Z
m_PlayEvent.Close();
if (m_HeaderDataHandle.IsAllocated)
m_HeaderDataHandle.Free();
GC.SuppressFinalize(this);
public int Size
get { return m_Header.dwBufferL }
public IntPtr Data
get { return m_Header.lpD }
public bool Play()
lock (this)
m_PlayEvent.Reset();
m_Playing = WaveNative.waveOutWrite(m_WaveOut, ref m_Header, Marshal.SizeOf(m_Header)) == WaveNative.MMSYSERR_NOERROR;
return m_P
public void WaitFor()
if (m_Playing)
m_Playing = m_PlayEvent.WaitOne();
Thread.Sleep(0);
public void OnCompleted()
m_PlayEvent.Set();
m_Playing =
public class WaveOutPlayer : IDisposable
private IntPtr m_WaveO
private WaveOutBuffer m_B // linked list
private WaveOutBuffer m_CurrentBuffer, m_CoutB
private Thread m_T
private BufferFillEventHandler m_FillP
private bool m_F
private byte m_
private Stream m_AudioS
private WaveNative.WaveDelegate m_BufferProc = new WaveNative.WaveDelegate(WaveOutBuffer.WaveOutProc);
public static int DeviceCount
get { return WaveNative.waveOutGetNumDevs(); }
public bool getFinished()
return m_F
public WaveOutPlayer(int device, WaveFormat format, int bufferSize, int bufferCount, BufferFillEventHandler fillProc, Stream audioStream, int fileID)
m_AudioStream = audioS
m_zero = format.wBitsPerSample == 8 ? (byte)128 : (byte)0;
m_FillProc = fillP
WaveOutHelper.Try(WaveNative.waveOutOpen(out m_WaveOut, device, format, m_BufferProc, 0, WaveNative.CALLBACK_FUNCTION));
AllocateBuffers(bufferSize, bufferCount);
m_Thread = new Thread(new ParameterizedThreadStart(ThreadProc));
m_Thread.Start(fileID);
~WaveOutPlayer()
Dispose();
public void Dispose()
if (m_Thread != null)
m_Finished =
if (m_WaveOut != IntPtr.Zero)
WaveNative.waveOutReset(m_WaveOut);
m_Thread.Join();
m_FillProc =
FreeBuffers();
if (m_WaveOut != IntPtr.Zero)
WaveNative.waveOutClose(m_WaveOut);
m_Thread =
m_WaveOut = IntPtr.Z
GC.SuppressFinalize(this);
private void ThreadProc(object obj)
//循环播放内容
//while (!m_Finished)
int fileID = (int)
Advance();
if (m_FillProc != null && !m_Finished)
m_FillProc(m_CurrentBuffer.Data, m_CurrentBuffer.Size);
// zero out buffer
byte v = m_
byte[] b = new byte[m_CurrentBuffer.Size];
for (int i = 0; i & b.L i++)
Marshal.Copy(b, 0, m_CurrentBuffer.Data, b.Length);
m_CurrentBuffer.Play();
m_Finished =
WaitForAllBuffers();
if (m_AudioStream != null)
m_AudioStream.Close();
if (File.Exists(@&& + fileID + &.wav&))
//如果存在则删除
File.Delete(@&& + fileID + &.wav&);
private void AllocateBuffers(int bufferSize, int bufferCount)
FreeBuffers();
if (bufferCount & 0)
m_Buffers = new WaveOutBuffer(m_WaveOut, bufferSize);
WaveOutBuffer Prev = m_B
for (int i = 1; i & bufferC i++)
WaveOutBuffer Buf = new WaveOutBuffer(m_WaveOut, bufferSize);
Prev.NextBuffer = B
Prev.NextBuffer = m_B
private void FreeBuffers()
m_CurrentBuffer =
if (m_Buffers != null)
WaveOutBuffer First = m_B
m_Buffers =
WaveOutBuffer Current = F
WaveOutBuffer Next = Current.NextB
Current.Dispose();
Current = N
} while (Current != First);
private void Advance()
m_CurrentBuffer = m_CurrentBuffer == null ? m_Buffers : m_CurrentBuffer.NextB
m_CurrentBuffer.WaitFor();
private void WaitForAllBuffers()
WaveOutBuffer Buf = m_B
while (Buf.NextBuffer != m_Buffers)
Buf.WaitFor();
Buf = Buf.NextB
Index: WaveLib/WaveStream.cs
===================================================================
--- WaveLib/WaveStream.cs (revision 0)
+++ WaveLib/WaveStream.cs (revision 34)
@@ -0,0 +1,153 @@
+using System.IO;
+namespace WaveLib
public class WaveStream : Stream, IDisposable
private Stream m_S
private long m_DataP
private long m_L
private WaveFormat m_F
public WaveFormat Format
get { return m_F }
private string ReadChunk(BinaryReader reader)
byte[] ch = new byte[4];
reader.Read(ch, 0, ch.Length);
return System.Text.Encoding.ASCII.GetString(ch);
private void ReadHeader()
BinaryReader Reader = new BinaryReader(m_Stream);
if (ReadChunk(Reader) != &RIFF&)
throw new Exception(&Invalid file format&);
Reader.ReadInt32(); // File length minus first 8 bytes of RIFF description, we don't use it
if (ReadChunk(Reader) != &WAVE&)
throw new Exception(&Invalid file format&);
if (ReadChunk(Reader) != &fmt &)
throw new Exception(&Invalid file format&);
int len = Reader.ReadInt32();
if (len & 16) // bad format chunk length
throw new Exception(&Invalid file format&);
m_Format = new WaveFormat(2); // initialize to any format
m_Format.wFormatTag = Reader.ReadInt16();
m_Format.nChannels = Reader.ReadInt16();
m_Format.nSamplesPerSec = Reader.ReadInt32();
m_Format.nAvgBytesPerSec = Reader.ReadInt32();
m_Format.nBlockAlign = Reader.ReadInt16();
m_Format.wBitsPerSample = Reader.ReadInt16();
// advance in the stream to skip the wave format block
len -= 16; // minimum format size
while (len & 0)
Reader.ReadByte();
// assume the data chunk is aligned
while (m_Stream.Position & m_Stream.Length && ReadChunk(Reader) != &data&)
if (m_Stream.Position &= m_Stream.Length)
throw new Exception(&Invalid file format&);
m_Length = Reader.ReadInt32();
m_DataPos = m_Stream.P
Position = 0;
public WaveStream(string fileName)
: this(new FileStream(fileName, FileMode.Open))
public WaveStream(Stream S)
m_Stream = S;
ReadHeader();
~WaveStream()
Dispose();
public void Dispose()
if (m_Stream != null)
m_Stream.Close();
GC.SuppressFinalize(this);
public override bool CanRead
public override bool CanSeek
public override bool CanWrite
public override long Length
get { return m_L }
public override long Position
get { return m_Stream.Position - m_DataP }
set { Seek(value, SeekOrigin.Begin); }
public override void Close()
Dispose();
public override void Flush()
public override void SetLength(long len)
throw new InvalidOperationException();
public override long Seek(long pos, SeekOrigin o)
switch (o)
case SeekOrigin.Begin:
m_Stream.Position = pos + m_DataP
case SeekOrigin.Current:
m_Stream.Seek(pos, SeekOrigin.Current);
case SeekOrigin.End:
m_Stream.Position = m_DataPos + m_Length -
return this.P
public override int Read(byte[] buf, int ofs, int count)
int toread = (int)Math.Min(count, m_Length - Position);
return m_Stream.Read(buf, ofs, toread);
public override void Write(byte[] buf, int ofs, int count)
throw new InvalidOperationException();
Index: PDTools.suo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: PDTools.suo
===================================================================
--- PDTools.suo (revision 0)
+++ PDTools.suo (revision 34)
Property changes on: PDTools.suo
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: MainFrm.Designer.cs
===================================================================
--- MainFrm.Designer.cs (revision 0)
+++ MainFrm.Designer.cs (revision 34)
@@ -0,0 +1,337 @@
+namespace PDTools
partial class MainFrm
/// &summary&
/// 必需的设计器变量。
/// &/summary&
ponentModel.IContainer components =
/// &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()
ponents = ponentModel.Container();
ponentResourceManager resources = ponentResourceManager(typeof(MainFrm));
this.bgwRead = ponentModel.BackgroundWorker();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.contextMenuStrip1 = new System.Windows.Forms.ponents);
this.CopyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.PasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.btnRead = new System.Windows.Forms.Button();
this.btnTTS = new System.Windows.Forms.Button();
this.bgwTTS1 = ponentModel.BackgroundWorker();
this.mediaSlider1 = new MediaSlider.MediaSlider();
this.btnPlay = new System.Windows.Forms.Button();
this.lbMessage = new System.Windows.Forms.Label();
this.bgwMessage = ponentModel.BackgroundWorker();
this.cmbMp3Size = new System.boBox();
this.myNotifyIcon = new System.Windows.Forms.ponents);
this.MyNotifyIconcontextMenuStrip = new System.Windows.Forms.ponents);
this.ShowFormToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.HideFormToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ExitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnAbout = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.contextMenuStrip1.SuspendLayout();
this.MyNotifyIconcontextMenuStrip.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
// bgwRead
this.bgwRead.WorkerSupportsCancellation =
this.bgwRead.DoWork += ponentModel.DoWorkEventHandler(this.bgwRead_DoWork);
this.bgwRead.RunWorkerCompleted += ponentModel.RunWorkerCompletedEventHandler(this.bgwRead_RunWorkerCompleted);
// richTextBox1
this.richTextBox1.ContextMenuStrip = this.contextMenuStrip1;
this.richTextBox1.Location = new System.Drawing.Point(39, 26);
this.richTextBox1.Name = &richTextBox1&;
this.richTextBox1.Size = new System.Drawing.Size(500, 217);
this.richTextBox1.TabIndex = 0;
this.richTextBox1.Text = &&;
this.richTextBox1.SelectionChanged += new System.EventHandler(this.richTextBox1_SelectionChanged);
this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
// contextMenuStrip1
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.CopyToolStripMenuItem,
this.PasteToolStripMenuItem});
this.contextMenuStrip1.Name = &contextMenuStrip1&;
this.contextMenuStrip1.Size = new System.Drawing.Size(117, 48);
// CopyToolStripMenuItem
this.CopyToolStripMenuItem.Enabled =
this.CopyToolStripMenuItem.Name = &CopyToolStripMenuItem&;
this.CopyToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
this.CopyToolStripMenuItem.Text = &复制(&C)&;
this.CopyToolStripMenuItem.Click += new System.EventHandler(this.CopyToolStripMenuItem_Click);
// PasteToolStripMenuItem
this.PasteToolStripMenuItem.Name = &PasteToolStripMenuItem&;
this.PasteToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
this.PasteToolStripMenuItem.Text = &粘贴(&V)&;
this.PasteToolStripMenuItem.Click += new System.EventHandler(this.PasteToolStripMenuItem_Click);
// btnRead
this.btnRead.Location = new System.Drawing.Point(14, 47);
this.btnRead.Name = &btnRead&;
this.btnRead.Size = new System.Drawing.Size(75, 23);
this.btnRead.TabIndex = 1;
this.btnRead.Text = &朗读&;
this.btnRead.UseVisualStyleBackColor =
this.btnRead.Click += new System.EventHandler(this.btnRead_Click);
this.btnTTS.Location = new System.Drawing.Point(107, 47);
this.btnTTS.Name = &btnTTS&;
this.btnTTS.Size = new System.Drawing.Size(73, 23);
this.btnTTS.TabIndex = 2;
this.btnTTS.Text = &转换成MP3&;
this.btnTTS.UseVisualStyleBackColor =
this.btnTTS.Click += new System.EventHandler(this.btnTTS_Click);
// bgwTTS1
this.bgwTTS1.WorkerSupportsCancellation =
this.bgwTTS1.DoWork += ponentModel.DoWorkEventHandler(this.bgwTTS1_DoWork);
this.bgwTTS1.RunWorkerCompleted += ponentModel.RunWorkerCompletedEventHandler(this.bgwTTS1_RunWorkerCompleted);
// mediaSlider1
this.mediaSlider1.Animated =
this.mediaSlider1.AnimationSize = 0.2F;
this.mediaSlider1.AnimationSpeed = MediaSlider.MediaSlider.AnimateSpeed.N
this.mediaSlider1.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.mediaSlider1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.mediaSlider1.BackColor = System.Drawing.Color.DimG
this.mediaSlider1.BackGroundImage =
this.mediaSlider1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.mediaSlider1.ButtonAccentColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.mediaSlider1.ButtonBorderColor = System.Drawing.Color.B
this.mediaSlider1.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(160)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.mediaSlider1.ButtonCornerRadius = ((uint)(4u));
this.mediaSlider1.ButtonSize = new System.Drawing.Size(14, 14);
this.mediaSlider1.ButtonStyle = MediaSlider.MediaSlider.ButtonType.PointerDownL
this.mediaSlider1.ContextMenuStrip =
this.mediaSlider1.LargeChange = 1;
this.mediaSlider1.Location = new System.Drawing.Point(14, 17);
this.mediaSlider1.Margin = new System.Windows.Forms.Padding(0);
this.mediaSlider1.Maximum = 8;
this.mediaSlider1.Minimum = -8;
this.mediaSlider1.Name = &mediaSlider1&;
this.mediaSlider1.Orientation = System.Windows.Forms.Orientation.H
this.mediaSlider1.ShowButtonOnHover =
this.mediaSlider1.Size = new System.Drawing.Size(277, 27);
this.mediaSlider1.SliderFlyOut = MediaSlider.MediaSlider.FlyOutStyle.N
this.mediaSlider1.SmallChange = 1;
this.mediaSlider1.SmoothScrolling =
this.mediaSlider1.TabIndex = 3;
this.mediaSlider1.TickColor = System.Drawing.Color.DarkG
this.mediaSlider1.TickStyle = System.Windows.Forms.TickStyle.N
this.mediaSlider1.TickType = MediaSlider.MediaSlider.TickMode.S
this.mediaSlider1.TrackBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(160)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.mediaSlider1.TrackDepth = 6;
this.mediaSlider1.TrackFillColor = System.Drawing.Color.T
this.mediaSlider1.TrackProgressColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(101)))), ((int)(((byte)(188)))));
this.mediaSlider1.TrackShadow =
this.mediaSlider1.TrackShadowColor = System.Drawing.Color.DarkG
this.mediaSlider1.TrackStyle = MediaSlider.MediaSlider.TrackType.V
this.mediaSlider1.Value = 0;
this.mediaSlider1.Scrolled += new MediaSlider.MediaSlider.ScrollDelegate(this.mediaSlider1_Scrolled);
// btnPlay
this.btnPlay.Location = new System.Drawing.Point(14, 81);
this.btnPlay.Name = &btnPlay&;
this.btnPlay.Size = new System.Drawing.Size(75, 23);
this.btnPlay.TabIndex = 4;
this.btnPlay.Text = &暂停&;
this.btnPlay.UseVisualStyleBackColor =
this.btnPlay.Click += new System.EventHandler(this.btnPlay_Click);
// lbMessage
this.lbMessage.AutoSize =
this.lbMessage.Location = new System.Drawing.Point(105, 92);
this.lbMessage.Name = &lbMessage&;
this.lbMessage.Size = new System.Drawing.Size(53, 12);
this.lbMessage.TabIndex = 5;
this.lbMessage.Text = &字数:0个&;
// bgwMessage
this.bgwMessage.DoWork += ponentModel.DoWorkEventHandler(this.bgwMessage_DoWork);
// cmbMp3Size
this.cmbMp3Size.DropDownStyle = System.boBoxStyle.DropDownL
this.cmbMp3Size.FormattingEnabled =
this.cmbMp3Size.Items.AddRange(new object[] {
&10000字&,
&20000字&,
&50000字&,
&80000字&});
this.cmbMp3Size.Location = new System.Drawing.Point(195, 50);
this.cmbMp3Size.Name = &cmbMp3Size&;
this.cmbMp3Size.Size = new System.Drawing.Size(96, 20);
this.cmbMp3Size.TabIndex = 6;
this.cmbMp3Size.SelectedIndexChanged += new System.EventHandler(this.cmbMp3Size_SelectedIndexChanged);
// myNotifyIcon
this.myNotifyIcon.ContextMenuStrip = this.MyNotifyIconcontextMenuS
this.myNotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject(&myNotifyIcon.Icon&)));
this.myNotifyIcon.Text = &TTS&;
this.myNotifyIcon.DoubleClick += new System.EventHandler(this.myNotifyIcon_DoubleClick);
// MyNotifyIconcontextMenuStrip
this.MyNotifyIconcontextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ShowFormToolStripMenuItem,
this.HideFormToolStripMenuItem1,
this.aboutToolStripMenuItem,
this.ExitToolStripMenuItem2});
this.MyNotifyIconcontextMenuStrip.Name = &MyNotifyIconcontextMenuStrip&;
this.MyNotifyIconcontextMenuStrip.Size = new System.Drawing.Size(142, 92);
// ShowFormToolStripMenuItem
this.ShowFormToolStripMenuItem.Name = &ShowFormToolStripMenuItem&;
this.ShowFormToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
this.ShowFormToolStripMenuItem.Text = &显示窗口(&S)&;
this.ShowFormToolStripMenuItem.Visible =
this.ShowFormToolStripMenuItem.Click += new System.EventHandler(this.ShowFormToolStripMenuItem_Click);
// HideFormToolStripMenuItem1
this.HideFormToolStripMenuItem1.Name = &HideFormToolStripMenuItem1&;
this.HideFormToolStripMenuItem1.Size = new System.Drawing.Size(141, 22);
this.HideFormToolStripMenuItem1.Text = &隐藏窗口(&H)&;
this.HideFormToolStripMenuItem1.Click += new System.EventHandler(this.HideFormToolStripMenuItem1_Click);
// aboutToolStripMenuItem
this.aboutToolStripMenuItem.Name = &aboutToolStripMenuItem&;
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
this.aboutToolStripMenuItem.Text = &关于(&A)&;
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
// ExitToolStripMenuItem2
this.ExitToolStripMenuItem2.Name = &ExitToolStripMenuItem2&;
this.ExitToolStripMenuItem2.Size = new System.Drawing.Size(141, 22);
this.ExitToolStripMenuItem2.Text = &退出(&E)&;
this.ExitToolStripMenuItem2.Click += new System.EventHandler(this.ExitToolStripMenuItem2_Click);
// groupBox1
this.groupBox1.Controls.Add(this.btnAbout);
this.groupBox1.Controls.Add(this.mediaSlider1);
this.groupBox1.Controls.Add(this.btnRead);
this.groupBox1.Controls.Add(this.cmbMp3Size);
this.groupBox1.Controls.Add(this.btnPlay);
this.groupBox1.Controls.Add(this.lbMessage);
this.groupBox1.Controls.Add(this.btnTTS);
this.groupBox1.Location = new System.Drawing.Point(111, 262);
this.groupBox1.Name = &groupBox1&;
this.groupBox1.Size = new System.Drawing.Size(313, 128);
this.groupBox1.TabIndex = 7;
this.groupBox1.TabStop =
this.groupBox1.Text = &操作区&;
// btnAbout
this.btnAbout.Location = new System.Drawing.Point(195, 80);
this.btnAbout.Name = &btnAbout&;
this.btnAbout.Size = new System.Drawing.Size(75, 23);
this.btnAbout.TabIndex = 7;
this.btnAbout.Text = &关于&;
this.btnAbout.UseVisualStyleBackColor =
this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click);
// button1
this.button1.Location = new System.Drawing.Point(442, 308);
this.button1.Name = &button1&;
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 8;
this.button1.Text = &button1&;
this.button1.UseVisualStyleBackColor =
this.button1.Click += new System.EventHandler(this.button1_Click);
// MainFrm
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.F
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndS
this.ClientSize = new System.Drawing.Size(574, 402);
this.Controls.Add(this.button1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.richTextBox1);
this.MaximizeBox =
this.Name = &MainFrm&;
this.Text = &TTS 文字转语音工具&;
this.Load += new System.EventHandler(this.Form1_Load);
this.contextMenuStrip1.ResumeLayout(false);
this.MyNotifyIconcontextMenuStrip.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
#endregion
ponentModel.BackgroundWorker
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.Button btnR
private System.Windows.Forms.Button btnTTS;
ponentModel.BackgroundWorker bgwTTS1;
private MediaSlider.MediaSlider mediaSlider1;
private System.Windows.Forms.Button btnP
private System.Windows.Forms.Label lbM
ponentModel.BackgroundWorker bgwM
private System.boBox cmbMp3S
private System.Windows.Forms.NotifyIcon myNotifyI
private System.Windows.Forms.ContextMenuStrip MyNotifyIconcontextMenuS
private System.Windows.Forms.ToolStripMenuItem ShowFormToolStripMenuI
private System.Windows.Forms.ToolStripMenuItem HideFormToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem ExitToolStripMenuItem2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem CopyToolStripMenuI
private System.Windows.Forms.ToolStripMenuItem PasteToolStripMenuI
private System.Windows.Forms.Button btnA
private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuI
private System.Windows.Forms.Button button1;
Index: Properties/Settings.Designer.cs
===================================================================
--- Properties/Settings.Designer.cs (revision 0)
+++ Properties/Settings.Designer.cs (revision 34)
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// &auto-generated&
此代码由工具生成。
运行时版本:4.0.
对此文件的更改可能会导致不正确的行为,并且如果
重新生成代码,这些更改将会丢失。
+// &/auto-generated&
+//------------------------------------------------------------------------------
+namespace PDTools.Properties {
[global::pilerGeneratedAttribute()]
[global::piler.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 {
return defaultI
Index: Properties/Resources.resx
===================================================================
--- Properties/Resources.resx (revision 0)
+++ Properties/Resources.resx (revision 34)
@@ -0,0 +1,117 @@
+&?xml version=&1.0& encoding=&utf-8&?&
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.
... 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 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&
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
: 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
: 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
: The object must be serialized into a byte array
: using ponentModel.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=b77a5c&/value&
&/resheader&
&resheader name=&writer&&
&value&System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c&/value&
&/resheader&
\ No newline at end of file
Index: Properties/Resources.Designer.cs
===================================================================
--- Properties/Resources.Designer.cs (revision 0)
+++ Properties/Resources.Designer.cs (revision 34)
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// &auto-generated&
此代码由工具生成。
运行时版本:4.0.
对此文件的更改可能会导致不正确的行为,并且如果
重新生成代码,这些更改将会丢失。
+// &/auto-generated&
+//------------------------------------------------------------------------------
+namespace PDTools.Properties {
/// &summary&
一个强类型的资源类,用于查找本地化的字符串等。
/// &/summary&
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::piler.GeneratedCodeAttribute(&System.Resources.Tools.StronglyTypedResourceBuilder&, &4.0.0.0&)]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::pilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceM
private static global::System.Globalization.CultureInfo resourceC
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(&Microsoft.Performance&, &CA1811:AvoidUncalledPrivateCode&)]
internal Resources() {
/// &summary&
返回此类使用的缓存的 ResourceManager 实例。
/// &/summary&
[global::ponentModel.EditorBrowsableAttribute(global::ponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(&PDTools.Properties.Resources&, typeof(Resources).Assembly);
resourceMan =
return resourceM
/// &summary&
使用此强类型资源类,为所有资源查找
重写当前线程的 CurrentUICulture 属性。
/// &/summary&
[global::ponentModel.EditorBrowsableAttribute(global::ponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
return resourceC
resourceCulture =
Index: Properties/AssemblyInfo.cs
===================================================================
--- Properties/AssemblyInfo.cs (revision 0)
+++ Properties/AssemblyInfo.cs (revision 34)
@@ -0,0 +1,35 @@
+using System.R
+using pilerS
+using System.Runtime.InteropS
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle(&PDTools&)]
+[assembly: AssemblyDescription(&&)]
+[assembly: AssemblyConfiguration(&&)]
+[assembly: AssemblyCompany(&&)]
+[assembly: AssemblyProduct(&PDTools&)]
+[assembly: AssemblyCopyright(&Copyright (C)
+[assembly: AssemblyTrademark(&&)]
+[assembly: AssemblyCulture(&&)]
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(true)]
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid(&2da14259-74dc-4a95-3ef17&)]
+// 程序集的版本信息由下面四个值组成:
内部版本号
+// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”:
+// [assembly: AssemblyVersion(&1.0.*&)]
+[assembly: AssemblyVersion(&1.0.0.0&)]
+[assembly: AssemblyFileVersion(&1.0.0.0&)]
Index: Properties/Settings.settings
===================================================================
--- Properties/Settings.settings (revision 0)
+++ Properties/Settings.settings (revision 34)
@@ -0,0 +1,7 @@
+&?xml version='1.0' encoding='utf-8'?&
+&SettingsFile xmlns=&/VisualStudio/2004/01/settings& CurrentProfile=&(Default)&&
&Profiles&
&Profile Name=&(Default)& /&
&/Profiles&
&Settings /&
+&/SettingsFile&
Index: MainFrm.cs
===================================================================
--- MainFrm.cs (revision 0)
+++ MainFrm.cs (revision 34)
@@ -0,0 +1,435 @@
+using System.Collections.G
+using System.D
+using System.L
+using DotNetS
+using System.IO;
+using System.Windows.F
+using System.T
+using System.N
+using System.Net.S
+using PDTools.SocketM
+namespace PDTools
public partial class MainFrm : Form
public MainFrm()
InitializeComponent();
List&string& listStrRead = new List&string&();
List&string& listStrTTS = new List&string&();
int strLastL
SpeechVoiceSpeakFlags SVPF = new SpeechVoiceSpeakFlags();
SpVoice Voice = new SpVoice();
int fileName = 1;
//mp3文件的名字(以数字命名)
int strTTSMax = 20000;
//TTS的每个文件的最大字数
string FloderN
//随机文件夹名称
private static string pathBase = Application.StartupP
private Thread _
public void TxtToVoice(int speed, string spkcontent)
status('1');
Voice.Rate =
listStrRead = WorkString(spkcontent, 10000, listStrRead);
ControlRead(listStrRead);
public List&string& WorkString(string str, int strMaxSize, List&string& list)
int i = 0;
int count = 0;
//循环的次数
strLastLength = str.L
//字符串剩余的长度
while (strLastLength & strMaxSize)
string temp = str.Substring(i, strMaxSize);
list.Add(temp);
i = i + strMaxS
strLastLength = strLastLength - strMaxS
if (i == 0)
list.Add(str);
string temp = str.Substring(count * strMaxSize, strLastLength);
list.Add(temp);
public void ControlRead(List&string& list)
if (list.Count & 0)
if (!bgwRead.IsBusy)
bgwRead.RunWorkerAsync(list.First());
//bgwMessage.RunWorkerAsync(&程序正忙呢,稍等一会&);
bgwMessage.RunWorkerAsync(&没有内容怎么读啊?&);
catch (Exception ex)
MessageBox.Show(ex.Message);
private void bgwRead_DoWork(object sender, DoWorkEventArgs e)
Voice.Speak(e.Argument.ToString(), SVPF);
Voice.WaitUntilDone(System.Threading.Timeout.Infinite);
catch (Exception ex)
MessageBox.Show(ex.Message);
private void btnRead_Click(object sender, EventArgs e)
if (richTextBox1.Text.Trim().Length & 0)
//listStrRead = WorkString(richTextBox1.Text, 10000, listStrRead);
//ControlRead(listStrRead);
TxtToVoice(mediaSlider1.Value, richTextBox1.Text);
//bgwMessage.RunWorkerAsync(&文本框中没有内容,不能读&);
catch (Exception ex)
MessageBox.Show(ex.Message);
private void Form1_Load(object sender, EventArgs e)
cmbMp3Size.SelectedIndex = 2;
private void btnTTS_Click(object sender, EventArgs e)
if (listStrTTS.Count & 0)
listStrTTS.Clear();
if (richTextBox1.Text.Trim().Length & 0)
if (!bgwTTS1.IsBusy)
listStrTTS = WorkString(richTextBox1.Text, strTTSMax, listStrTTS);
bgwTTS1.RunWorkerAsync(listStrTTS.First());
//bgwMessage.RunWorkerAsync(&正在转中,不要重复按键&);
//bgwMessage.RunWorkerAsync(&文本框中没有字,快点添加字&);
catch (Exception ex)
MessageBox.Show(ex.Message);
public void TxtToSpeech(string strTxt, string fileName)
SpeechStreamFileMode SSFM = SpeechStreamFileMode.SSFMCreateForW
SpFileStream SFS = new SpFileStream();
//if (fileName == &1&)
FloderName = CreateFloderName();
Directory.CreateDirectory(pathBase + @&\& + FloderName);
SFS.Open(pathBase + @&\voice.wav&, SSFM, false);
Voice.AudioOutputStream = SFS;
Voice.Speak(strTxt, SVPF);
Voice.WaitUntilDone(System.Threading.Timeout.Infinite);
SFS.Close();
catch (InvalidExpressionException ex)
MessageBox.Show(ex.Message);
private void bgwTTS1_DoWork(object sender, DoWorkEventArgs e)
TxtToSpeech(e.Argument.ToString(), fileName.ToString());
catch (Exception ex)
MessageBox.Show(ex.Message);
private void bgwRead_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
if (listStrRead.Count & 0)
listStrRead.RemoveAt(0);
if (listStrRead.Count != 0)
status('1');
bgwRead.RunWorkerAsync(listStrRead.First());
status('0');
//bgwMessage.RunWorkerAsync(&朗读完毕!请执行其他任务&);
bgwRead.CancelAsync();
catch (Exception ex)
MessageBox.Show(ex.Message);
private void bgwTTS1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
listStrTTS.RemoveAt(0);
if (listStrTTS.Count & 0)
fileName++;
bgwTTS1.RunWorkerAsync(listStrTTS.First());
MessageBox.Show(&转换完毕!请执行其他任务&);
bgwTTS1.CancelAsync();
catch (Exception ex)
MessageBox.Show(ex.Message);
private string CreateFloderName()
for (int i = 1; i & 5; i++)
Random ram = new Random();
int temp = ram.Next(0, 9);
FloderName = FloderName + temp.ToString();
return FloderN
private void mediaSlider1_Scrolled(object sender, EventArgs e)
Voice.Rate = mediaSlider1.V
bool arg =
private void btnPlay_Click(object sender, EventArgs e)
Voice.Pause();
btnPlay.Text = &继续&;
Voice.Resume();
btnPlay.Text = &暂停&;
private void richTextBox1_TextChanged(object sender, EventArgs e)
lbMessage.Text = &字数:& + richTextBox1.Text.Trim().Length + &个&;
private void bgwMessage_DoWork(object sender, DoWorkEventArgs e)
Voice.Speak(e.Argument.ToString(), SVPF);
private void cmbMp3Size_SelectedIndexChanged(object sender, EventArgs e)
switch (cmbMp3Size.SelectedItem.ToString())
case &5000字&:
strTTSMax = 5000;
case &10000字&:
strTTSMax = 10000;
case &20000字&:
strTTSMax = 20000;
case &50000字&:
strTTSMax = 50000;
case &80000字&:
strTTSMax = 80000;
private void myNotifyIcon_DoubleClick(object sender, EventArgs e)
if (this.Visible)
ShowFormToolStripMenuItem.Visible =
HideFormToolStripMenuItem1.Visible =
this.Visible =
ShowFormToolStripMenuItem.Visible =
HideFormToolStripMenuItem1.Visible =
this.Visible =
private void ShowFormToolStripMenuItem_Click(object sender, EventArgs e)
this.Visible =
ShowFormToolStripMenuItem.Visible =
HideFormToolStripMenuItem1.Visible =
private void HideFormToolStripMenuItem1_Click(object sender, EventArgs e)
this.Visible =
HideFormToolStripMenuItem1.Visible =
ShowFormToolStripMenuItem.Visible =
private void ExitToolStripMenuItem2_Click(object sender, EventArgs e)
Application.Exit();
private void CopyToolStripMenuItem_Click(object sender, EventArgs e)
if (richTextBox1.SelectedText != &&)
Clipboard.SetDataObject(richTextBox1.SelectedText);
private void PasteToolStripMenuItem_Click(object sender, EventArgs e)
IDataObject idateoject = Clipboard.GetDataObject();
if (idateoject.GetDataPresent(DataFormats.Text))
richTextBox1.Text += idateoject.GetData(DataFormats.Text)
private void richTextBox1_SelectionChanged(object sender, EventArgs e)
if (richTextBox1.SelectedText == &&)
CopyToolStripMenuItem.Enabled =
CopyToolStripMenuItem.Enabled =
//解决关闭窗体后notifyIcon延缓消失的问题
protected override void OnClosing(CancelEventArgs e)
myNotifyIcon.Visible =
base.OnClosing(e);
private void btnAbout_Click(object sender, EventArgs e)
AboutBox1 a = new AboutBox1();
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
AboutBox1 a = new AboutBox1();
internal void TxtToVoice(int p1, char p2)
throw new NotImplementedException();
public void status(char str)
FileInfo myFile = new FileInfo(@&play.ini&);
StreamWriter sw = myFile.CreateText();
string[] strs = { &[option]&, &status=& + str };
foreach (var s in strs)
sw.WriteLine(s);
sw.Close();
private void button1_Click(object sender, EventArgs e)
str = &诊室2B019诊室&.Replace(&诊室&,&&);
MessageBox.Show(str);
Index: TTSInterface.cs
===================================================================
--- TTSInterface.cs (revision 0)
+++ TTSInterface.cs (revision 34)
@@ -0,0 +1,388 @@
+using System.Runtime.InteropS
+using System.T
+using System.Windows.F
+using System.L
+using System.N
+using System.IO;
+using PDTools.SocketM
+namespace PDTools
[Guid(&2DB-4E95-9B38-E94B7AED83C3&)]
public class TTSInterface
/// &summary&
/// 发送消息到Android端进行展示
/// &/summary&
/// &param name=&iep&&IpEndPoint&/param&
/// &param name=&OfficeId&&诊室ID&/param&
/// &param name=&OperatorId&&操作员ID&/param&
/// &param name=&CompositeScreentId&&综合屏ID&/param&
/// &param name=&MessageType&&消息类型0刷新页面1刷新页面同时弹出提示2弹出提示不刷新主页&/param&
public string SendAndroidMessage(string iep, string OfficeId, string OperatorId, string CompositeScreentId, int MessageType)
Sender sd = new Sender();
sd.SendAndroidMessage(iep, OfficeId, OperatorId, CompositeScreentId, MessageType);
return &1&;
catch (Exception e)
return e.Message.ToString();
/// &summary&
/// 设置安卓屏显示内容
/// &/summary&
/// &param name=&iep&&安卓屏和回传服务器地址&/param&
/// &param name=&url&&显示URL至少3个用&|&分割&/param&
public String SendSetAndroidInfo(string iep, string url)
Sender sd = new Sender();
sd.SendSetAndroidInfo(iep, url);
return &1&;
catch (Exception e)
return e.Message.ToString() ;
//文字转语音
public void speak(int speed, string txtcontent)
//string str = &&;
//if (!this.ReadEyeRegister(ref str)) //判断是否注册
if (!getKey())//注册
saveReg();
MessageBox.Show(&提示&, str);
//if (DateTime.Parse(&&) & DateTime.Now)
MessageBox.Show(&当前系统使用效期已过,为不影响正常使用请尽快联系管理员!\r联系QQ:&, &过期提醒&);
PDTools.MainFrm fm = new PDTools.MainFrm();
fm.TxtToVoice(speed, txtcontent);
fm.Close();
//叫号内容保存
//txtcontent = txtcontent + Environment.NewL
//string path = @&c:\TTSContent.txt&;//写入内容文件的径
//File.AppendAllText(path, txtcontent, Encoding.UTF8);//写入内容 // 根据路径出内容
//发送文本消息
public string sendMessage(string[] msg, int screentType)
string[] msgTmp = new string[1];
switch (screentType)
//字体12号
case 1://医生门头屏2行12字
return new EQ2008.EQCtroller().sendMessage(msg, 10, 0, 2, 1, 12);
//通过卡地址2发送滚动消息 到胎监
if (msg.Count() &= 11)
if (!(null == msg[10]) && msg[10].Length & 0 && !(msg[10] == &&))
new EQ2008.EQCtroller().scrollMessage(msg[10], 320, 7);//显示位置:胎监显示屏底部
msgTmp[0] = msg[10];
new EQ2008.EQCtroller().sendMessage(msgTmp, 20, 7, 0, 2, 10);
msg[10] = &&;
return new EQ2008.EQCtroller().sendMessage(msg, 28, 1, 0, 1, 12);
case 3://28字
//门诊医生大屏
return new EQ2008.EQCtroller().sendMessage(msg, 28, 1, 0, 1, 12);
case 4://20字
//通过卡地址2发送滚动消息 B超大屏底部滚动内容
//return new EQ2008.EQCtroller().scrollMessage(msg[0], 448, 11);
return new EQ2008.EQCtroller().sendMessage(msg, 28, 11, 0, 2, 10);
//胎监大屏
//return new EQ2008.EQCtroller().sendMessage(msg, 20, 0, 0);
case 5://第一列屏显示
return new EQ2008.EQCtroller().sendMessage(msg, 6, 0, 0, 1, 12);
case 6://第二列屏显示
return new EQ2008.EQCtroller().sendMessage(msg, 6, 0, 7, 1, 12);
case 7://第三列屏显示
return new EQ2008.EQCtroller().sendMessage(msg, 6, 0, 14, 1, 12);
case 8://第一行屏显示9-1
return new EQ2008.EQCtroller().sendMessage(msg, 12, 0, 0, 1, 12);
case 9://第二行屏显示9-2
return new EQ2008.EQCtroller().sendMessage(msg, 12, 1, 0, 1, 12);
return &屏类型错误!&;
/// &summary&
/// 用户自定义当前内容显示行
/// &/summary&
/// &param name=&msg&&显示内容&/param&
/// &param name=&screentType&&屏幕类型&/param&
/// &param name=&rowID&&所在行号&/param&
/// &returns&&/returns&
public string sendMessage(string[] msg, int screentType, int rowNum, int iCardNum)
switch (screentType)
//字体12号
case 1://屏幕总高度显示8个字,分割为上下4排显示,上下内容显示相同(别问我为什么要这样)
//rowID|QueueNumber+Name|Departments(科室)|Office(诊室)|
for (int i = 1; i & 4; i++)
string sEmpty = &&, sTmp1 = &&, sTmp2 = &&;
int msgLength = Encoding.Default.GetBytes(msg[i]).Count();
//截取需要显示的内容(这里显示6个汉字12个字符)
if (msgLength & 12)
//判断是否为中文,中文取两个字符以免显示乱码
string[] msgTmp = new string[12];
int i1 = 0;
for (int j1 = 0; j1 & 12; j1++)
sTmp1 = Encoding.Default.GetString(Encoding.Default.GetBytes(msg[i]), j1, 2);
if ((int)sTmp1[0] & 127)
if (j1 + 1 &= 12)
sTmp2 += sTmp1;
sTmp2 += Encoding.Default.GetString(Encoding.Default.GetBytes(msg[i]), j1, 1);
msg[i] = sTmp2;
//sEmpty = &&;
//补充占位符以固定显示长度
//for (int j2 = 1; j2 & 12 - Encoding.Default.GetBytes(msg[i]).Count(); j2++)
sEmpty += & &;
//switch (i)
msg[i] = & & + sEmpty + msg[i];
msg[i] = & & + msg[i] + sEmpty + &
msg[i] = msg[i] + sE
for (int i = 0; i & 2; i++)
string[] newMsg = { msg[2] };
if (new EQ2008.EQCtroller().sendMessageChange(newMsg, 88, rowNum + (i * 4), 0, iCardNum, 10)
!= &成功&)
return &连接失败&;
newMsg[0] = msg[1];
new EQ2008.EQCtroller().sendMessageChange(newMsg, 88, rowNum + (i * 4), 88, iCardNum, 10);
newMsg[0] = msg[3];
new EQ2008.EQCtroller().sendMessageChange(newMsg, 80, rowNum + (i * 4), 176, iCardNum, 10);
return &成功&;
return &屏类型错误!&;
//发送滚动消息
public string scrollMessage(string msg, int screentType)
switch (screentType)
//字体12号
case 1://医生门头屏2行12字
return new EQ2008.EQCtroller().scrollMessage(msg, 192, 0);
case 3://28字
return new EQ2008.EQCtroller().scrollMessage(msg, 448, 1);
case 4://20字
return new EQ2008.EQCtroller().scrollMessage(msg, 320, 0);
return &屏类型错误!&;
// 汉字转码:安卓数据传输中文使用
public String StrEncode(string str)
UnicodeEncoding a = new UnicodeEncoding();
String ReturnStr = &&;
byte[] b = a.GetBytes(str);
byte[] d = new byte[2];
for (int i = 0; i & b.L i++)
if (b[i] != 0)
d[0] = b[i - 1];
d[1] = b[i];
ReturnStr = ReturnStr + System.Web.HttpUtility.UrlEncode(a.GetString(d)).ToUpper();
d[0] = b[i - 1];
d[1] = b[i];
ReturnStr = ReturnStr + a.GetString(d);
if (!this.ReadEyeRegister(ref str))
return &system not register, contact QQ:&;
return ReturnS
/// &summary&
/// 检测当前系统是否注册
/// &/summary&
/// &param name=&strMessage&&&/param&
/// &returns&&/returns&
public bool ReadEyeRegister(ref string strMessage)
EncryptAndDecrypt ed = new EncryptAndDecrypt();
string stringin = RegEdit.Query(&key&);
string outer = ed.Decrypt(stringin);
string[] mygets = outer.Split('|');
if (mygets.Length & 12 || mygets[0] != &RDHIS&)
strMessage = &不合法的注册认证文件&;
if (mygets[4] != RDManagementClass.GetMAC() &&
mygets[5] != RDManagementClass.GetCPUID() &&
mygets[6] != RDManagementClass.GetHardID())
strMessage = &不合法的注册认证文件&;
DateTime thedate = DateTime.Parse(mygets[9]);
if (thedate & DateTime.Now)
strMessage = &注册文件已过期,请重新注册&;
TimeSpan timeSpan = thedate - DateTime.N
if (timeSpan.Days &= 10)
MessageBox.Show(&还有& + timeSpan.Days + &天注册过期&);
catch (Exception e)
strMessage = &不合法的注册认证文件&;
//保存注册文件
public void saveReg()
string mac = RDManagementClass.GetMAC();
if (mac == string.Empty)
string cpu = RDManagementClass.GetCPUID();
if (cpu == string.Empty)
string hardid = RDManagementClass.GetHardID();
if (hardid == string.Empty)
StringBuilder sb = new StringBuilder();
sb.Append(&REG&).Append('|');
sb.Append(DateTime.Now.ToString(&yyyyMMdd&)).Append('|');
sb.Append(Guid.NewGuid()).Append('|');
sb.Append(Dns.GetHostName()).Append('|');
sb.Append(RDManagementClass.GetHostIP(0).ToString()).Append('|');
sb.Append(mac).Append('|');
sb.Append(cpu).Append('|');
sb.Append(hardid).Append('|');
sb.Append(&pdjh&);
string fileContent = new EncryptAndDecrypt().Encrypt(sb.ToString());
using (StreamWriter sw = new StreamWriter(&reg.ser&, false, Encoding.UTF8))
sw.Write(fileContent);
//获取key文件
public Boolean getKey()
if (!File.Exists(System.Environment.CurrentDirectory + &\\key.key&))
//RDMessage.MsgInfo(&没有找到注册文件!&);
StreamReader streamReader = new StreamReader(System.Environment.CurrentDirectory + &\\key.key&, System.Text.Encoding.UTF8);
string content = streamReader.ReadToEnd();
streamReader.Close();
string[] contents = new EncryptAndDecrypt().Decrypt(content).Split('|');
if (contents.Length & 12 || contents[0] != &RDHIS&)
//RDMessage.MsgInfo(&不合法的注册认证文件&);
if (contents[4] != RDManagementClass.GetMAC() &&
contents[5] != RDManagementClass.GetCPUID() &&
contents[6] != RDManagementClass.GetHardID())
//RDMessage.MsgInfo(&不合法的注册认证文件!&);
if (Convert.ToDateTime(contents[9]) & DateTime.Now)
//RDMessage.MsgInfo(&注册文件已过期,请重新注册!&);
RegEdit.RegisterOver(&Key&, content);
//RDMessage.MsgInfo(&恭喜,注册已生效!&);
Index: PDTools.v12.suo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: PDTools.v12.suo
===================================================================
--- PDTools.v12.suo (revision 0)
+++ PDTools.v12.suo (revision 34)
Property changes on: PDTools.v12.suo
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: PD.Tools.csproj
===================================================================
--- PD.Tools.csproj (revision 0)
+++ PD.Tools.csproj (revision 34)
@@ -0,0 +1,181 @@
+&?xml version=&1.0& encoding=&utf-8&?&
+&Project ToolsVersion=&4.0& DefaultTargets=&Build& xmlns=&/developer/msbuild/2003&&
&PropertyGroup&
&Configuration Condition=& '$(Configuration)' == '' &&Debug&/Configuration&
&Platform Condition=& '$(Platform)' == '' &&x86&/Platform&
&ProductVersion&8.0.30703&/ProductVersion&
&SchemaVersion&2.0&/SchemaVersion&
&ProjectGuid&{38C94DFB-F-B013-F77FD5025AF7}&/ProjectGuid&
&OutputType&Library&/OutputType&
&AppDesignerFolder&Properties&/AppDesignerFolder&
&RootNamespace&PDTools&/RootNamespace&
&AssemblyName&PDTools&/AssemblyName&
&TargetFrameworkVersion&v4.0&/TargetFrameworkVersion&
&TargetFrameworkProfile&
&/TargetFrameworkProfile&
&FileAlignment&512&/FileAlignment&
&PublishUrl&publish\&/PublishUrl&
&Install&true&/Install&
&InstallFrom&Disk&/InstallFrom&
&UpdateEnabled&false&/UpdateEnabled&
&UpdateMode&Foreground&/UpdateMode&
&UpdateInterval&7&/UpdateInterval&
&UpdateIntervalUnits&Days&/UpdateIntervalUnits&
&UpdatePeriodically&false&/UpdatePeriodically&
&UpdateRequired&false&/UpdateRequired&
&MapFileExtensions&true&/MapFileExtensions&
&ApplicationRevision&0&/ApplicationRevision&
&ApplicationVersion&1.0.0.%2a&/ApplicationVersion&
&IsWebBootstrapper&false&/IsWebBootstrapper&
&UseApplicationTrust&false&/UseApplicationTrust&
&BootstrapperEnabled&true&/BootstrapperEnabled&
&/PropertyGroup&
&PropertyGroup Condition=& '$(Configuration)|$(Platform)' == 'Debug|x86' &&
&PlatformTarget&x86&/PlatformTarget&
&DebugSymbols&true&/DebugSymbols&
&DebugType&full&/DebugType&
&Optimize&false&/Optimize&
&OutputPath&bin\Debug\&/OutputPath&
&DefineConstants&DEBUG;TRACE&/DefineConstants&
&ErrorReport&prompt&/ErrorReport&
&WarningLevel&4&/WarningLevel&
&RegisterForComInterop&true&/RegisterForComInterop&
&/PropertyGroup&
&PropertyGroup Condition=& '$(Configuration)|$(Platform)' == 'Release|x86' &&
&PlatformTarget&x86&/PlatformTarget&
&DebugType&pdbonly&/DebugType&
&Optimize&true&/Optimize&
&OutputPath&bin\Release\&/OutputPath&
&DefineConstants&TRACE&/DefineConstants&
&ErrorReport&prompt&/ErrorReport&
&WarningLevel&4&/WarningLevel&
&/PropertyGroup&
&PropertyGroup&
&StartupObject /&
&/PropertyGroup&
&PropertyGroup&
&SignAssembly&false&/SignAssembly&
&/PropertyGroup&
&PropertyGroup&
&DelaySign&false&/DelaySign&
&/PropertyGroup&
&PropertyGroup&
&AssemblyOriginatorKeyFile&
&/AssemblyOriginatorKeyFile&
&/PropertyGroup&
&ItemGroup&
&Reference Include=&DotNetSpeech&&
&HintPath&bin\Debug\DotNetSpeech.dll&/HintPath&
&EmbedInteropTypes&True&/EmbedInteropTypes&
&/Reference&
&Reference Include=&MediaSlider, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL&&
&SpecificVersion&False&/SpecificVersion&
&HintPath&bin\Debug\MediaSlider.dll&/HintPath&
&/Reference&
&Reference Include=&NAudio, Version=1.7.3.0, Culture=neutral, processorArchitecture=MSIL&&
&SpecificVersion&False&/SpecificVersion&
&HintPath&bin\Debug\NAudio.dll&/HintPath&
&/Reference&
&Reference Include=&RD.Proxy&&
&HintPath&..\..\NewHIS\trunk\050.Implement\RDHisService\RD.Proxy\bin\Debug\RD.Proxy.dll&/HintPath&
&/Reference&
&Reference Include=&RD.Tools, Version=6.1.0.0, Culture=neutral, processorArchitecture=MSIL&&
&SpecificVersion&False&/SpecificVersion&
&HintPath&..\..\NewHIS\trunk\050.Implement\RDTools\RDTools\bin\Debug\RD.Tools.dll&/HintPath&
&/Reference&
&Reference Include=&System& /&
&Reference Include=&System.Core& /&
&Reference Include=&System.Web& /&
&Reference Include=&System.Xml.Linq& /&
&Reference Include=&System.Data.DataSetExtensions& /&
&Reference Include=&Microsoft.CSharp& /&
&Reference Include=&System.Data& /&
&Reference Include=&System.Deployment& /&
&Reference Include=&System.Drawing& /&
&Reference Include=&System.Windows.Forms& /&
&Reference Include=&System.Xml& /&
&/ItemGroup&
&ItemGroup&
&Compile Include=&AboutBox1.cs&&
&SubType&Form&/SubType&
&/Compile&
&Compile Include=&AboutBox1.Designer.cs&&
&DependentUpon&AboutBox1.cs&/DependentUpon&
&/Compile&
&Compile Include=&EQ2008\EQ2008.cs& /&
&Compile Include=&EQ2008\EQ2008_DataStruct.cs& /&
&Compile Include=&MainFrm.cs&&
&SubType&Form&/SubType&
&/Compile&
&Compile Include=&MainFrm.Designer.cs&&
&DependentUpon&MainFrm.cs&/DependentUpon&
&/Compile&
&Compile Include=&Program.cs& /&
&Compile Include=&Properties\AssemblyInfo.cs& /&
&Compile Include=&SocketManager\NewRecMessage.cs& /&
&Compile Include=&SocketManager\MessageSender.cs& /&
&Compile Include=&SocketManager\Sender.cs& /&
&Compile Include=&SocketManager\TimeOutMessage.cs& /&
&Compile Include=&TTSInterface.cs& /&
&Compile Include=&WaveLib\WaveMain.cs& /&
&Compile Include=&WaveLib\WaveNative.cs& /&
&Compile Include=&WaveLib\WaveOut.cs& /&
&Compile Include=&WaveLib\WaveStream.cs& /&
&EmbeddedResource Include=&AboutBox1.resx&&
&DependentUpon&AboutBox1.cs&/DependentUpon&
&/EmbeddedResource&
&EmbeddedResource Include=&MainFrm.resx&&
&DependentUpon&MainFrm.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=&Properties\Settings.settings&&
&Generator&SettingsSingleFileGenerator&/Generator&
&LastGenOutput&Settings.Designer.cs&/LastGenOutput&
&Compile Include=&Properties\Settings.Designer.cs&&
&AutoGen&True&/AutoGen&
&DependentUpon&Settings.settings&/DependentUpon&
&DesignTimeSharedInput&True&/DesignTimeSharedInput&
&/Compile&
&/ItemGroup&
&ItemGroup&
&BootstrapperPackage Include=&.NETFramework,Version=v4.0,Profile=Client&&
&Visible&False&/Visible&
&ProductName&Microsoft .NET Framework 4 Client Profile %28x86 and x64%29&/ProductName&
&Install&true&/Install&
&/BootstrapperPackage&
&BootstrapperPackage Include=&Microsoft.Net.Client.3.5&&
&Visible&False&/Visible&
&ProductName&.NET Framework 3.5 SP1 Client Profile&/ProductName&
&Install&false&/Install&
&/BootstrapperPackage&
&BootstrapperPackage Include=&Microsoft.Net.Framework.3.5.SP1&&
&Visible&False&/Visible&
&ProductName&.NET Framework 3.5 SP1&/ProductName&
&Install&false&/Install&
&/BootstrapperPackage&
&BootstrapperPackage Include=&Microsoft.Windows.Installer.4.5&&
&Visible&False&/Visible&
&ProductName&Windows Installer 4.5&/ProductName&
&Install&true&/Install&
&/BootstrapperPackage&
&/ItemGroup&
&ItemGroup /&
&Import Project=&$(MSBuildToolsPath)\Microsoft.CSharp.targets& /&
&!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, mon.targets.
&Target Name=&BeforeBuild&&
&Target Name=&AfterBuild&&
+&/Project&
\ No newline at end of file
Index: from.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: from.gif
===================================================================
--- from.gif (revision 0)
+++ from.gif (revision 34)
Property changes on: from.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: AboutBox1.Designer.cs
===================================================================
--- AboutBox1.Designer.cs (revision 0)
+++ AboutBox1.Designer.cs (revision 34)
@@ -0,0 +1,187 @@
+namespace PDTools
partial class AboutBox1
/// &summary&
/// 必需的设计器变量。
/// &/summary&
ponentModel.IContainer components =
/// &summary&
/// 清理所有正在使用的资源。
/// &/summary&
protected override void Dispose(bool disposing)
if (disposing && (components != null))
components.Dispose();
base.Dispose(disposing);
#region Windows 窗体设计器生成的代码
/// &summary&
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// &/summary&
private void InitializeComponent()
ponentResourceManager resources = ponentResourceManager(typeof(AboutBox1));
this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
this.logoPictureBox = new System.Windows.Forms.PictureBox();
this.labelProductName = new System.Windows.Forms.Label();
this.labelVersion = new System.Windows.Forms.Label();
this.labelCopyright = new System.Windows.Forms.Label();
this.labelCompanyName = new System.Windows.Forms.Label();
this.textBoxDescription = new System.Windows.Forms.TextBox();
this.okButton = new System.Windows.Forms.Button();
this.tableLayoutPanel.SuspendLayout();
((ponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
this.SuspendLayout();
// tableLayoutPanel
this.tableLayoutPanel.ColumnCount = 2;
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.F
this.tableLayoutPanel.Location = new System.Drawing.Point(9, 8);
this.tableLayoutPanel.Name = &tableLayoutPanel&;
this.tableLayoutPanel.RowCount = 6;
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.table

我要回帖

更多关于 apk编辑器电脑版 的文章

 

随机推荐