Seite 1 von 1

.lnk Dateien öffnen

Verfasst: Sonntag 3. August 2008, 20:41
von nemomuk
Hallo,

ich versuche gerade mit Python eine .lnk Datei unter Windows zu öffnen...
Ich bekomme zwar einen String zurück, aber leider irgendiwe im falschen Format. Wie kann ich .lnk Dateien öffnen und herausfinden, wohin sie verweisen?

Danke!

Verfasst: Sonntag 3. August 2008, 22:33
von HWK

Verfasst: Montag 4. August 2008, 09:27
von nemomuk

Code: Alles auswählen

        from win32com.shell import shell
        import pythoncom
        link_paths = []
        regexp = re.compile('.*\.lnk$', re.IGNORECASE)
        for root, dirs, files in os.walk('C:\\'):
                for file in files:
                    if regexp.match(file) != None:
                        link_path = os.path.join(root, file)
                        link_paths.append(link_path)
                        
        shell_link = pythoncom.CoCreateInstance(
            shell.CLSID_ShellLink,
            None,
            pythoncom.CLSCTX_INPROC_SERVER,
            shell.IID_IShellLink
        )
        link = shell_link.QueryInterface(pythoncom.IID_IPersistFile)
        for link_path in link_paths:
            link.Load(link_path)
            shell_link.Resolve(0, 0)
            file_link = shell_link.GetPath(shell.SLGP_UNCPRIORITY)[0]
            if os.path.exists(file_link) != True and file_link != '':
                logging.info(link_path)
                logging.info(file_link)
so ich habe nun ein kleines Skript erstellt, welches mir ausgibt, welche Verknüpfungen auf ein Ziel verweisen, das es nicht mehr gibt.
Soweit funtkioniert das auch schon. Nur leider wird jedes mal ein Windows Fenster geöffnet, welches auch geöffnet wird, wenn man auf eine solche Verknüpfung klickt (Durchsuchen,...)
Irgndwie öffnet er also diese Datei wirklich - wie kann ich das verhindern?

Vielen Dank für eure Hilfe!

Verfasst: Montag 4. August 2008, 18:17
von nemomuk
Problem gelöst...

ohne das Resolve klappt es genauso, nur ohne das Fenster...