日期:2014-05-17  浏览次数:21021 次

请教一小段关于autorun.inf的代码,多谢!
下面是一段释放AutoRun.inf到U盘上的代码?看了好久都没搞明白。
直接copy或者生成一个AutoRun.inf到U盘上不行吗?
请各位高手赐教!

//释放AutoRun.inf到U盘
ResourceToFile(infPath,MAKEINTRESOURCE(ID_DAT),MAKEINTRESOURCE(RC_AUTORUN));

void ResourceToFile(char *filename,char *Name,char* Type)
{
//寻找自身进程中的资源
  HRSRC hRes = FindResource(NULL,Name,Type);
if(hRes==NULL)
return;
//导入资源
  HGLOBAL hgRes = LoadResource(NULL, hRes);
if(hgRes==NULL)
return;
//锁定资源
  void *pRes = LockResource(hgRes);
if(pRes==NULL)
return;
//得到资源字节数
  DWORD size = SizeofResource(NULL, hRes);
if(size==0)
return;
//创建文件
  HANDLE hFile = CreateFile(filename, GENERIC_WRITE, 0, 0, 
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, 0);
  if(hFile==INVALID_HANDLE_VALUE)
return;
  DWORD dwWrite;
//把资源写入到文件
  if(!WriteFile(hFile, pRes, size, &dwWrite, 0))
return;
//关闭文件句柄
  CloseHandle(hFile);
//释放资源
GlobalFree(hgRes);
}

------解决方案--------------------
直接copy或者生成一个AutoRun.inf到U盘上行
------解决方案--------------------
C/C++ code

//释放AutoRun.inf到U盘 
ResourceToFile(infPath,MAKEINTRESOURCE(ID_DAT),MAKEINTRESOURCE(RC_AUTORUN)); 

void ResourceToFile(char  *filename,char *Name,char* Type) 
{ 
    //寻找自身进程中的资源 
    HRSRC hRes = FindResource(NULL,Name,Type); 
    if(hRes==NULL) 
        return; 
    //导入资源 
    HGLOBAL hgRes = LoadResource(NULL, hRes); 
    if(hgRes==NULL) 
        return; 
    //锁定资源 
    void *pRes = LockResource(hgRes); 
    if(pRes==NULL) 
        return; 
    //得到资源字节数 
    DWORD size = SizeofResource(NULL, hRes); 
    if(size==0) 
        return; 
    //创建文件 
    HANDLE hFile = CreateFile(filename, GENERIC_WRITE, 0, 0, 
        CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, 0); 
    if(hFile==INVALID_HANDLE_VALUE) 
        return; 
    DWORD dwWrite; 
    //把资源写入到文件 
    if(!WriteFile(hFile, pRes, size, &dwWrite, 0)) 
        return; 
    //关闭文件句柄 
    CloseHandle(hFile); 
    //释放资源 
    GlobalFree(hgRes); 
}

------解决方案--------------------
这样保存的文件和原来的INf文件时一样的,没区别,只不过是动态释放出来而已
------解决方案--------------------
学习····看不明白····
------解决方案--------------------
学习了。。。。。。。。。。。。好东东
------解决方案--------------------
探讨
那么autorun.inf文件中的内容是什么呢?程序的什么地方是和这相关的?