📄 formmain.cs
字号:
{
try
{
ISOCreater.mciSendString("set cdaudio door closed wait", "", 0, this.Handle);
}
catch(Exception ex)
{
ErrMessage = ex.Message;
}
}
/// <summary>
/// 得到默认光驱名称
/// </summary>
public string GetDefaultCDRom()
{
try
{
return ISOCreater.GetDefaultCDRom();
}
catch(Exception ex)
{
ErrMessage = ex.Message;
throw new Exception(ex.Message);
}
}
/// <summary>
/// 结束事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GameOver(object sender,EventArgs e)
{
}
#region 取FTP字符属性
//ftp://username:password@192.168.0.1:21//
//ftp://sss//
/// <summary>
/// 用户名
/// </summary>
/// <param name="WCutString">字符串</param>
/// <returns></returns>
private string ftpUserName(string WCutString)
{
try
{
int bc = WCutString.IndexOf("//");
int ec = WCutString.IndexOf(":", 5);
int length = ec - bc;
string ftpun = WCutString.Substring(bc + 2, length - 2);
return (ftpun == "") ? "anonymous" : ftpun;
}
catch
{
return "anonymous";
}
}
/// <summary>
/// 密码
/// </summary>
/// <param name="WCutString">字符串</param>
/// <returns></returns>
private string ftpPassWord(string WCutString)
{
try
{
int bc = WCutString.IndexOf(":", 5);
int ec = WCutString.IndexOf("@");
int length = ec - bc;
string ftppw = WCutString.Substring(bc + 1, length - 1);
return (ftppw == "") ? "" : ftppw;
}
catch
{
return "";
}
}
/// <summary>
/// 主机
/// </summary>
/// <param name="WCutString">字符串</param>
/// <returns></returns>
private string ftpHost(string WCutString)
{
try
{
int bc = WCutString.IndexOf("@");
int ec = WCutString.IndexOf(":", WCutString.IndexOf(":", 5) + 1);
int length = ec - bc;
string wct=WCutString.Substring(bc + 1, length - 1);
if(wct.IndexOf("ftp")>=0)
{
bc = WCutString.IndexOf("//");
ec = WCutString.IndexOf("/", bc + 2);
length = ec - bc;
wct = WCutString.Substring(bc + 2, length - 2);
}
return wct;
}
catch //ftp://sss//
{
int bc = WCutString.IndexOf("//");
int ec = WCutString.IndexOf("/", bc + 2);
int length = ec - bc;
return WCutString.Substring(bc + 2, length - 2);
}
}
/// <summary>
/// 端口
/// </summary>
/// <param name="WCutString">字符串</param>
/// <returns></returns>
private string ftpPort(string WCutString)
{
try
{
int bc = WCutString.IndexOf(":", WCutString.IndexOf(":", 5) + 1);
int ec = WCutString.IndexOf("/", WCutString.IndexOf("//") + 2);
int length = ec - bc;
string ftppt = WCutString.Substring(bc + 1, length - 1);
int portnum = 21;
if (!int.TryParse(ftppt, out portnum))
{
ftppt = "21";
}
return ftppt;
}
catch
{
return "21";
}
}
/// <summary>
/// 服务器路径
/// </summary>
/// <param name="WCutString">字符串</param>
/// <returns></returns>
private string ftpFilePath(string WCutString)
{
int ec = WCutString.IndexOf("/", WCutString.IndexOf("//") + 2);
return WCutString.Substring(ec);
}
#endregion
#region ISO制作及控件事件
private void OnProgressEvent(object sender, long mini, long max, long value)
{
try
{
this.toolStripProgressBar1.Maximum = (int)max;
this.toolStripProgressBar1.Minimum = (int)0;
this.toolStripProgressBar1.Value = (int)value;
///每处理20兆则分派消息
if (value % 20480 == 0)
Application.DoEvents();
}
catch { ;}
}
private void cdromListBox_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
string s = cdromListBox.Items[e.Index].ToString(); //文字
Point textLocal = new Point(e.Bounds.X + 2, e.Bounds.Y + 2 + 10 + 2);
Point shadowTextLocal = textLocal;
shadowTextLocal.X -= 1;
shadowTextLocal.Y -= 1;
e.Graphics.DrawString(s,
new Font("宋体", 9f),
Brushes.White,
shadowTextLocal);
e.Graphics.DrawString(s,
new Font("宋体", 9f),
new SolidBrush(Color.FromArgb(200, 0, 0, 0)),
textLocal);
//ICO
Point iconLocal = new Point(e.Bounds.X + (int)Math.Abs((e.Bounds.Width / 2) - 32), e.Bounds.Y + 8);
e.Graphics.DrawImage(imageList1.Images[0], iconLocal.X+100, iconLocal.Y-3, 24, 24);
//盘符
Point iconLabelLocal = new Point(iconLocal.X+1 , iconLocal.Y + 7);
///简单阻止NULL异常
try
{
CDInfo cdinfo = cdromListBox.Items[e.Index] as CDInfo;
e.Graphics.DrawString(cdinfo.Name,
new Font("宋体", 10.5f),
new SolidBrush(Color.FromArgb(200, 0, 0, 0)),
iconLabelLocal.X - 1, iconLabelLocal.Y - 1);
e.Graphics.DrawString(cdinfo.Name,
new Font("宋体", 10.5f),
new SolidBrush(Color.FromArgb(200, 100, 100, 100)),
iconLabelLocal);
}
catch { ;}
}
private void cdromListBox_MeasureItem(object sender, MeasureItemEventArgs e)
{
//计算高度,间隔+ICON+间隔+字高+调整位
e.ItemHeight = 2 + 16 + 2 + 9 + 6;
}
private void btnUpdate_Click(object sender, EventArgs e)
{
InitCDROMList();
}
bool onloadtrue = false;
private void FormMain_Load(object sender, EventArgs e)
{
onloadtrue = true;
if (OpterationModel == 3)
{
cbWithFtpUpLoad.Text = "只上传文件";
}
this.toolTip1.SetToolTip(TestFtpPath, "选择目标文件路径!");
this.OnConvertCompleted += this.GameOver;
InitCDROMList();
//操作模式 0- 担搁 1 - 批量制作ISO上传 2-批量制作ISO 3-批量上传
}
private void InitCDROMList()
{
///初始化CDROM列表
cdromListBox.Items.Clear();
this.listView1.Items.Clear();
DriveInfo[] dis = DriveInfo.GetDrives();
foreach (DriveInfo di in dis)
{
if (di.DriveType == DriveType.CDRom)
{
CDInfo cdi = new CDInfo(di.Name);
cdromListBox.Items.Add(cdi);
ListViewItem i = new ListViewItem("(" + cdi.Name.Trim() + ")" + cdi.VolumeLabel, 0);
this.listView1.Items.Add(i);
}
}
}
private void cdromListBox_SelectedIndexChanged(object sender, EventArgs e)
{
///修改状态。
btISOSave.Enabled = (cdromListBox.SelectedItem != null);
}
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
onloadtrue = false;
if (toolStripProgressBar1.Value >= toolStripProgressBar1.Minimum && ISOCreater.WorkState == true)
{
if (MessageBox.Show("正在工作中,请问是否终止退出?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
ISOCreater.WorkState = false;
client.CancelAsync();
toolStripProgressBar1.Value = 0;
this.Visible = false;
}
}
else
{
onloadtrue = false;
this.Visible = false;
}
}
private void TestFtpPath_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("explorer.exe", txtFTPPath.Text);
}
private void btExit_Click(object sender, EventArgs e)
{
if (toolStripProgressBar1.Value >= toolStripProgressBar1.Minimum&& ISOCreater.WorkState == true)
{
if (MessageBox.Show("正在工作中,请问是否终止退出?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
onloadtrue = false;
ISOCreater.WorkState = false;
btISOSave.Enabled = true;
client.CancelAsync();
toolStripProgressBar1.Value = 0;
this.Visible = false;
}
}
else
{
onloadtrue = false;
this.Visible = false;
}
}
#endregion
private void txtFTPPath_TextChanged(object sender, EventArgs e)
{
DestFilestore = txtFTPPath.Text;
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
//修改状态。
btISOSave.Enabled = (listView1.SelectedItems!= null);
}
}
class CDInfo
{
string vol;
string name;
public CDInfo(string driveName)
{
DriveInfo di = new DriveInfo(driveName);
try
{
name = driveName.Replace("\\", "");
vol = di.VolumeLabel;
}
catch
{
vol = "无光盘";
}
}
/// <summary>
/// 盘符
/// </summary>
public string Name
{
get
{
return name;
}
}
/// <summary>
/// 盘卷标
/// </summary>
public string VolumeLabel
{
get
{
return vol;
}
}
/// <summary>
/// 供列表容器使用
/// </summary>
/// <returns></returns>
public override string ToString()
{
return vol;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -