BuliCommander

Hi

I’m currently over flooded by diapers & others babies things, no time for anything even no time to sleep :face_with_spiral_eyes:

But I took a quick look, it seems on my Windows installation there’s an old WinRAR which wasn’t properly unsinstalled (still present in registry but no executables…) then I didn’t got the error.

If WinRAR is completely removed, the error occurs; same problem with 7Zip

Quick workaround, I’ll try to manage a fix release asap…

  1. Ensure to have last plugin version (Release v0.9.2b · Grum999/BuliCommander · GitHub)

  2. In file C:\Users\Admin\AppData\Roaming\krita\pykrita\bulicommander\pktk\modules\uncompress.py (you really use ‘Admin’ user ???) from line 40 replace methods getUnrar() and get7z() with the following code:

    def getUnrar():
        """return unrar executable full path name as string, None if not found"""
        registryKey = None
        value = None
        try:
            # When installed, WinRAR create this registry key where value "path" can be found
            registryKey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe", 0, winreg.KEY_READ)
            if registryKey:
                value, regtype = winreg.QueryValueEx(registryKey, "Path")
        except:
            value=None

        if registryKey:
            winreg.CloseKey(registryKey)

        if not value is None:
            value=os.path.join(value, "unrar.exe")
            if os.path.isfile(value):
                return value
        return None

    def get7z():
        """return 7z executable full path name as string, None if not found"""
        registryKey = None
        value = None
        try:
            # When installed, WinRAR create this registry key where value "path" can be found
            registryKey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\App Paths\7zFM.exe", 0, winreg.KEY_READ)
            if registryKey:
                value, regtype = winreg.QueryValueEx(registryKey, "Path")
        except:
            value=None

        if registryKey:
            winreg.CloseKey(registryKey)

        if not value is None:
            value=os.path.join(value, "7z.exe")
            if os.path.isfile(value):
                return value
        return None

Take care about spaces!!
(the indentation in provided code here are normally OK)

  1. Code should like this at the end:

  2. Then once file is modified, start Krita, and plugin should be ok

Grum999

3 Likes