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

需积分: 50 9 下载量 201 浏览量 更新于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 Warning: Ignoring extra path from command line: "../openMVS" -- Detected version of GNU GCC: 94 (904) Compiling with C++17 CMake Error at /home/xujx/.local/lib/python3.8/site-packages/cmake/data/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:751 (message): Compiling the CUDA compiler identification source file "CMakeCUDACompilerId.cu" failed. Compiler: /usr/bin/nvcc Build flags: Id flags: --keep;--keep-dir;tmp -v The output was: 255 #$ _SPACE_= #$ _CUDART_=cudart #$ _HERE_=/usr/lib/nvidia-cuda-toolkit/bin #$ _THERE_=/usr/lib/nvidia-cuda-toolkit/bin #$ _TARGET_SIZE_= #$ _TARGET_DIR_= #$ _TARGET_SIZE_=64 #$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice #$ PATH=/usr/lib/nvidia-cuda-toolkit/bin:/usr/local/cuda-11.8/bin:/home/xujx/anaconda3/bin:/home/xujx/anaconda3/condabin:/home/xujx/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin #$ LIBRARIES= -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu #$ rm tmp/a_dlink.reg.c #$ gcc -D__CUDA_ARCH__=300 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=10 -D__CUDACC_VER_MINOR__=1 -D__CUDACC_VER_BUILD__=243 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" > "tmp/CMakeCUDACompilerId.cpp1.ii" #$ cicc --c++14 --gnu_version=90400 --allow_managed -arch compute_30 -m64 -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused -nvvmir-library "/usr/lib/nvidia-cuda-toolkit/libdevice/libdevice.10.bc" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --orig_src_file_name "CMakeCUDACompilerId.cu" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx" #$ ptxas -arch=sm_30 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_30.cubin" ptxas fatal : Value 'sm_30' is not defined for option 'gpu-name' # --error 0xff -- Call Stack (most recent call first): /home/xujx/.local/lib/python3.8/site-packages/cmake/data/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD) /home/xujx/.local/lib/python3.8/site-packages/cmake/data/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test) /home/xujx/.local/lib/python3.8/site-packages/cmake/data/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:307 (CMAKE_DETERMINE_COMPILER_ID) CMakeLists.txt:109 (ENABLE_LANGUAGE)是什么问题

2023-07-08 上传