Пример #1
0
def GetFileInfo(FilePath):  #{
    FixedInfo = GetFileVersionInfo(FilePath, '\\')
    ms = FixedInfo['FileVersionMS']
    ls = FixedInfo['FileVersionLS']
    Version = f'{HIWORD(ms)}.{LOWORD(ms)}.{HIWORD(ls)}.{LOWORD(ls)}'

    (lang, codepage) = GetFileVersionInfo(FilePath,
                                          r'\VarFileInfo\Translation')[0]
    codepage_path = fr'\StringFileInfo\{lang:04X}{codepage:04X}'
    StringInfo = {}
    for prop_name in (
            'Comments',
            'InternalName',
            'ProductName',
            'CompanyName',
            'LegalCopyright',
            'ProductVersion',
            'FileDescription',
            'LegalTrademarks',
            'PrivateBuild',
            'FileVersion',
            'OriginalFilename',
            'SpecialBuild',
    ):
        StringInfo[prop_name] = GetFileVersionInfo(
            FilePath, fr'{codepage_path}\{prop_name}')

    return dict(
        Version=Version,
        FixedInfo=FixedInfo,
        StringInfo=StringInfo,
    )
Пример #2
0
def Check_version(source, destination, file):
    source_version = GetFileVersionInfo(os.path.join(destination, file), "\\")
    destination_version = GetFileVersionInfo(os.path.join(source, file), "\\")
    if source_version != destination_version:
        print("Test nie zaliczony, wersje plików się nie zgadzają")
        print(source_version)
        print(destination_version)
    def getfileprops(path_to_file: str) -> dict:
        """
        Get properties of given file
        https://stackoverflow.com/a/7993095/4738630
        :param path_to_file: Path to file
        :return: Dict of properties
        """
        # TODO: to rewrite using standard library

        prop_names = ('Comments', 'InternalName', 'ProductName', 'CompanyName',
                      'LegalCopyright', 'ProductVersion', 'FileDescription',
                      'LegalTrademarks', 'PrivateBuild', 'FileVersion',
                      'OriginalFilename', 'SpecialBuild')

        props = {
            'FixedFileInfo': None,
            'StringFileInfo': None,
            'FileVersion': None,
            'ProductVersion': None
        }

        try:
            # backslash as parm returns dictionary of numeric info corresponding to VS_FIXEDFILEINFO struc
            fixed_info = GetFileVersionInfo(path_to_file, '\\')
            props['FixedFileInfo'] = fixed_info
            props['ProductVersion'] = "%d.%d.%d.%d" % (
                fixed_info['ProductVersionMS'] / 65536,
                fixed_info['ProductVersionMS'] % 65536,
                fixed_info['ProductVersionLS'] / 65536,
                fixed_info['ProductVersionLS'] % 65536)

            props['FileVersion'] = "%d.%d.%d.%d" % (
                fixed_info['FileVersionMS'] / 65536,
                fixed_info['FileVersionMS'] % 65536,
                fixed_info['FileVersionLS'] / 65536,
                fixed_info['FileVersionLS'] % 65536)

            # \VarFileInfo\Translation returns list of available (language, codepage)
            # pairs that can be used to retreive string info. We are using only the first pair.
            lang, codepage = GetFileVersionInfo(
                path_to_file, '\\VarFileInfo\\Translation')[0]

            # any other must be of the form \StringfileInfo\%04X%04X\parm_name, middle
            # two are language/codepage pair returned from above

            str_info = {}
            for propName in prop_names:
                str_info_path = u'\\StringFileInfo\\%04X%04X\\%s' % (
                    lang, codepage, propName)
                str_info[propName] = GetFileVersionInfo(
                    path_to_file, str_info_path)

            props['StringFileInfo'] = str_info
        except Exception:
            pass

        return props
Пример #4
0
def getFileDescription(windows_exe):
    try:
        language, codepage = GetFileVersionInfo(
            windows_exe, '\\VarFileInfo\\Translation')[0]
        stringFileInfo = u'\\StringFileInfo\\%04X%04X\\%s' % (
            language, codepage, "FileDescription")
        description = GetFileVersionInfo(windows_exe, stringFileInfo)
    except:
        description = "unknown"
    return description
Пример #5
0
 def get_file_description(windows_exe):
     try:
         language, codepage = GetFileVersionInfo(
             windows_exe, '\\VarFileInfo\\Translation')[0]
         string_file_info = u'\\StringFileInfo\\%04X%04X\\%s' % (
             language, codepage, "FileDescription")
         description = GetFileVersionInfo(windows_exe, string_file_info)
         print("Executable exist!!!")
     except:
         sys.exit("Executable doesnt exist!!!")
     return description
Пример #6
0
def fileVersion(program=None, year=False):
    ver = '?'
    ver_yr = '????'
    if program == None:
        check = sys.argv[0]
    else:
        s = program.rfind('.')
        if s < 0:
            check = program + sys.argv[0][sys.argv[0].rfind('.'):]
        else:
            check = program
    if check[-3:] == '.py':
        try:
            modtime = datetime.fromtimestamp(os.path.getmtime(check))
            ver = '3.0.%04d.%d%02d' % (modtime.year, modtime.month,
                                       modtime.day)
            ver_yr = '%04d' % modtime.year
        except:
            pass
    elif check[-5:] != '.exe':
        try:
            modtime = datetime.fromtimestamp(os.path.getmtime(check))
            ver = '3.0.%04d.%d%02d' % (modtime.year, modtime.month,
                                       modtime.day)
            ver_yr = '%04d' % modtime.year
        except:
            pass
    else:
        if sys.platform == 'win32' or sys.platform == 'cygwin':
            try:
                if check.find('\\') >= 0:  # if full path
                    info = GetFileVersionInfo(check, '\\')
                else:
                    info = GetFileVersionInfo(os.getcwd() + '\\' + check, '\\')
                ms = info['ProductVersionMS']
                #  ls = info['FileVersionLS']
                ls = info['ProductVersionLS']
                ver = str(HIWORD(ms)) + '.' + str(LOWORD(ms)) + '.' + str(
                    HIWORD(ls)) + '.' + str(LOWORD(ls))
                ver_yr = str(HIWORD(ls))
            except:
                try:
                    info = os.path.getmtime(os.getcwd() + '\\' + check)
                    ver = '3.0.' + datetime.fromtimestamp(info).strftime(
                        '%Y.%m%d')
                    ver_yr = datetime.fromtimestamp(info).strftime('%Y')
                    if ver[9] == '0':
                        ver = ver[:9] + ver[10:]
                except:
                    pass
    if year:
        return ver_yr
    else:
        return ver
Пример #7
0
def test_version(source, destination):
    mismatch_files = 0
    for file in Directory:
        source_version = GetFileVersionInfo(os.path.join(destination, file),
                                            "\\")
        destination_version = GetFileVersionInfo(os.path.join(source, file),
                                                 "\\")
        if source_version != destination_version:
            mismatch_files += 1
    if mismatch_files > 0:
        print("Test nie zaliczony, wersje plików się nie zgadzają")
        print("Liczba niezgodnych plików" + str(mismatch_files))
    else:
        print("Test zaliczony, wersje plików się zgadzają")
Пример #8
0
def get_version_number(filename):
    info = GetFileVersionInfo(filename, "\\")
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    return ("%d.%02d.%02d.%02d" %
            (ms / 65536, ms % 65536, ls / 65536, ls % 65536),
            "%d.%02d" % (ms / 65536, ms % 65536))
Пример #9
0
def get_version_data(filename):
    try:
        info = GetFileVersionInfo(filename, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
    except:
        return "Unknown version"
Пример #10
0
def get_version_number(filename):
    try:
        info = GetFileVersionInfo(filename, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return [HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)]
    except:
        return [0, 0, 0, 0]
Пример #11
0
def getExeVersion(path):
    info = GetFileVersionInfo(path, "\\")
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    ver = str(HIWORD(ms)) + '.' + str(LOWORD(ms)) + '.' + str(
        HIWORD(ls)) + '.' + str(LOWORD(ls))

    return ver
Пример #12
0
def get_version_number(exe: path_type) -> Optional[Tuple[int, int, int, int]]:
    try:
        info = GetFileVersionInfo(exe, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
    except error:
        return
Пример #13
0
def get_version_number(filename):
    info = GetFileVersionInfo(filename, "\\")
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    return ".".join(
        str(i)
        for i in [HIWORD(ms), LOWORD(ms),
                  HIWORD(ls), LOWORD(ls)])
Пример #14
0
 def get_version_number (self):
     try:
         info = GetFileVersionInfo (self.filename, "\\")
         ms = info['FileVersionMS']
         ls = info['FileVersionLS']
         return HIWORD (ms), LOWORD (ms), HIWORD (ls), LOWORD (ls)
     except:
         return 0,0,0,0
Пример #15
0
 def get_fileversion(self):
     try:
         info = GetFileVersionInfo(self.path, "\\")
         ms = info['FileVersionMS']
         ls = info['FileVersionLS']
         self.fileversion = (HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls))
     except:
         self.fileversion = (0, 0, 0, 0)
Пример #16
0
def get_version_number(SeuApp):
    try:
        info = GetFileVersionInfo(SeuApp, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return Landesk, HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
    except:
        return Landesk, "Versão desconhecida"
Пример #17
0
 def get_version_number_3class(self, filename):
     try:
         info = GetFileVersionInfo(filename, "\\")
         ms = info['FileVersionMS']
         ls = info['FileVersionLS']
         return '{0}.{1}.{2}'.format(HIWORD(ms), LOWORD(ms), HIWORD(ls))
     except:
         return '0.0.0'
Пример #18
0
def file_version(filename):
    try:
        info = GetFileVersionInfo(filename, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
    except:
        return 0, 0, 0, 0
Пример #19
0
def _get_ras_version_number(filename):
    try:
        info = GetFileVersionInfo(filename, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return HIWORD(ms), LOWORD(ms), LOWORD(ls)  # major, minor, revision
    except:
        return 0, 0, 0
Пример #20
0
    def GetFileVersion(self):
        if (AutoHasher.MAIN_FILE == None):
            return

        info = GetFileVersionInfo(AutoHasher.MAIN_FILE, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        self.version = f"{HIWORD(ms)}.{LOWORD(ms)}.{HIWORD(ls)}.{LOWORD(ls)}"
        print(self.version)
Пример #21
0
def get_version_number(filename):
    try:
        info = GetFileVersionInfo(os.path.realpath(filename), "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return '.'.join(
            [str(v) for v in (HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls))])
    except:
        return '0.0.0.0'
Пример #22
0
def get_version_number(filename):
    try:
        info = GetFileVersionInfo(filename, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
    except Exception as error:
        print(error)
        pass
Пример #23
0
def getPEVersion(fname):
    try:
        fileInfo = GetFileVersionInfo(fname, '\\')
        version = "V%d.%d.%d" % (fileInfo['FileVersionMS'] / 65536,
                                 fileInfo['FileVersionMS'] % 65536,
                                 fileInfo['FileVersionLS'] / 65536)
    except Exception:
        print("Cannot get version number of", fname)
    return version
Пример #24
0
def get_editor_version_number(filename):
    try:
        info = GetFileVersionInfo(filename, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
    except Exception, e:
        raise Exception("{0}: could not get file version info: {1}".format(
            filename, e.strerror))
Пример #25
0
def _get_version_number(filename):
    from win32api import GetFileVersionInfo, LOWORD, HIWORD
    try:
        info = GetFileVersionInfo(str(filename), "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
    except:
        return 0, 0, 0, 0
Пример #26
0
def get_version_number():
    Path = os.path.abspath('.')    
    StaxRip = os.path.join(Path,"StaxRip.exe")
    from win32api import GetFileVersionInfo, LOWORD, HIWORD
    info = GetFileVersionInfo (StaxRip, "\\")
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    Version = "{}.{}.{}.{}".format(HIWORD (ms), LOWORD (ms), HIWORD (ls), LOWORD (ls))
    return(Version)    
Пример #27
0
 def get_current_version(self):
     try:
         info = GetFileVersionInfo("main.exe", "\\")
         ms = info['FileVersionMS']
         ls = info['FileVersionLS']
         file_version = HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
         return ".".join([str(i) for i in file_version])
     except:
         return '0.0.0.0'
Пример #28
0
    def p_GetFileVersion(self,fname): #Reviewed
        from win32api import GetFileVersionInfo, LOWORD, HIWORD
        try:
            info = GetFileVersionInfo(fname, "\\")  # GetFileVersionInfo(Filename, SubBlock) SubBloc= \\ for VS_FIXEDFILEINFO
            ms = info['FileVersionMS']
            ls = info['FileVersionLS']
            return [str(HIWORD(ms)),str(LOWORD(ms)),str(HIWORD(ls)),str(LOWORD(ls))]

        except Exception as e:
            return False,e
Пример #29
0
def get_version_number(filename):
    #modified from
    # https://stackoverflow.com/questions/580924/python-windows-file-version-attribute
    try:
        info = GetFileVersionInfo (filename, "\\")
        ms = info['FileVersionMS']
        ls = info['FileVersionLS']
        return "{0}.{1}.{2}.{3}".format(HIWORD (ms), LOWORD (ms), HIWORD (ls), LOWORD (ls))
    except:
        return "0.0.0.0"
Пример #30
0
 def get_version_number(filename):
     """Return the version of a Windows DLL or EXE file
     """
     try:
         info = GetFileVersionInfo(filename, "\\")
         ms = info['FileVersionMS']
         ls = info['FileVersionLS']
         return HIWORD(ms), LOWORD(ms), HIWORD(ls), LOWORD(ls)
     except:
         return None