31上位机VC MFC光盘内程序自动运行功能
31上位机VC MFC光盘内程序自动运行功能
功能展示
我们购买光盘在电脑上打开,都会自动运行光盘里面的程序。如果我们自己开发了一套上位机程序,刻录到光盘里,也想实现自动运行功能,如何实现呢?我们这例程就来实现,效果如图
要点提示 其实光盘自动运行很简单,只要建立一文件AutoRun.inf,往文件写入些信息便可;AutoRun.inf是一个文本形式的配置文件,它只能位于驱动器的根目录下。是AUTO-CD所必须的,。这个 文件的主要作用就是告诉Windows自动运行哪个程序和它的启动路径,并为光盘设置图标;当我们的电脑系统如WIN7侦测光驱中E 光盘时,便开始寻找光盘根目录下的AutoRun.inf文件。如果存在 AutoRun.inf 文件,则就会执行它里面的预设程序。我们只要在文件内部写入[autorun] open=AUTORUN.EXE ICON=run.ico 再将我们的程序改名为AUTORUN.EXE和一个图标run.ico一同放入光盘,便可实现AUTORUN.EXE的自动运行 所以光盘中只要具有autorun.exe,autorun.inf,run.ico三个文件我们就可以实现程序的自动运行 这里我们涉及INF文件的操作,VC提供WritePrivateProfileString用于创建并写入INF或INI类文件数据,及GetPrivateProfileString用于获取INF文件中的数据;两函数语法在MSDN查询得 BOOL WritePrivateProfileString( LPCTSTR lpAppName, // pointer to section name LPCTSTR lpKeyName, // pointer to key name LPCTSTR lpString, // pointer to string to add LPCTSTR lpFileName // pointer to initializationfilename ); DWORD GetPrivateProfileString( LPCTSTR lpAppName, // points to section name LPCTSTR lpKeyName, // points to key name LPCTSTR lpDefault, // points to default string LPTSTR lpReturnedString, // points to destination buffer DWORD nSize, // size of destination buffer LPCTSTR lpFileName // points to initialization filename); lpAppName:用于指定INF文件的段名; lpKeyName:用于标识INF文件的键名; lpString指定键值; lpFileName 指定INF文件名; lpDefault标识默认值; lpReturnedString接受读取的数据; nSize:用于标识lpReturnedString的大小
实现功能 1.新建基于对话框的应用程序 2.建立INF文件创建的一函数便可 - void CAutoRunDlg::CreateIni()
- {
- CString appname = AfxGetAppName();
- appname.Insert(0,"./");
- appname.Insert(appname.GetLength(),".INF");
-
- WritePrivateProfileString("autorun","open","AUTORUN.EXE",appname);
- WritePrivateProfileString("autorun","ICON","run.ico",appname);
- }
复制代码
3.最后将我们工程生成的AutoRun.INF, AutoRun.ico, AutoRun.exe放入光盘便可
我们演示下功能实现过程
源码及视频下载 (仅在电脑可见)
|