c获取文件版本信息|vb获取文件版本信息

㈠ c语言控制台写出来的exe文件的版本信息如何设置

看编译器的设置。build方面。

㈡ c++ 获取文件版本信息

c++ 获取文件版本信息文件信息结构描述:struct VS_FIXEDFILEINFO { DWORD dwSignature; //=0xFEEFO4BD DWORD dwStrucVersion; //该结构的版本信息,分高低版本 DWORD dwFileVersionMS; //主文件版本 DWORD dwFileVersionLS; //次文件版本 DWORD dwProctVersionMS; //主产品版本 DWORD dwProctVersionLS; //次产品版本 DWORD dwFileFlagsMask; //文件标志掩码 DWORD dwFileFlags; //文件标志(是否包含调试版本,动态版本结构…) DWORD dwFileOS; //文件原定的操作系统(VOS_DOS,VOS_NT,VOS__WINDOWS16…) DWORD dwFileType; //文件类型(VFT_UNKNOWN,VFT_APP,VFT_DLL…)DWORD dwFileSubtype; //当dwFileType为VFT_APP或VFT_DLL时该值为0,当为驱动信息VFT_APP或字体信息时该值包含其具体的信息 DWORD dwFileDateMS; //主时间戳 DWORD dwFileDateLS; //次时间戳 };===============================================struct st_Language { WORD wLanguageID; WORD wCodePage;};CString str("D:\\test\\test.exe"); DWORD dwSize = GetFileVersionInfoSize(str,NULL); if(0 == dwSize) return; LPBYTE pBlock = (BYTE*)malloc(dwSize); bool b = GetFileVersionInfo(str,0,dwSize,pBlock); char* pVerValue = NULL; UINT nlen1 = 0; VerQueryValue(pBlock,TEXT("file://VarFileInfo//Translation"), (LPVOID*)&pVerValue,&nlen1); //获取语言 char* pLanValue = NULL; UINT nLen2 = 0; VerQueryValue(pBlock,"VarFileInfo\\Translation",(LPVOID*)&pLanValue,&nLen2); //080404b0为中文 st_Language stlang = *((st_Language *)pLanValue); //获取版本属性 VerQueryValue(pBlock,TEXT("file://%22),(LPVOID*)%26pVerValue,%26nlen1/); VS_FIXEDFILEINFO *pfixfileinfo = (VS_FIXEDFILEINFO *)pVerValue;//修改属性 pfixfileinfo->dwFileVersionLS = 1234; pfixfileinfo->dwFileVersionMS = 4321; pfixfileinfo->dwProctVersionLS = 101; pfixfileinfo->dwProctVersionMS = 1010;//修改资源 HANDLE handle = BeginUpdateResource(str,FALSE); BOOL result = UpdateResource(handle ,RT_VERSION ,MAKEINTRESOURCE(1) ,stlang.wLanguageID ,pBlock ,dwSize); if (result == FALSE) { AfxMessageBox("Updata Resource False."); } EndUpdateResource(handle,FALSE);free(pBlock);

㈢ vb.net如何获取C:\info文件中VERSION=1.7的值,并在label中显示1.7

你好,软糖来回答一下。

你是要获取C:info这个文件的版本吗?可以用下面的函数(放到任一Mole中):

#Region"■获取文件版本"'''<summary>'''获取文件的版本。'''</summary>'''<paramname="文件路径">必需。[String]。表示该文件的路径。</param>PublicFunction获取文件版本(ByVal文件路径AsString)AsStringDiminfoAsFileVersionInfo=FileVersionInfo.GetVersionInfo(文件路径)Returninfo.FileVersionEndFunction#EndRegion

在窗体中加入代码:

利用Split函数获取=号后面的内容

DimstrAsString=获取文件版本("C:info")label1.Text=str.Split("=")(1)

还是说info是info.ini或info.txt文件,你需要读取它某行内容为

VERSION=1.7

的值,然后输出到label?

ImportsSystem.IOPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadLabel1.Text=读取文件版本("c:info.txt")EndSubPublicFunction读取文件版本(ByVal文件路径AsString)AsStringDim文件读取器AsStreamReader=NewStreamReader(文件路径)Dim搜索串="VERSION="WhileNot文件读取器.EndOfStreamDimt语句AsString=文件读取器.ReadLineIft语句.StartsWith(搜索串)ThenReturnt语句.Substring(搜索串.Length)EndIfEndWhileReturn""EndFunctionEndClass

调试已通过,结果图片:

㈣ 怎么样C语言解析一个XML文件中的信息,题目很详细,跪求高人指点。

这个要求不需要作XML的解析,用字符串搜索功能就足够了,把网页内容读出之中按字符串搜索就可以找到<lat>和<lng>。比如让指针 char * page 指向读取得到的网页内容,就可以这样得到经度lat和纬度lng: #include <string.h>#include <stdio.h> double lat, lng;char * str_lat, *str_lng; str_lat = strstr(page, "<lat>"); /*搜索字符串<lat>的位置*/sscanf(str_lat+5, "%lf", &lat); /*从搜索到的位置之后读取一个浮点数作为纬度lat*/ str_lng = strstr(page, "<lng>");sscanf(str_lng+5, "%lf", &lng); /*类似地,读出经度lng*/

㈤ vb获取文件版本信息

'引用复 Microsoft scripting runtimeDim fver As StringDim fso As FileSystemObjectSet fso = New FileSystemObjectfver = fso.GetFileVersion("c:\1.exe")'文件路径可以用其制他方法获得MsgBox fver'这里你可以自行用其他方法处理 答案补充 哪里不行,什么错误?'引用 Microsoft scripting runtime了么? 答案补充 是在引用里面,不是部件

㈥ 如何获取某个动态链接库的版本信息

ldd <可执行文件名> 查看可执行文件链接了哪些 系统动态链接库nm <可执行文件名> 查看可执行文件里面有哪些符号strip <可执行文件名> 去除符号表可以给可执行文件瘦身如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令strings <可执行文件名>Linux操作系统上面的动态共享库大致分为三类:1、操作系统级别的共享库和基础的系统工具库比方说libc.so, libz.so, libpthread.so等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr /lib64目录。如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如果是64位操作系统,还有/usr/X11R6 /lib64目录。此外还可能有其他特定Linux版本的系统库目录。这些系统库文件的完整和版本的正确,确保了Linux上面各种程序能够正常的运行。2、应用程序级别的系统共享库并非操作系统自带,但是可能被很多应用程序所共享的库,一般会被放在/usr/local/lib和/usr/local/lib64这两个目录下面。很多你自行编译安装的程序都会在编译的时候自动把/usr/local/lib加入gcc的-L参数,而在运行的时候自动到/usr/local /lib下面去寻找共享库。以上两类的动态共享库,应用程序会自动寻找到他们,并不需要你额外的设置和担心。这是为什么呢?因为以上这些目录默认就被加入到动态链接程序的搜索路径里面了。Linux的系统共享库搜索路径定义在/etc/ld.so.conf这个配置文件里面。这个文件的内容格式大致如下:/usr/X11R6/lib64 /usr/X11R6/lib /usr/local/lib /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/ImageMagick/lib假设我们自己编译安装的ImageMagick图形库在/usr/local/ImageMagick目录下面,并且希望其他应用程序都可以使用 ImageMagick的动态共享库,那么我们只需要把/usr/local/ImageMagick/lib目录加入/etc/ld.so.conf文件里面,然后执行:ldconfig 命令即可。ldcofig将搜索以上所有的目录,为共享库建立一个缓存文件/etc/ld.so.cache。为了确认ldconfig已经搜索到ImageMagick的库,我们可以用上面介绍的strings命令从ld.so.cache里面抽取文本信息来检查一下:strings /etc/ld.so.cache | grep ImageMagick 输出结果为:/usr/local/ImageMagick/lib/libWand.so.10 /usr/local/ImageMagick/lib/libWand.so /usr/local/ImageMagick/lib/libMagick.so.10 /usr/local/ImageMagick/lib/libMagick.so /usr/local/ImageMagick/lib/libMagick++.so.10 /usr/local/ImageMagick/lib/libMagick++.so已经成功了!3、应用程序独享的动态共享库有很多共享库只被特定的应用程序使用,那么就没有必要加入系统库路径,以免应用程序的共享库之间发生版本冲突。因此Linux还可以通过设置环境变量LD_LIBRARY_PATH来临时指定应用程序的共享库搜索路径,就像我们上面举的那个例子一样,我们可以在应用程序的启动脚本里面预先设置 LD_LIBRARY_PATH,指定本应用程序附加的共享库搜索路径,从而让应用程序找到它。

㈦ 谁会用C语言获取操作系统版本号,计算机名啊

GetUserName(LPWSTR lpBuffer, LPDWORD nSize);lpBuffer是一个数组的地址,用来存贮得到的用户名,nsize是个指针,指向此存贮此数组大小的单元,就是数组能存贮的字符数量GetVersionExW(LPOSVERSIONINFOW);参数LPOSVERSIONINFO是一个指向OSVERSIONINFO类型变量的指针,具体判断代码如下定义 OSVERSIONINFO osvi;然后调用函数取得版本号,判断如下switch (osvi.dwPlatformId) { case VER_PLATFORM_WIN32_NT: if (osvi.dwMajorVersion == 5&&osvi.dwMinorVersion == 0) { strOSVersion = TEXT("Windows 2000"); } else if (osvi.dwMajorVersion == 5&&osvi.dwMinorVersion == 1) { strOSVersion = TEXT("Windows XP"); } else if(osvi.dwMajorVersion == 6&&osvi.dwMinorVersion == 0) { strOSVersion = TEXT("Windows Vista"); } else if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 0) { strOSVersion = TEXT("Windows NT"); } break; case VER_PLATFORM_WIN32_WINDOWS: if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 10) { strOSVersion = TEXT("Windows 98"); } else if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 90) { strOSVersion = TEXT("Windows ME"); } else { strOSVersion = TEXT("Windows 95"); } break; default: break;}

㈧ 请问用autoit怎么遍历文件夹和子文件夹下的文件,打印文件的版本号呢求具体程序代码,谢谢!

1)通过 FileFindFirstFile () 和 FileFindNextFile () 来遍历一个文件夹,具体用法见AutoIt自带的帮助文档。2)若 FileGetAttrib ("文件名") = 'D' 表示是子文件夹,再进去重复步骤1)遍历。3)重复以上步骤(这应该是一个递归的过程)。 获取文件版本号用 FileGetVersion () 。帮助里有个例子:$ver = FileGetVersion("Explorer.exe")MsgBox(0, "Explorer version", $ver) 有了以上信息,楼主应该可以自己尝试写写代码,就当作练习吧。

㈨ 如何用C语言获取主机操作系统的版本号

redhat系统可直接从文件中读取:cat /etc/redhat-releasewindows:GetUserName(LPWSTR lpBuffer, LPDWORD nSize);lpBuffer是一个数组的地址,用来存贮得到的用户名,nsize是个指针,指向此存贮此数组大小的单元,就是数组能存贮的字符数量GetVersionExW(LPOSVERSIONINFOW);参数LPOSVERSIONINFO是一个指向OSVERSIONINFO类型变量的指针,具体判断代码如下定义 OSVERSIONINFO osvi;然后调用函数取得版本号,判断如下switch (osvi.dwPlatformId) { case VER_PLATFORM_WIN32_NT: if (osvi.dwMajorVersion == 5&&osvi.dwMinorVersion == 0) { strOSVersion = TEXT("Windows 2000"); } else if (osvi.dwMajorVersion == 5&&osvi.dwMinorVersion == 1) { strOSVersion = TEXT("Windows XP"); } else if(osvi.dwMajorVersion == 6&&osvi.dwMinorVersion == 0) { strOSVersion = TEXT("Windows Vista"); } else if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 0) { strOSVersion = TEXT("Windows NT"); } break; case VER_PLATFORM_WIN32_WINDOWS: if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 10) { strOSVersion = TEXT("Windows 98"); } else if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 90) { strOSVersion = TEXT("Windows ME"); } else { strOSVersion = TEXT("Windows 95"); } break; default: break;}

㈩ 如何实现c/s下的客户端的版本更新

用C#实现软件自动更新思路前言 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题?部署很简单,只要点击安装程序即可,难的在于每当有新版本发布时,能够实现自动升级[3]。现在好了,我们的目标很简单,我们希望开发一个与具体应用无关的能够复用的自动升级系统。下面我为大家提供了一套可复用的用C#编写的自动升级系统。2 实现软件的自动升级存在的困难第一,为了查找远程服务器上的更新,应用程序必须有查询网络的途径,这需要网络编程、简单的应用程序与服务器通讯的协议。第二是下载。下载看起来不需要考虑联网的问题,但要考虑下载用户请求的文件,以及在没有用户同意时下载大文件。友好的自动更新应用程序将使用剩余的带宽下载更新。这听起来简单,但却是一个技术难题,幸运的是已经有了解决方法。第三个考虑因素是使用新版应用程序更换原应用程序的过程。这个问题比较有趣,因为它要求代码运行时将自己从系统删除,有多种办法可以实现该功能[5],本文程序主要通过比较新旧版本的日期号来实现替换新版本应用程序的功能。3 实现软件自动在线升级的原理写两个程序,一个是主程序;一个是升级程序;所有升级任务都由升级程序完成。1.启动升级程序,升级程序连接到网站,下载新的主程序(当然还包括支持的库文件、XML配置文档等)到临时文件夹;2.升级程序获取服务器端XML配置文件中新版本程序的更新日期或版本号或文件大小;3.升级程序获取原有客户端应用程序的最近一次更新日期或版本号或文件大小,两者进行比较;如果发现升级程序的日期大于原有程序的最新日期,则提示用户是否升级;或者是采用将现有版本与最新版本作比较,发现最新的则提示用户是否升级;也有人用其它属性如文件大小进行比较,发现升级程序的文件大小大于旧版本的程序的大小则提示用户升级。本文主要采用比较新旧版本更新日期号来提示用户升级。4.如果用户选择升级,则获取下载文件列表,开始进行批量下载文档;5.升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序;6.删除旧的主程序,拷贝临时文件夹中的文件到相应的位置;7.检查主程序的状态,若状态为活动的,则启动新的主程序;8.关闭升级程序,升级完成[4]。4 用C#实现在线升级的关键步骤 这里我主要使用日期信息来检测是否需要下载升级版本。 4.1 准备一个XML配置文件 名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。


赞 (0)