Microsoft固定文件信息:MaigaProduct详细版本

需积分: 50 9 下载量 35 浏览量 更新于2024-08-11 收藏 2KB TXT 举报
"file_version_info2.txt 是一个用于设置Windows应用程序文件版本信息的Python脚本。这个脚本使用pyinstallextra库来修改和标注文件的固定文件信息(Fixed File Info),这部分信息通常包含在Windows可执行文件的资源部分。文件版本信息包括文件版本、产品版本、操作系统目标、文件类型、子类型以及创建日期等,这些都是根据微软的MSDN文档(http://msdn.microsoft.com/en-us/library/ms646997.aspx)定义的。" 在Windows操作系统中,每个可执行文件或动态链接库(DLL)都包含了一些元数据,这些数据用来描述文件的版本、版权信息、目标平台等。`file_version_info2.txt` 脚本就是用来设置这些信息的。以下是其中涉及的一些关键知识点: 1. **FixedFileInfo**: 这是文件版本信息的核心部分,包含了文件的版本号、产品版本号、标志(mask和flags)等。文件版本和产品版本通常以四元组的形式表示,例如 `(1,0,0,1)`,其中每个数字代表主版本、次版本、修订版和构建版本。 2. **mask 和 flags**: `mask` 是一个位掩码,用于指定哪些`flags`位是有效的。`flags`则是一组布尔属性,它们定义了文件的特性,如是否是最终版本、是否可以被重写等。在这个例子中,`flags`设置为0,表示没有特定的标志被设置。 3. **OS**: 这个字段指定了文件设计的目标操作系统。值0x4表示该文件是为Windows NT系列操作系统编译的,这通常包括Windows 2000及以后的版本。 4. **fileType 和 subtype**: `fileType`定义了文件的类型。值0x1表示这是一个应用程序。`subtype`在某些情况下可以指定文件的特定功能,但在这个脚本中,它被设置为0x0,表示未定义的子类型。 5. **StringFileInfo**: 这部分包含了用户可以查看的字符串信息,如文件描述、版本号、内部名称、法律版权和原始文件名等。这些信息通常在文件属性对话框中显示。 6. **StringTable**: 它包含了一个或多个字符串表,每个表对应一种语言和地区编码,例如`040904B0`对应的是英文(美国)编码。在表内,有多个`StringStruct`,分别存储了不同类型的字符串信息。 7. **pyinstallextra**: 这个标签暗示了脚本可能使用了Python的一个库`pyinstallextra`,该库扩展了Python的安装包处理能力,允许用户自定义文件的版本信息。 通过修改这样的脚本,开发者可以确保他们的程序带有正确的版本信息和版权声明,这对于软件分发、版本管理和法律保护都至关重要。同时,对于最终用户来说,这些信息也是了解软件来源、确定其可靠性和获取技术支持的重要参考。

import http.clientfrom html.parser import HTMLParserimport argparsefrom concurrent.futures import ThreadPoolExecutorimport threadingprefix = "save/"readed_path = set()cur_path = []new_path = []lock = threading.Lock()cond=threading.Condition()class MyHttpParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.tag = [] self.href = "" self.txt = "" def handle_starttag(self, tag, attrs): self.tag.append(tag) # print("start tag in list :" + str(self.tag)) if tag == "a": for att in attrs: if att[0] == 'href': self.href = att[1] def handle_endtag(self, tag): if tag == "a" and len(self.tag) > 2 and self.tag[-2] == "div": print("in div, link txt is %s ." % self.txt) print("in div, link url is %s ." % self.href) if not self.href in readed_path: readed_path.add(self.href) lock.acquire() new_path.append(self.href) lock.release() # print("end tag in list :" + str(self.tag)) self.tag.pop(-1) def handle_data(self, data): if len(self.tag) >= 1 and self.tag[-1] == "a": self.txt = datadef LoadHtml(path, file_path): if len(file_path) == 0: file_path = "/" conn = http.client.HTTPConnection(path) try: conn.request("GET", file_path) response = conn.getresponse() print(response.status, response.reason, response.version) data = response.read().decode("utf-8") if response.status == 301: data = response.getheader("Location") lock.acquire() new_path.append(data) lock.release() data = "" #print(data) conn.close() return data except Exception as e: print(e.args)怎么设置文件的保存路径

2023-06-01 上传

cmake_minimum_required(VERSION 3.16) # 声明该项目的名称和版本号 project(MyLib VERSION 1.0) # 添加库代码文件到该库 add_library(mylib STATIC src/header.cpp) target_include_directories(mylib INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> ) add_library(mylib_shared SHARED src/header.cpp) target_include_directories(mylib_shared INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> ) # include_directories(include) # 指定install路径,以便于其他项目找到该库 install(TARGETS mylib mylib_shared EXPORT MyLibTargets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin) install(FILES include/header.h DESTINATION include) # 生成MyLibConfig.cmake文件 include(CMakePackageConfigHelpers) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/MyLibConfigVersion.cmake" VERSION ${MyLib_VERSION} COMPATIBILITY AnyNewerVersion ) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/MyLibConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/MyLibConfig.cmake" INSTALL_DESTINATION cmake ) install( EXPORT MyLibTargets NAMESPACE MyLib:: DESTINATION cmake ) # export(EXPORT MyLibTargets # NAMESPACE MyLib:: # FILE MyLibTargets.cmake) # install(FILES ${CMAKE_CURRENT_BINARY_DIR}/MyLibTargets.cmake DESTINATION cmake) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/MyLibConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/MyLibConfigVersion.cmake" DESTINATION cmake )为什么执行时,提醒/home/czl/cmake_lib/src/header.cpp:1:10: fatal error: header.h: 没有那个文件或目录

2023-05-30 上传
2023-07-17 上传