1.7 多媒体光盘
本节主要介绍了如何自动启动多媒体光盘和触摸屏的相关技术。自动启动多媒体光盘技术应用十分广泛,现在的光盘大多应用这些技术,节省了用户单击进入的时间。
实例027 自动启动的多媒体光盘程序
实例说明
用户在安装软件时,将光盘放入光驱内,光盘会自动运行,进行安装操作,该功能是如何实现的呢?本例介绍如何制作“自动安装的光盘程序”,程序运行效果如图1.27所示。
技术要点
其实,实现光盘的自动运行非常简单,当用户打开自动运行的光盘时,会发现光盘中有几个特殊的文件,分别为“autorun.exe”、“run.ico”和“autorun.inf”,其中“autorun.exe”是光盘自动播放时执行的可执行文件,“run.ico”是光盘的图标,“autorun.inf”是一个INI文件。只要光盘中包含这些文件,那么在将光盘放入光驱时,就会自动运行。
实现过程
(1)创建一个项目,将其命名为Ex01_27,默认窗体为Form1。
(2)为Form1窗体添加背景图片Button控件。
(3)主要程序代码。
private void Form1_Load(object sender, EventArgs e)
{
StreamWriter sw = new StreamWriter("AutoRun.inf",false);
sw.WriteLine("[autorun]");
sw.WriteLine("OPEN=AUTORUN.EXE");
sw.WriteLine("ICON=run.ICO");
sw.Close();
}
(4)运行程序,将可执行文件命名为“autorun.exe”,该文件就是光盘自动播放时打开的文件。
(5)选择一个图标,命名为“run.ico”,该图标在光驱读盘时显示。
(6)在刻光盘时,将上面的“run.ico”、“autorun.inf”和“autorun.exe”3个文件刻录到光盘中。
举一反三
根据本实例,读者可以开发以下程序。
设计多媒体宣传光盘。
制作后门程序。
实例028 为触摸屏程序添加虚拟键盘
实例说明
由于触摸屏没有键盘,只能利用屏幕操作。如果要输入数据或查找数据,需要制作一个虚拟键盘,以方便用户输入。本例介绍如何实现虚拟键盘的程序设计。运行本例,效果如图1.28所示。
技术要点
本例中用到了Lable控件的透明属性和字符串截取技术。主要是使用Substring()方法。下面详细介绍一下该方法。
Substring()方法用来从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。其语法结构如下:
public string Substring (int startIndex,int length)
参数说明如下。
l startIndex:子字符串起始位置的索引。
l length:子字符串中的字符数。
l 返回值:一个String,等于此实例中从startIndex开始的长度为length的子字符串,如果startIndex等于此实例的长度且length为零,则为Empty。
实现过程
(1)创建一个项目,将其命名为Ex01_28,默认窗体为Form1。
(2)在窗体上添加2个Panel控件,1个TextBox控件和许多Label控件,每个Label控件对应背景图片上的1个按钮。
(3)为Panel控件添加背景图片,并将Label控件的BackColor设置为透明。
(4)主要程序代码。
private void Form1_Load(object sender, EventArgs e)
{
lbl_0.Click += new EventHandler(lbl_Click);
lbl_1.Click += new EventHandler(lbl_Click);
lbl_2.Click += new EventHandler(lbl_Click);
lbl_3.Click += new EventHandler(lbl_Click);
lbl_4.Click += new EventHandler(lbl_Click);
lbl_5.Click += new EventHandler(lbl_Click);
lbl_6.Click += new EventHandler(lbl_Click);
lbl_7.Click += new EventHandler(lbl_Click);
lbl_8.Click += new EventHandler(lbl_Click);
lbl_9.Click += new EventHandler(lbl_Click);
lbl_Q.Click += new EventHandler(lbl_Click);
lbl_W.Click += new EventHandler(lbl_Click);
lbl_R.Click += new EventHandler(lbl_Click);
lbl_E.Click += new EventHandler(lbl_Click);
lbl_T.Click += new EventHandler(lbl_Click);
lbl_Y.Click += new EventHandler(lbl_Click);
lbl_U.Click += new EventHandler(lbl_Click);
lbl_I.Click += new EventHandler(lbl_Click);
lbl_O.Click += new EventHandler(lbl_Click);
lbl_P.Click += new EventHandler(lbl_Click);
lbl_A.Click += new EventHandler(lbl_Click);
lbl_S.Click += new EventHandler(lbl_Click);
lbl_D.Click += new EventHandler(lbl_Click);
lbl_F.Click += new EventHandler(lbl_Click);
lbl_G.Click += new EventHandler(lbl_Click);
lbl_H.Click += new EventHandler(lbl_Click);
lbl_J.Click += new EventHandler(lbl_Click);
lbl_K.Click += new EventHandler(lbl_Click);
lbl_L.Click += new EventHandler(lbl_Click);
lbl_Z.Click += new EventHandler(lbl_Click);
lbl_X.Click += new EventHandler(lbl_Click);
lbl_C.Click += new EventHandler(lbl_Click);
lbl_V.Click += new EventHandler(lbl_Click);
lbl_B.Click += new EventHandler(lbl_Click);
lbl_N.Click += new EventHandler(lbl_Click);
lbl_M.Click += new EventHandler(lbl_Click);
label44.Click += new EventHandler(label44_Click);
}
将选中的数字或字母加入TextBox.Text的实现代码如下:
void lbl_Click(object sender, EventArgs e)
{
Label l = (Label)sender;
textBox1.Text += l.Name.Substring(4, 1);
textBox1.SelectionStart = textBox1.Text.Length;
}
举一反三
根据本实例,读者可以实现以下程序。
制作注册控件的程序。
制作网络程序复制的程序。