[python-win32] how to access SHOpenFolderAndSelectItems() by ctypes

iMath 2281570025 at qq.com
Fri Dec 13 13:02:19 CET 2013


I want to build a cross-platform application ,I used a windows API called SHOpenFolderAndSelectItems(). Although I found example called it by pywin32,but pywin32 is not available on Linux , I don't want to call a Windows API on linux,just don't want to make another code version for Linux,so I wonder how to access it by ctypes? yes,this API cannot be called on Linux ,I just want to make it silent in the code so that I can freeze the Python scripts into executables by cx_Freeze without pywin32 module-missing error happend .
from win32com.shell import shell, shellcon import os def launch_file_explorer(path, files):      '''      Given a absolute base path and names of its children (no path), open      up one File Explorer window with all the child files selected      '''      folder_pidl = shell.SHILCreateFromPath(path,0)[0]      desktop = shell.SHGetDesktopFolder()      shell_folder = desktop.BindToObject(folder_pidl, None,shell.IID_IShellFolder)      name_to_item_mapping = dict([(desktop.GetDisplayNameOf(item, shellcon.SHGDN_FORPARSING|shellcon.SHGDN_INFOLDER), item) for item in shell_folder])      print(name_to_item_mapping)      to_show = []      for file in files:          if file in name_to_item_mapping:              to_show.append(name_to_item_mapping[file])          # else:              # raise Exception('File: "%s" not found in "%s"' % (file, path))      shell.SHOpenFolderAndSelectItems(folder_pidl, to_show, 0) p=r'E:\aa' print(os.listdir(p)) launch_file_explorer(p, os.listdir(p))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20131213/799f5502/attachment-0001.html>


More information about the python-win32 mailing list