<div><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; line-height: 18px;">I want to build a cross-platform application ,I used a windows API called <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb762232%28v=vs.85%29.aspx" rel="nofollow" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent; color: rgb(74, 107, 130); text-decoration: none; cursor: pointer;">SHOpenFolderAndSelectItems()</a>. 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 .</p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">formatted code here</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">http://stackoverflow.com/questions/20565401/how-to-access-shopenfolderandselectitems-by-ctypes</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;"><br></span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">from win32com.shell import shell, shellcon</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">import os</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">def launch_file_explorer(path, files):</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     '''</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     Given a absolute base path and names of its children (no path), open</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     up one File Explorer window with all the child files selected</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     '''</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     folder_pidl = shell.SHILCreateFromPath(path,0)[0]</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     desktop = shell.SHGetDesktopFolder()</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     shell_folder = desktop.BindToObject(folder_pidl, None,shell.IID_IShellFolder)</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     name_to_item_mapping = dict([(desktop.GetDisplayNameOf(item, shellcon.SHGDN_FORPARSING|shellcon.SHGDN_INFOLDER), item) for item in shell_folder])</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     print(name_to_item_mapping)</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     to_show = []</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     for file in files:</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">         if file in name_to_item_mapping:</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">             to_show.append(name_to_item_mapping[file])</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">         # else:</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">             # raise Exception('File: "%s" not found in "%s"' % (file, path))</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;"><br></span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;"><br></span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">     shell.SHOpenFolderAndSelectItems(folder_pidl, to_show, 0)</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;"><br></span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;"><br></span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;"><br></span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">p=r'E:\aa'</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">print(os.listdir(p))</span></font></p><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; vertical-align: baseline; clear: both;"><font face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="line-height: 18px;">launch_file_explorer(p, os.listdir(p))</span></font></p></div><div><br></div>