Re: [python-win32] Object type puzzle
On 1/7/23 7:11 AM, Bob Kline wrote: As a very minor side note, just so you know, it looks like there's a bug in the mailing list software. I went back to the original of my previous post, and the ">" character which appears at the beginning of the paragraph beginning "From what I can tell ..." was not in the message that I sent, but was added by the mailing list, making it look as if that paragraph might have been part of the quoted message to which I was replying, instead of what it actually was (part of my own reply). Ah, you youngsters who don't remember the glory days. That's not a bug, it's a feature. In the early days, mail messages were stored in a standard format called "mbox". This was a simple, plain text format that just had the text of every message. The separator between messages was a line that read "From Sat Jan 07 11:14:59 2023". So, any line in a message that started with the word "From" needed to be escaped to prevent it from being read as a separator. The traditional escapement was to change it to "> From". -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] List all fonts filename
Moi15 Moi wrote: My goal is to list all the filename of the font installed without listing the file in those 2 folders: - C:\Windows\Fonts - %userprofile%\AppData\Local\Microsoft\Windows\Fonts I found a way to do it directwrite: https://gist.github.com/JeremieBergeron/dc04bcb747c94a82a10020a990ba884a But, from what I can see, pywin32 doesn't support directwrite api. It's just COM, which pywin32 does perfectly well. The advantage of COM is that you don't need a custom interface. Did you look at the pyglet code that does this? But, I don't know how I get the font path (ex: C:\Users\Admin\AppData\Local\Microsoft\Windows\Fonts\Jester.ttf) with GDI The easier way would be to read the registry. "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" is where Windows stores the registered fonts. The key is the font name, the value is the file name. If there is a file name without a path, it defaults to C:\Windows\Fonts. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] List all fonts filename
On 1/3/23 6:13 PM, moi15moismokerlolilol wrote: I don't wanna list the family name. Then what do you want? Do you understand how Windows arranges fonts? "Arial" is a font family. "Tahoma" is a font family. You can enumerate all of the fonts using the WIn32 API, and everything in the Win32 API can be accessed through pywin32. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] List all fonts filename
On 12/23/22 6:29 AM, Moi15 Moi wrote: Is it possible to list all the fonts filename with pywin32? From what I can see, it is possible with the GetFontData <https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-getfontdata> from GDI. GetFontData is certainly available in pywin32, as are most Win32 APIs. However, it only returns information about one font at a time -- the font that is currently selected into that DC. You can use EnumFontFamilies or EnumFontFamiliesEx, available in win32gui. http://timgolden.me.uk/pywin32-docs/win32gui__EnumFontFamilies_meth.html https://stackoverflow.com/questions/5760594/pywin32-enumfontfamilies-breaks-python -- Tim Roberts,t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Trouble finding MSOLAP provider with adodbapi
savoy wrote: I've downloaded the most up-to-date MSOLAP library from Microsoft's site (16.0.56.19) and installed it. The location of the library is then saved as C:\\Program Files (x86)\Microsoft Analysis Services\AS OLEDB\140\msolap.dll. That's a 32-bit DLL. Your ODBC driver needs to match your Python bittedness, and most of us run 64-bit Python. Is there a 64-bit version of the connector? -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Pywin32 without the interface
On 12/2/22 12:10 PM, Tim Roberts wrote: On 12/2/22 4:25 AM, QMUL_EECS DVS wrote: Is it related to the fact that I can’t open Visio/ Word windows? If so, is there a way for me to avoid this error? The first and most obvious question is, do you actually have Office and Visio installed on your AWS instance? How did you do that without a UI? Launching Word like this usually does not bring up a UI window unless you specifically set "xxx.Visible = True", so I'm guessing there's something else going on. My apologies for the multiple replies. Either my connection or my mail server had a "burp", and it told me it had not sent anything when it clearly had. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Pywin32 without the interface
On 12/2/22 4:25 AM, QMUL_EECS DVS wrote: Thanks for replying. Apologies for my vague question, let me see if I can rephrase: I want to run pywin inside an aws instance, which only allows for command line interface. Currently I can use pywin in my local machine, but it needs to open Visio and Word windows. However, in the aws instance it throws an error: ‘ Traceback (most recent call last): File "C:\Program Files\Python37\lib\site-packages\win32com\client\dynamic.py", line 86, in _GetGoodDispatch IDispatch = pythoncom.connect(IDispatch) pywintypes.com_error: (-2147221021, 'Operation unavailable', None, None) ... File "C:\Program Files\Python37\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch IDispatch, None, clsctx, pythoncom.IID_IDispatch pywintypes.com_error: (-2147024891, 'Access is denied.', None, None)’ Is it related to the fact that I can’t open Visio/ Word windows? If so, is there a way for me to avoid this error? The first and most obvious question is, do you actually have Office and Visio installed on your AWS instance? How did you do that without a UI? Launching Word like this usually does not bring up a UI window unless you specifically set "xxx.Visible = True", so I'm guessing there's something else going on. -- Tim Roberts,t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Pywin32 without the interface
On 12/2/22 4:25 AM, QMUL_EECS DVS wrote: Thanks for replying. Apologies for my vague question, let me see if I can rephrase: I want to run pywin inside an aws instance, which only allows for command line interface. Currently I can use pywin in my local machine, but it needs to open Visio and Word windows. However, in the aws instance it throws an error: ‘ Traceback (most recent call last): File "C:\Program Files\Python37\lib\site-packages\win32com\client\dynamic.py", line 86, in _GetGoodDispatch IDispatch = pythoncom.connect(IDispatch) pywintypes.com_error: (-2147221021, 'Operation unavailable', None, None) ... File "C:\Program Files\Python37\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch IDispatch, None, clsctx, pythoncom.IID_IDispatch pywintypes.com_error: (-2147024891, 'Access is denied.', None, None)’ Is it related to the fact that I can’t open Visio/ Word windows? If so, is there a way for me to avoid this error? The first and most obvious question is, do you actually have Office and Visio installed on your AWS instance? How did you do that without a UI? Launching Word like this usually does not bring up a UI window unless you specifically set "xxx.Visible = True", so I'm guessing there's something else going on. -- Tim Roberts,t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Pywin32 without the interface
On 12/2/22 4:25 AM, QMUL_EECS DVS wrote: Thanks for replying. Apologies for my vague question, let me see if I can rephrase: I want to run pywin inside an aws instance, which only allows for command line interface. Currently I can use pywin in my local machine, but it needs to open Visio and Word windows. However, in the aws instance it throws an error: ‘ Traceback (most recent call last): File "C:\Program Files\Python37\lib\site-packages\win32com\client\dynamic.py", line 86, in _GetGoodDispatch IDispatch = pythoncom.connect(IDispatch) pywintypes.com_error: (-2147221021, 'Operation unavailable', None, None) ... File "C:\Program Files\Python37\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch IDispatch, None, clsctx, pythoncom.IID_IDispatch pywintypes.com_error: (-2147024891, 'Access is denied.', None, None)’ Is it related to the fact that I can’t open Visio/ Word windows? If so, is there a way for me to avoid this error? The first and most obvious question is, do you actually have Office and Visio installed on your AWS instance? How did you do that without a UI? Launching Word like this usually does not bring up a UI window unless you specifically set "xxx.Visible = True", so I'm guessing there's something else going on. -- Tim Roberts,t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Pywin32 without the interface
On 11/30/22 8:16 AM, QMUL_EECS DVS wrote: I hope you are well. I’m trying to use pywin32 on my local server, is it possible to run it without the Visio/ Word interface open? Since I can only see the command line The question doesn't make much sense. Are you saying that you want to automate Visio and Word through pythoncom, but you don't want the application window to be visible? That can be done. Please clarify. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Looking for PyWin32 for Python 2.3.1
Paul Newton wrote: Thanks for your reply Tim and my apologies - I did not mean to be rude and I take your point. I made an earlier mistake, my Python version is 2.1.3 not 2.3.1 but I am looking at doing an install using pywin32-200.zip. You don't really want to build these from source. It does look like that file is missing, but even if it weren't, that is a project file for Visual Studio 2003. You almost certainly do not have a copy of Visual Studio 2003 hanging around, and they typically don't build with newer compilers. Just use the executable installer. The DSP is present in the 201.1 zip. I don't know whether that builds for Python 2.1 or not. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Looking for PyWin32 for Python 2.3.1
Paul Newton wrote: Please don't ask why I would want to install such an old version of Python, but I have Python 2.3.1 installed anyway. Now I am looking for the corresponding PyWin32 install files. I believe they are available here https://sourceforge.net/projects/pywin32/files/pywin32/ or here https://www.lfd.uci.edu/~gohlke/pythonlibs/ but I cannot fathom exactly what I need to download or what to do with the download. If you click on version 200, for example, you'll see there is a file "pywin32-200.win32-py2.3.exe". Download it and execute it. It will install itself in the proper location, which is stored in the registry. And, as a rule, it's considered rude in a list like this to say "please don't ask why". It may not be the case for you, but very often we get very specific off-the-wall questions that arose only because the asker took a wrong turn several steps ago. By learning more about the "why", we can offer a much better overall experience. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Windows printing with the use of Device Context
On 11/7/22 5:25 PM, Neil Kenig wrote: You may want to try https://pypi.org/project/PyMuPDF/. It's relatively easy to create a blank PDF and then insert text of a given font and size at precise locations on the page. PDF files use points (1/72nd of an inch) for both font sizes and location on a page and will print properly regardless of the printer's resolution (assuming the stock size is the same, e.g. US Letter or A4). You can then print the PDF and if the preprinted stock is loaded into the printer, you should get the desired result. This is excellent advice, and it has the huge advantage of being cross-platform. The Windows printing API is, in my expert opinion, peculiar and finicky. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Windows printing with the use of Device Context
Antoine FINET wrote: I would like to print information at the correct coordinates on a pre printed form. If I understood correctly my readings, the coordinates given to a "TextOut" Printer Device Context depend on the resolution of the printer. Am I right? Yes, but the exact same thing is true of on-screen windows. You can use GetDeviceCaps(hdc, LOGPIXELSX) to get the pixels per inch resolution. There's also a LOGPIXELSY, but unless you have a 40-year-old graphics adapter, they are the same. The DeviceCapabilities API returns a DEVMODE structure that has detailed information about the printer. I don't have another printer to test but my underlying question is : does the coordinates depend on the printer? Absolutely, yes. Modern printers can be 300, 600, or 1200 dots per inch. Label printers can use even wilder values. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Unpredictable behavior of pywin32 on new computer
On 10/11/22 12:23, Zach York wrote: Interesting, thanks for the quick response. So would a quick way to test this out be to change the scaling to 100% from whatever it's set at? That would be an interesting step. Another thing to try is to call the APIs to make your app "high-DPI aware". You can do that for one process using this code: ``` from ctypes import windll user32 = windll.user32 user32.SetProcessDPIAware() ``` Or you can use a registry hack: https://stackoverflow.com/questions/43401709/marking-your-python-program-as-high-dpi-aware-seamlessly-windows -- Tim Roberts,t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Unpredictable behavior of pywin32 on new computer
Zach York wrote: I have recently upgraded my computer and after upgrading and installing pywin32, I have found the behavior to be extremely unpredictable and in a lot of cases, just wrong. ... My scripts are mostly trying to do some background clicking using PostMessage/SendMessage and window resizing/positioning using MoveWindow. I used to be able to use SendMessage reliably before this computer upgrade, but now it seems like I need a combination of PostMessage + SendMessage to see a click at all). For MoveWindow, the results are entirely unpredictable (window isn't moved at all, window resized and moved to the wrong location, etc). I assume this has to somehow be with my setup and not pywin32, but I am lost on what might be causing this weird behavior. Any insight would be greatly appreciated! If you upgraded your display as well, the problem is probably the display scaling. Unless you mark your application has being "high DPI aware", Windows will lie to you about pixel locations. If your display is 3840x2160, but you have scaling set to 200%, your "non-aware" application will be told that the display is 1920x1080, and the pixel coordinates you are sending to other applications will be wrong. Go read about "high DPI aware" applications. It's a mess. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Hi
On 7/6/22 10:40, osama saadi via python-win32 wrote: I am using colab and try to install pywin32. I used the following code (!pip install pywin32) but I got error. Please can you help me how to install it? Colab runs on Linux machines. PyWin32 does not run on Linux. What APIs were you hoping to use? -- Tim Roberts,t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Need a value from pywin32
On 6/21/22 13:39, Steven Manross wrote: I was intrigued by this and I would like to get it to work, but I cannot... I know I'm doing something wrong, but don't know what. I will leave this for the archives, and maybe it will help someone else some day. ... def get_wts_info(session_id): ''' Get WTS Info ''' # This only tries to work on the local server currently but I get an access violation running the WinStationQueryInformationW line Buf = ctypes.POINTER(WinStationInformation)() BufLen = 260 hWinSta = ctypes.windll.LoadLibrary("WINSTA.DLL") if hWinSta: winsta_handle = hWinSta._handle print(f'winsta_handle = {winsta_handle}') QueryInfoHandle = ctypes.windll.kernel32.GetProcAddress(ctypes.c_ulonglong(winsta_handle), b"WinStationQueryInformationW") # This handle is 0... possibly because of the numeric conversion from the winsta_handle to a ctypes.c_ulonglong ??? unsure No, 0 is the error return that means the name was not found. You shouldn't need to use LoadLibrary and GetProcAddress. ctypes does that for you automatically. winsta = ctypes.WinDLL('winsta.dll') winsta.WinStationQueryInformationW( 0, session_id, 8, ctypes.byref(Buf), BufLen, ctypes.byref(RtnLen)) If you have Visual Studio, you can try doing "link /dump /exports \windows\system32\winsta.dll" to make sure it has that entry point. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Need a value from pywin32
Craig R. Matthews wrote: I have a need to determine the "IDLE TIME" as provided by the Windows Query program. Sample output: C:\>query user /server:CTX202201 USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME administrator rdp-tcp#67 2 Active 1:38 6/15/2022 10:48 AM I can't find the above "IDLE TIME" anywhere in pywin32 "Python for Win32 Extensions". I need this time value, and would rather keep all the code in python without having to resort to something like subprocess to encapsulate the Windows Query program. This is part of Windows Terminal Services. The API to fetch the idle time is undocumented and unsupported, but you can find the information here: https://groups.google.com/g/microsoft.public.win32.programmer.kernel/c/xt2G599tJuQ?hl=en#91fc4e79a5d6c495 Because it is undocumented, it might be better to parse the output of "query user". -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Package giving Error while deploying to windows container
On 5/19/22 05:40, Vernon D. Cole wrote: Django also runs on Windows, and I have operated it there for testing purposes, but it is most at home in a Linux environment. I have never (personally) run it in a container. I prefer the better performance and ease of use when installed directly on the server. Containers may deploy more quickly, but you pay a penalty for the rest of the life of the system. I cannot imagine why one would want to run * anything * in a Windows container. That is adding complexity on top of difficulty. My suggestion is to eliminate Windows from your thinking and run django directly on Linux. However, this is not very good advice for an application that is invoking Microsoft Excel to do its work. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Package giving Error while deploying to windows container
Ankit Sharma wrote: The issue with Pywin32 library is , it is getting deployed successfully to window container, However, once we try to use Export file function from the library , we get following error: ... File "C:\app\backend\manage_products\products.py", line 17751, in run_excel excel = win32.gencache.EnsureDispatch('Excel.Application') ... Exception Value: (-2147221005, 'Invalid class string', None, None) This is the log that we can not rectify even after updating our python version and changing container from Linux based environment to Windows Based environment. Can you please help us out in figuring this issue out! or can help us in suggesting if we can deploy this package in a Linux container. Anything works. You are trying to run the Excel application. To do that, you have to have Excel installed on the machine where you're running. And, of course, nothing that uses Win32Com can ever work on Linux. If you're trying to manipulate Excel files, there are many cross-platform libraries to do that. If you really need to RUN Excel, then it has to be on Windows, and you have to have Excel installed. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Using win32com.shell to browse iphone photos | problem with pywebview
Bastian Schnitzler wrote: I want to use win32com to transfer photos from my iphone to my computer (I found a code snippet here, that worked for me: https://gitlab.com/lassi.niemisto/iphone-photo-dump/). In addition I would like to use pywebview to build a GUI. ... It is the same, except that the folder for Apple iPhone is missing on the second go. Why is the shell behaving differently here? Is this a bug in win32com or is pywebview influencing it somehow? What can I do to make it work? Have you tried configuring your app to use a local web server? If you don't run your own server, then your pywebview app runs inside the browser's process, and that is a highly protected sandbox. That's probably why you don't see external devices. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] zmq under win32service
momc...@bojinov.info wrote: server: import zmq, json context = zmq.Context() socket = context.socket(zmq.REP) socket.bind('ipc://cache/mm') while True: message = socket.recv_json() print(message) socket.send_json(json.dumps({"data" : "BLA BLA"})) Once I start the service though I can’t send/receive content Both service and cmd/client run under the same account (not SYSTEM) Where is the service code? I was wondering if I can even use while True without the spawning a separate thread for it ? No. Just like a Windows GUI app, a Windows service has a main message loop that has to remain in control, so it can receive and dispatch messages from the service manager. The system sends "are you awake?" messages periodically to make sure you're still alive. If you aren't getting back to the main loop, then you will be terminated. So, if you're using the sample you mentioned, the service "def main(self):" will need to launch a thread to do your listening. You will also need to have your thread check the "stop_request" flag, so you can cleanly exit when the service is terminated. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] WM_MOUSEWHEEL It only works in one window.
nakarin samon wrote: > > Is there any python that works like pywin32 SendMessage PostMessage. doesn't move the mouse? There are a couple of problems here. SendMessage and PostMessage are not Python things. Those are fundamental Win32 APIs. pywin32 just gives you access to them. Second, those routines do not, of course, move the mouse. > I want to move the mouse scroll or click the mouse without moving the mouse, I have used WM_MOUSEWHEEL. but not successful. It only works in one window. Will there > be another one or it only works on the left side of the screen I tried moving the window to another section but it didn't work when I moved it back to the same place > in the top left it works. I can't tell what you're asking or what you're expecting, and your video no longer works. Mouse messages are delivered to the window with focus. Background windows do not get them unless they have captured the mouse. So, please tells us what you are trying to achieve (not how you are trying to do it), and perhaps someone can advise you. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Run solidworks macro from python.
Sanaa Mouzahir wrote: Apologies for the late reply, I had to go through a lot of documentation regarding SolidWorks itself. Unfortunately, the available documentation that I find is regarding creating a SW COM object, however, nothing about running a macro already written in SolidWorks VB. More specifically, when I look up 'swbindings.py' I do not get any output, and if I try to import it, I get the error message 'no module named swbindings'. Anything you can do from VBA can be done from Python, and it's usually a one-for-one translation. Somewhere in the SolidWorks object model documentation, there has to be a command to run a named VBA script. That's what you need to find. The key is that this is not Python related. You're just controlling their COM server, so you need to find the right method in the right interface in their object model. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Run solidworks macro from python.
On Feb 10, 2022, at 9:39 AM, Sanaa Mouzahir wrote: > > Or maybe After importing the packages I can just use the same command as the > VBA? I know that for excel the function Application.run(macroname) works, but > not for solidworks.. Right, because every application defines their own object model. There’s no “general rule” that applies to all COM servers. You HAVE to go through the documentation for THAT product, or at least look at some examples. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Run solidworks macro from python.
Sanaa Mouzahir wrote: Hello. I have started a project in which I have to link both solidworks and python. I want to use Pywin32 to run a macro from python. here is my code: app=win32com.client.Dispatch("SldWorks.Application") app.OpenDoc("C:/Users/sm5126/Downloads/Python/Python/Part1.SLDPRT", 1) app.Run("C:/Users/sm5126/Downloads/Python/Python/Part1.SLDPRT!ForceRebuild.swp") I basically want to use the same run function as for excel. But it does not work. Is there a way to run a macro from python using Pywin32? What do you mean by "it does not work"? Do you get an error? Does it crash? Have you read the documentation for the SolidWorks API? As I read the documentation, the API for running a script is called RunScript, not Run. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] pywintypes.com_error with adodbapi
On 1/14/22 02:25, KANAGARAJAH, Sanch (UNIVERSITY COLLEGE LONDON HOSPITALS NHS FOUNDATION TRUST) via python-win32 wrote: I am wondering if anyone is able to help me with the attached error? when I tried to connect to a SQL server with adodbapi using a Python script. What kind of database were you connecting to? The error is saying there was no driver for that database. Note that if you are running a 64-bit Python, you must have a 64-bit ODBC driver for your database. -- Tim Roberts,t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] pywin can not access excel file
On 12/12/21 12:32 AM, Tamara Abugharbieh wrote: We are using winpy32 to automate excel applications using python. The python script will be used by users with no administrator privileges, and in this case, we are getting the following error: pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', \"Microsoft Excel cannot access the file 'C:AppBackendpublicMSB_202111SYB_10_7_V1.xlsx'. There are several possible reasons: The file name or path does not exist. The file is being used by another program. The workbook you are trying to save has the same name as a currently open workbook.\", 'xlmain11.chm', 0, -2146827284) Have you checked the permissions (with Explorer or with icacls) to see if the files are readable by "All Users"? Can one of those users open the file from Excel, without using your script? -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Outlook Add-In Demo Question ... A runtime error occurred during the loading of the com add-in
Steven Manross wrote: Correct me if I am wrong... but Office 2010+ comes in 64-bit and 32-bit versions. I know that 2019 definitely does. Both are available, but until Office 2019 the 32-bit version was the default, so that's what virtually everyone has. Providing he matches his Python architecture (32 or 64) to his Office application architecture (32 or 64), it should work unless that code has issues working in 64-bit mode? I haven’t tried this myself in this particular case, as I've always installed 32-bit Office apps. Right. Its possible that my Office 2019 install doesn’t have the correct components or APPIDs or CLSIDs installed (even if I matched the python and office architectures) as I searched for them and couldn’t find them in the native x64 and x86 registry subkeys: * HKEY_CLASSES_ROOT * HKLM\Software\Classes * OR HKLM\Software\Wow6432Node\Classes Is this the desktop versions or the Office 365 versions? There are differences. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Outlook Add-In Demo Question ... A runtime error occurred during the loading of the com add-in
Vernon D. Cole wrote: Most likely, you are running a 64 bit version of Python. Due to Windows restrictions, only 32 bit programs can talk to each other. That comment demands clarification, because as stated it is quite misleading. The issue here is that a 32-bit application can only load 32-bit DLLs. Outlook 2016 is a 32-bit application, so when it as a COM client tries to load an in-process COM server (that is, his add-in), the COM server DLL must also be 32-bit. There are many, many ways that 32-bit and 64-bit programs can talk to each other. This is a very specific instance. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Clipboard Documentation
On 11/30/21 7:04 AM, gw1500 via python-win32 wrote: Thanks for the reply. I read about that but was hoping to use pywin32. I can see now the folly of that decision. I have a working minimal test but am looking for something a bit more automated. I bring my app window to the top using pywin32 and a line I need is already highlighted. I can ctrl-c from the keyboard and pyperclip works just fine. However, since the line is already highlighted is there a way to get it without user interaction (ctrl-c)? I don't know how much trouble you want to go to. If you can get the window handle of the text box that has your text, you can send a WM_COPY message to it. With the standard controls, that tells it to do a "copy" operation with the currently selected text. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Clipboard Documentation
Dennis Putnam wrote: I'm using pywin32 and it is my understanding it can also be used for copying text from an app to the clipboard. I have been able to find scant documentation for that. Can someone send me a link to some definitive documentation? TIA. The easy way is to use the well-respected `pyperclip` module. You can install it with pip. The Win32 clipboard APIs are a pain to work with, and of course don't work at all on other systems. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] mail Sensitivity doesn't work as expected(can not set the sensitivity label)
Victor Liu wrote: Gratitude to all the work of the library. I am trying to use it to send out some emails, but I have encountered this issue which might be a bug. It can be represented by this minimum working example. It might perhaps be a bug, but it is not a bug in Python. All you're doing is controlling the Outlook object model. ... mail.Sensitivity = 1 mail.Send() This works well expect the |mail.sensitivity =1| part, so it pops up a window to set the sensitivity label(Bear in mind, not all outlook has set up this restriction). ... <https://user-images.githubusercontent.com/7195126/141965903-30c23072-d41d-403a-a11c-69e6e98e9c60.png> This makes the process is impossible to automate. My understanding is |mail.sensitivity = 1| is for that Azure label. Please let me know if I missed something. That is certainly not how it is defined. MailItem.Sensitivity is an enumeration of type OISensitivity, where 0=normal, 1=personal, 2=private, and 3=confidential. Here's the doc page: https://docs.microsoft.com/en-us/office/vba/api/outlook.olsensitivity There is no additional meaning assigned to it. It's possible your copy of Outlook might have additional add-ons that change this behavior, but there is nothing you can do about that with COM. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Issue with PythonCOM - Application.Run does not work for Access.Application
Christoph J. Dorner wrote: I need to call Office / VBA applications form a running Python script. While calling VBA from Python using Application.Run works with EXCEL, it does not work with ACCESS. What I do: I link to the Office application via the win32com.client dispatch mechanism as usual and I can see the application object in the Python debugger. If I do an excelapp.Run('xxx") everything is fine. If I do an accessapp.Run('xxx") it throws an error -2147352562 which win32api.FormatMessage states is an issue with the number of parameters. But that cannot be the case as the UDF has no parameter and I do not pass any (additional) parameter. Curious. Both the Excel "Application.Run" and Access "Application.Run" methods are defined the same way, with 30 "optional" parameters. Have you experimented with specifying a dummy parameter to see if that makes a difference? Have you tried using "win32com.client.gencache.EnsureDispatch" instead of simple "Dispatch"? That way, it generates and caches a wrapper file. It might be possible to peek in the generated file to see if the wrappers look any different. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] pywintypes.error: (5, 'OpenEventLogW', 'Access is denied.')
Ruggero Paolo Basile wrote: Good morning i'am try to connect to remote host and get the eventlog from windows , but in the module i can't find a value for authentication. Have you some news? this is my error "pywintypes.error: (5, 'OpenEventLogW', 'Access is denied.')" To do that operation, your username has to have permission on that remote machine. Are you using a domain? Are you logged in as a domain administrator? This article talks about it, but since Windows security is a vast, dark, confusing, twisted mess, I'm not sure you'll be able to make it work. https://docs.microsoft.com/en-us/archive/blogs/janelewis/giving-non-administrators-permission-to-read-event-logs-windows-2003-and-windows-2008 If you bring up the Event Viewer application ("eventvwr"), under Action, there's a "Connect to Another Computer" option. Does that work for you? -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] windows images on clipboard
Mriswithe wrote: I was looking at making a little helper app for Windows that will take an image on your clipboard and ensure it is under 8MB for posting to discord, and if it isn't, use Pillow to resize it until it is the right size. I can use Pillow's ImageGrab.grabclipboard() to get the image off the clipboard, but I am a little confused about writing it back. I have been back and forth between the pywin32 source and the windows docs for the windows C API, but I don't have any previous experience or context to know what some pieces are intended to do. I found an example to write to it from StackOverflow (https://stackoverflow.com/questions/34322132/copy-image-to-clipboard <https://stackoverflow.com/questions/34322132/copy-image-to-clipboard>), but I was wanting to dig a little deeper to see what formats other than BMP I could use to put on the clipboard. My ignorance of C++ and the Windows APIs and hell the Python C API is really biting me here. You can't. You have to write it as a DIB (Device Independent Bitmap), which is the format in a .BMP file. The Windows clipboard was designed in roughly 1986, before GIF, before JPEG and way, way before PNG. The clipboard is designed for universal interchange, so it really does need to spec the lowest common denominator. If they allowed PNGs, then all of the graphics application in the world would have to be modified to decode PNG data. So, to make your app work, save the result as a BMP. Is there a bit of an idiots example guide for how to say, put a PNG on the clipboard or a JPG? Some example code? There is a ton of useful info in the pywin32 repo, but I haven't found anything that has made this click for me. There is no idiots guide, because it cannot be done. Well, technically speaking you can put arbitrary binary data into the clipboard, but other graphics applications will not be able to read it. When they look for image data, they look for format CF_DIB, and that means a .BMP. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Issue with monitor off
anteqqq1 wrote: Hello there, I have a question concerning Win32 usage. The idea is that after operations in python i want to turn my monitor off but when i use Win32 command win32gui.SendMessage(win 32con.HWND_BROADCAST, win32con.WM_SYSCOMMAND, win32con.SC_MONITORPOWER , 2) the monitor not only goin off state but the machine is also going sleep mode . My question is : Is there any way to prevent machine going to sleep ? The only thing i need is to turn monitor off :) The operating system can do this for you automatically, in the "Power & Sleep" control panel page. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Using win32gui.FindWindow() results in black or white screen
CodingMan125 wrote: Dear, List Members using the FindWindow function from win32gui to find the window handle of a certain window through window name to enable video capture of certain window results in a black screen. Although trying the same code without a window handle to default it to capturing the whole screen results in a successful video capture, the same code however results in a black or white screen when trying to capture a specific window with window handle. How can I solve this? In general, you can't. From your description and from the comments in the code, I'm assuming you're trying to capture some kind of multimedia stream -- a movie playback or a camera live view. In that case, the video stream is not actually contained in the application window. Instead, the video is rendered in its native format (usually a YUV format) into an offscreen region. That offscreen region is then used as a texture surface which the GPU's 3D engine renders onto the visible screen. The application window remains a solid color, which is used as a chromakey (like a "green screen") to allow menus to be easily drawn on top. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Does it support the 64-bit Excel
On 4/23/21 12:42 PM, Ben Hui wrote: I am interested to know if python -win32, specifically, the version: pywin32-300.win-amd64-py3.9.exe, at https://github.com/mhammond/pywin32/releases <https://github.com/mhammond/pywin32/releases> 1. Will it support Excel 64 bit. The users have Windows 10 and Excel 2016 both 64 bit? The "amd64" in the name says "yes". Excel is controlled through COM, and with a COM server, your Python bittedness must match the server bittedness. 2. Is there any documentation on the pywin32 library. I cannot seem to locate it on Github repository. Quite a lot. Did you Google for it? It's on the first page of results. http://timgolden.me.uk/pywin32-docs/contents.html -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] error 1: incorrect function when starting service python
Shaik Saleem Basha wrote: Issue: 1.I have created a python script for windows service, service is creating I can't able to run I'm getting the following error ( The pythonftp service terminated with the following service-specific error: Incorrect function.) in windows logs. 2.I'm able to run the service from windows services, only if I'm creating service from the environment this is also working only on my laptop the same I have tried on another laptop I'm getting the same error. Are you sure the other laptop has the same version of Python, and the same version of all of the Python modules you require? Are you sure that both systems have access to the D: drive? If that's a file share, are you sure both laptops have permission to access it? Remember that services, by default, run as the "local system" user, which does not have any of your network permissions. When you run on the other laptop, do you get a traceback that tells you which line failed? You should share that. 4.code link: https://cutt.ly/ux7XdnB <https://cutt.ly/ux7XdnB> It is incredibly foolish of you to publish your actual FTP username and password in a public github repository. You need to find another way to handle that. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] win32com.client.WithEvents fails when running as a Windows service
On Mar 6, 2021, at 6:43 AM, Marius Cirsta wrote: > > I'm trying to automate CANoe using win32com. I've written a script that > works perfectly when I log in and run it as a normal user. > ... > When being run as a service though I get this error: > > Traceback (most recent call last): > File "D:\Jenkins\Scripts\dispatch.py", line 203, in > exec_test(PDConfigPath, "CommonTests", "PD_CSB") > File "D:\Jenkins\Scripts\dispatch.py", line 146, in exec_test > win32com.client.WithEvents(csbTstMod, TestModuleEvents) > File "C:\Program > Files\Python39\lib\site-packages\win32com\client\__init__.py", line 336, in > WithEvents > instance = result_class(disp) # This only calls the first base class > __init__. > File > "C:\WINDOWS\TEMP\gen_py\3.9\7F31DEB0-5BCC-11D3-8562-00105A3E017Bx0x1x58.py", > line 19507, in __init__ > cookie=cp.Advise(win32com.server.util.wrap(self, > usePolicy=EventHandlerPolicy)) > pywintypes.com_error: (-2147024891, 'Access is denied.', None, None) Do you have your service configured to run as your user? The normal service user has different access permissions, so it can’t access your file shares. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Bug When Reading In PSTs
Nick Orr wrote: This seems to be the consensus from two others that I've heard back from. Unfortunately this is an issue for me (it's always that one same meta tag: ) as it's being requested by the project to have the contents be identical to the email in Outlook. I just don't see any possible way to achieve this given that it's stripped and inferring it risks inaccuracy. Do you know whether the message actually contained that line to begin with? If this happens with messages you send, try sending one to a Linux mailbox somewhere, and take a look at the raw text. It's also not impossible that Outlook adds line for export, but that it's not actually present in the message text. Outlook takes liberties with message content that it probably shouldn't. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Bug When Reading In PSTs
On Feb 17, 2021, at 6:07 AM, Nick Orr wrote: > > I've been developing a Python tool to ingest and write all emails from a PST > exported from Outlook to individual .html files. The issue is that when > opening the PST in outlook and checking the source information for emails > individually, it includes this specific line: > > > > which IS NOT being included when importing the PST with Pywin32 and reading > all the emails in the PST. To see what it looks like in a chunk - What you HAVEN’T said here is how you are talking to Outlook — how you generated your “outlook” object. PyWin32 doesn’t have any code that is Outlook-specific. I assume you’re using win32com.client.Dispatch. If so, remember that Python isn’t doing any processing here. It’s just passing requests through COM to Outlook. If your text is coming back oddly, then Outlook is returning it oddly. tags are intended for web servers; it’s possible that Outlook is absorbing the tag because it isn’t useful. Maybe it has copied the charset to a property of the message object to reflect the character set. That is, perhaps there’s something in the “item” object that gets tweaked. > Because the emails otherwise are identical, I can only assume this is being > done by the library. I'm wondering if there's a reason that meta tag is > excluded, or if it's a bug in PyWin32? No, it’s not being done by PyWin32. It’s being done by Outlook. You’d get the same result if you called this method from C#. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Opening existing memory mapped files with pywin32
On Feb 16, 2021, at 5:49 PM, rhyslloyd1 wrote: > > Thanks for the quick response! I've made some progress since reading. My goal > is to be able to talk to the NVIDIA Share API using Python. I found this > <https://github.com/cm-pony/Experienceless/issues/1#issuecomment-763496808> > post on GitHub the other day and I wanted to implement it myself. I've > obviously bitten off more than I could chew. I was wrong. What you have there is the name of a mapping object, not the name of a file. > Also the "read_line" method doesn't exist apparently. This > <https://pastebin.com/JjrA4jEJ> is the output now. Your snippet is private; we can’t read it. No, “read_line” isn’t going to work. This is not a file, it’s just a chunk of memory — a string of bytes. The implication from your link is that this is a JSON string. If so, you should be able to read() the whole thing, do .decode(‘utf-8’) and pass the result to a JSON decoder. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Opening existing memory mapped files with pywin32
Eryk Sun wrote: I'm sorry to say that the only reliable solution is to directly call WinAPI OpenFileMappingW() and MapViewOfFile() using a foreign-function interface (FFI) package such as ctypes or CFFI. I can write up an example if you need help. Respectfully, I think you have misread the original message. He is a relative beginner, just trying to do a simple file mapping. Based on his description, mmap should be able to do what he needs. I'm willing to be proven wrong, but I'm afraid you may be sending him on an unnecessary wild goose chase. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Opening existing memory mapped files with pywin32
rhyslloyd1 via python-win32 wrote: I am trying to open a memory mapped file using Python. I originally used the "mmap" module from Python however I had issues with it because I had to use a fixed size for the file even though my goal was to open an existing file of which the size would be unknown. The file size isn't really "unknown". It's just not known in advance. There are many ways to find the size of a file. Plus, the "mmap" module accepts 0 as a size parameter, meaning "map the whole file". I am now using the "mmapfile.mmapfile" function. My code looks like this <https://pastebin.com/QygT2wp6>. In the docs <http://timgolden.me.uk/pywin32-docs/mmapfile__mmapfile_meth.html> it says I can use a file name of "None" if I'm planning on opening an existing file. This <https://pastebin.com/2FVhpDiB> is the error I get when running my code. There are a couple of misunderstanding here. It is important to realize that the name of the mapping object is quite different from the name of the file being mapped. The Windows memory-mapping concept is quite general, and is often used as a way to share memory between multiple processes. In that case, you just want a chunk of memory without bothering with a file on disk. In that case, you'd create a mapping object with a name, but no file name. If you're just mapping an existing file, you need to supply the file name, but you don't need to supply a name for the mapping object. The code you showed creates a shared memory object that does not map a file on disk. The shared memory object has a name (the GUID), and another application could open that named object, but it doesn't map to a file. If you want to open a mapping to an existing file, specify the name of the file as File= and specify Name=None. However, you can do all of this with the mmap module as well. If you have a file called "data.bin", you can do import mmap fn = open('data.bin','rb') data = mmap.mmap( fn.fileno(), 0, access=mmap.ACCESS_READ ) That maps the whole file, and len(data) will tell you how large it is. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] DeviceIOControl calls respond with parameter incorrect
On Feb 8, 2021, at 8:23 PM, Doug Campbell wrote: > > In my python 2 script, I am trying to connect to the VeraCrypt device driver > to get some information on my mounted volumes. There are a lot of things to go wrong here. You may be in for a long slog. Your ctypes definition does look fundamentally correct. > This is what I have so far. I tried a bunch of different ideas on how to > construct the input buffer for the DeviceIoControl function call but I keep > getting the following response. > > Traceback (most recent call last): > File "test.py", line 188, in > > info=win32file.DeviceIoControl(hDisk,VC_IOCTL_GET_VOLUME_PROPERTIES,b'x05x00x00x00' > + (b'x00' * 702),65536) > pywintypes.error: (87, 'DeviceIoControl', 'The parameter is incorrect.') The last parameter is the size of the output buffer, and that does get passed to the driver. It should be sizeof(VOLUME_PROPERTIES_STRUCT) which is, I believe, 1280. > #info=win32file.DeviceIoControl(hDisk,VC_IOCTL_GET_VOLUME_PROPERTIES,struct.pack('ii520sQLQQiii66sL64sL',prop),17424) Last should be 1280, I think. > info=win32file.DeviceIoControl(hDisk,VC_IOCTL_GET_VOLUME_PROPERTIES,b'0x00' + > b'x05x00x00x00' + b'x00' * 702),65536) The first b’0x00’ is wrong; the first byte of the struct needs to be 5. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Error: VARIANT Type is unknown
Olle Pontén wrote: Hmm ok, I could find the following information using OLEView (se attachment). It states that the two in parameters are noted as VT_LPWSTR for the scriptCmd command. Would that mean that I have no way of interfacing with them at all? No, it doesn't mean that! If it doesn't ask for a variant, then you don't deliver a variant. Did you try just passing a string, as Mark suggested? -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Basic question about pywin32, does it work with 64 bit versions of O365?
On Jan 21, 2021, at 8:23 AM, Charlie Lamm wrote: > > I am contemplating rolling out some pywin32 scripts but my office has a > combination of 64 bit and 32 bit local office365 builds. > Q: Will pywin32 scripts work w/ 64 bit office? > Because of shelter in place I don’t have a W10 machine running 64 bit office > to test this on, but maybe someone knows? Usually, with a COM server, the bit size of your Python must match the bit size of your COM server. So, you'd need to use 64-bit Python to call a 64-bit COM server. (Note thet pywin32 is available for both 32-bit and 64-bit Pythons.) However, the Office applications are out-of-process servers, so there’s a proxy in the middle, and that should let it work. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] how to code pywin32 run existing window task scheduler?
On Jan 13, 2021, at 8:07 PM, Pongthorn Sangkaphet wrote: > I am interested in pywin32 . I am going to use it to run window task > scheduler through Django web application ? > > Does pywin32 provide some features or method to run window task scheduler? > Obviously, since you’re already using them. ;) > I have tried already but error > That’s 0x80070005, which is ERROR_ACCESS_DENIED. Have you tried running this from an elevated process? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Use TPM from Crypto API
On Nov 22, 2020, at 4:16 AM, Antoine FERRON via python-win32 wrote: > > Can you confirm that TPM "Microsoft Platform Crypto Provider" requires "CNG", > and pywin32 is only "CAPI" capable ? This is not a Python question at all. Look at the MSDN documentation page for the CryptEnumProviders API. You’ll see that it is deprecated, and only accesses the base cryptographic provider and the enhanced cryptographic provider. Remember that pywin32 is, in almost every case, a relatively thin wrapper around the Windows APIs. > Anyway, do you have some ideas in mind to reach my goal ? The APIs from ncrypt.dll are not, as of yet, exposed in pywin32. You can certainly use ctypes to access them. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Server Exectuion Failed
On Nov 12, 2020, at 12:32 PM, Bob Fang wrote: > > I have an application which utilise win32com to control a software > (powerworld if you know what it is). Once I have dispatched a new object I > can see in task manager there is a new process created which is running and I > can call command through the win32com object -- this is what I want to do and > suits me well but I noticed two things: > > 1. The process I created seems to be persistent and will not die even if I > explicitly deleted my object using `del` in Python. Is there a way to fully > close the process after I am done with my object? It’s up to the the application. Out-of-process servers often provide a “close” or “exit” method to tell them to clean up. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Using python to create outlook rules - comtypes (working) vs. pywin32 (not working)
Caio Kauffmann wrote: I am a hobby programmer and after days trying to figure out what I am doing wrong, I still can’t finish a project because of the issue I listed in this topic in stack overflow: https://stackoverflow.com/questions/64594689/python-comtypes-working-vs-pywin32-not-working-using-python-to-create-o This is not Visual Basic. The following statement does nothing in Python: |oFromCondition.Recipients.ResolveAll| If you want the method to be called, you have to call it: |oFromCondition.Recipients.ResolveAll()| -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Strange issues when using pywin32 to develop solidworks
On Oct 5, 2020, at 5:45 PM, nicolas jacky wrote: > > I test below code snippets in vscode with enviroment of python 3.8, pywin32 > build 228, solidworks 2017 API sets and created .py files by makepy, I get > some strange errors. > first snippet > > # -*- coding: utf-8 -*- > from win32com.client import * > from pythoncom import * > swx = Dispatch("SldWorks.Application") > swModel = swx.ActiveDoc > mathUilty = swx.GetMathUtility GetMathUtility is a method, not a property. You need to call it as a function: mathUtility = swx.GetMathUtility() ActiveDoc is a property, and so should not need parens. > Running this code and vscode says: > > line 15, in > swModel.AddComponents3(vtName,vtTrans,vtCoordName) > TypeError: 'NoneType' object is not callable > If I code it like this 'swModel.AddComponents3' then it's ok. > What is the difference? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] AES based win32crypt lib for python3
On Oct 5, 2020, at 8:24 AM, Raja Sekhar wrote: > > I have seen win32crypt lib for python, And it is built on DES algorithm. Sort of. Triple-DES is used to protect the master key derived from the credentials, but I’ve never seen Microsoft say what they actually use to encrypt the data blob. > I am searching for such library in Python using AES Algorithm. I have gone > through pyAesCrypt, Crypto.Cipher which is taking an explicit key for > encryption. > I would be grateful if you could help me to find a library in python3, > which uses AES encryption library similar to win32crypt which encrypts data > using a session key derived from current user's logon credentials as in > ‘CryptProtectData’ > function. Nope. Remember that win32crypt is nothing but a thin layer that calls the Windows CryptProtectData API. The API does a remote procedure call into the Windows LSA (Local Security Authority) to get access to the login credentials through an undocumented internal function. You can certainly find AES encryption for Python, but it’s not going to use the login credentials. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Any update on this issue? https://github.com/mhammond/pywin32/issues/1568
On Sep 23, 2020, at 10:46 PM, Patrick Bolliger wrote: > > I experience the same problem as described in the issue > (https://github.com/mhammond/pywin32/issues/1568 > <https://github.com/mhammond/pywin32/issues/1568>). > I reached out to Mark Hammond who suggested to ask on this mailing list. > > Also tried to work with makepy.py -d to identify possible libraries but > nothing found. > It is my office computer switched from WIn7 to Win10, Excel is 64-bit version > (Not having any admin rights, so not possible to investigate very deep) > > So I am not sure if as the library is called „win32com“ it can not work on > 64-bit Excel, so any plans for win64com? :-) If you have a 64-bit Python, then your win32com is a 64-bit library. Exactly which error do you get? That large negative number is a COM error code. Are you sure you still have Excel installed? Are you quite sure it’s a 64-bit Excel? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME cryptographic signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] how to use win32process.CreateRemoteThread
On Sep 10, 2020, at 7:24 AM, june y wrote: > > <https://stackoverflow.com/posts/63814377/timeline>i am studying > win32process of pywin32. > > but, i encounter a problem. > > problem is I don't know win32process.CreateRemoteThread wants what arguments > CreateRemoteThread does not work with Python functions. It is a C API, and it expects to be handed the address of a C function in the other process. id(x) returns to you an address, but it’s an address that has to be interpreted by the Python interpreter run-time, and the Python run-time will not be part of the other process. If you want to do threading in Python, use the ’thread’ or ’threading’ modules. Don’t use win32process for that. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)
On Sep 8, 2020, at 9:18 PM, Shaik Saleem Basha wrote: > > Thank you for your response I will to that . > > But my issue is not only with Quickopc , I have installed OpenOPC in that > also I’m getting same error OpenOPC is just a wrapper around the other OPC clients. If you have 64-bit clients, OpenOPC will also fail as well. However, I do not see QuickOPC in the list of classes supported by OpenOPC. > In my Case pywin32 is not matching with the version python I’m using . Why do you think so? You have Python 3.8, and the Pywin32 is for Python 3.8. If there were a mismatch, you couldn’t call Dispatch at all. > Can you please suggest me the versions which I can use to solve this errors , > because the same version I’m using in another windows laptop there I’m not > getting this errors. Either something has gone wrong with your QuickOPC installation, or you need the 64-bit Python. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)
Shaik Saleem Basha wrote: When I downloaded install python by default it installed 32bit version only so pywin32 also I installed 32bit only Quicopc library is installed If QuickOPC is a 64-bit component, then you need to call it from a 64-bit process. This is not always an easy thing to determine. If a company wants to support both 32-bit and 64-bit processes, then it has to install two different COM servers. I suggest you describe your problem to the QuickOPC folks; they would know right away if this were the issue. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)
Shaik Saleem Basha wrote: Hi, I’m using python 3.8.5 32 bit and also I have installed pywin32 by this command pip install pywin32 but when I execute my coed i’m getting the following error pywintypes.com_error: (-2147221005, 'Invalid class string', None, None) My code : import win32com.client client = win32com.client.Dispatch('OpcLabs.EasyOpc.DataAccess.EasyDAClient') value = client.ReadItemValue('','OPCLabs.KitServer.2', 'Demo.Single') print('value:',value) The most obvious question, of course, is do you actually have the QuickOPC .NET library installed? Why did you choose the 32-bit Python, instead of the 64-bit Python? -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Licensing requirement for usage of win32com APIs through python package (pywin32)
On Aug 2, 2020, at 12:48 PM, Adil Mujeeb wrote: > > I couldnt see my question in https://mail.python.org/pipermail/python-win32/ > <https://mail.python.org/pipermail/python-win32/> > I am not sure if it gets delivered or not. You waited less than 30 minutes before complaining. Mailing lists take longer than that. > On Sun, Aug 2, 2020 at 12:19 AM Adil Mujeeb <mailto:mujeeb.a...@gmail.com>> wrote: > > What is the license clause if this python script will be used to test a > commercial Application development? The license does not change based upon what you’re writing. If you’re not releasing this to the public, then the license is totally irrelevant. You can do whatever you want internally. > I wanted to be sure that this allows in creating scripts to test commercial > product and if internally allows Microsoft license. How does a Microsoft license get involved? I think you’re worrying more than you need to here. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Pythonwin.exe - trouble on the starting line
ejohn...@earthlink.net wrote: I wanted to look into using Pythonwin to see how difficult it would be to build GUIs using MFC. This isn't what you asked for, of course, but in my opinion you would be better served to start with wxPython. The basic philosophy is somewhat similar to MFC (the two libraries started at pretty much the same time), and wxPython has the advantage of being cross-platform. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to install pywin32 for Text only/TTY, excluding all GUI components
On May 26, 2020, at 6:29 AM, Vernon D. Cole wrote: > > I don't understand. If I include pywin32 as a pip requirement, then I get > the whole thing, I think. How can I "ship a package" without carrying the > unneeded parts around? I am under the impression that most people shipping Windows Python applications do so using something like Pyinstaller or Py2Exe, which packages up something that looks to the end user like a single executable, but which actually contains a zip file with the necessary modules and DLLs. The zip file only contains the parts of pywin32 that are actually required by the application. If you’re shipping your application via pip on WIndows, then virtually everyone will already have pywin32. It is a critical component. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] python-win32 Digest, Vol 205, Issue 5
On May 24, 2020, at 9:21 AM, Markus Kramer wrote: > > The points are: > - Reduce vulnerability. The MFC library is large and (earlier? versions) > contained CVE's. Whatever vulnerabilities there might be aren’t a factor if you aren’t using them. > - Reduce maintenance cost. By shipping less, you need to observe less, and > patch less. You are missing the point. Pywin32 simply makes all those thing available to you. You don’t have to use them. And if you aren’t using the graphical interfaces, then you aren’t shipping them. The Python installer apps only include the things your script needs. If you don’t need graphics, then graphics DLLs won’t be included in your package. And your proposal will, of course, INCREASE the maintenance cost for the Pywin32 programmers, who now have to deal with multiple packages. > - Reduce resources. Less size mean less disk space and less network bandwidth. The MFC DLLs are about 100MB. At today’s mass storage prices, that’s 3/10 of one American penny. Network bandwidth will not be an issue for your applications, because MFC won’t be included in your application. > Then you wrote > > If you ship a package that doesn’t need the UI components, then your > > package will not include the components. > > This is my goal. > I don't get what you refer to with "package". > Currently, `pip install pywin32` will include the UI components, even if they > are not needed. When I say “package”, I mean an application package that you want to distribute, created by something like pyinstaller. It will only include the components your application needs. I just don’t see that there is anything to gain in making such a substantial change. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to install pywin32 for Text only/TTY, excluding all GUI components
On May 23, 2020, at 4:27 AM, Markus Kramer wrote: > > Hello, > I would like to discuss and contribute to an alternative pip package without > GUI: > - pip install pywin32 continues as is, e.g. includes Pythonwin. > - pip install pywin32nogui would contain no GUI components, e.g. MFC.dll. > What are your thoughts? What is the point? Installing a package does not mean you are required to use all of it. If you ship a package that doesn’t need the UI components, then your package will not include the components. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Python 3.9 and win32ui.pyd
On May 21, 2020, at 1:09 PM, Scorby, Gary wrote: > > I have a few extra hours this week so I installed the first beta of Python > 3.9 and added pywin32. Trying to get an early look to see if we are going to > make any major changes for the 3.9 release. Running on Windows 10. > > Followed these steps: > > Downloaded and installed the Python 3.9 beta. > pip pywin32 > Ran the pywin32 post install script. > Added the path. > > These are the same steps as when I do a fresh 3.8 install. First thing I > tried is starting pythonwin.exe, get this It’s possible (although I am just speculating wildly here) that Python 3.9 is being built with a newer version of Visual Studio. Remember that add-ins have to be compiled with the same version as the interpreter, to avoid runtime library conflicts. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] [win32com] Meaning of "TypeError: Only com_record objects can be used as records"?
On Apr 30, 2020, at 11:47 AM, Terry Davis wrote: > > Thanks for the pointer! I'll let the maintainers of this software know. > > Do you know if applying this fix is sufficient for win32com to successfully > handle returned structs? I don’t know. That was the fix suggested by the old mailing list threads I found. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] [win32com] Meaning of "TypeError: Only com_record objects can be used as records"?
On Apr 27, 2020, at 12:58 PM, Terry Davis wrote: > > I looked in the generated file, and its RecordMap dict was empty, with a > comment. There are a dozen or so structs that should be available to the > interface. Is there any workaround for this, such as manually defining each > com_record? > > RecordMap = { > ###'LegacyMicroSamplerInfo': '{----}', # > Record disabled because it doesn't have a non-null GUID > } > > I was also given an idl file, which includes record definitions, like this > one: > > typedef struct SoftwareInfo { >BSTR name; >BSTR version; > } SoftwareInfo; > > Is there something missing from the idl file that's causing these to be > missed by win32com? Well, yes. There are rigid rules for writing IDL to make a valid dispatch interface, and generic structs like that are not in those rules. Some people get the idea that anything they can express in C++ can be shoved in a COM interface, but it ain’t so. You should be able to add a GUID attribute to the IDL: [ uuid(12345678-1234-1234-1234-123456789ABC) ] typedef struct SoftwareInfo { … } SoftwareInfo; Just generate a new GUID for each one. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to change print copies
On Apr 22, 2020, at 10:10 PM, Pavel Olifer wrote: > > i use your package for changing printer settings (duplex, copies). > for duplex it is work, but for copies it doesn’t. Some Windows printers don’t honor the “Copies” selection directly. The application has to generate multiple copies on its own. Have you seen a multi-copy setting work using the native driver? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] VT_DECIMAL variant
Nikita Lepetukhin wrote: ok, I will report a bug. But to be honest I'm trying to find the solution. Do I understand right that currently there is no way to pass VT_DECIMAL variant from python to com? Oh, it is possible; the library does many automatic conversions, but it's possible to do it by hand. I just don't know the recipe. If Tim Golden is listening, perhaps he can point us to a reference. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] VT_DECIMAL variant
Nikita Lepetukhin wrote: Tim, thanks for replying! VT_CY number doesn’t fit the precision I need (16 digits to the right of the decimal point). It has only 4 digits according to this description: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-oaut/5a2b34c4-d109-438e-9ec8-84816d8de40d The decimal (VT_DECIMAL) has precision up to 28 places (https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-oaut/b5493025-e447-4109-93a8-ac29c48d018d <https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-oaut/b5493025-e447-4109-93a8-ac29c48d018d>). It is exactly the same as python decimal has. They match to each other exactly and much better than VT_CY and python decimal. So maybe it wasn’t the best solution to automatically convert python decimal to VT_CY variant. Whatever.. what’s done is done. It's possible this is a misunderstanding in the pythoncom code. CURRENCY goes back to the days of Visual Basic 6, whereas DECIMAL is much more recent. It may be appropriate to file a bug report. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] VT_DECIMAL variant
> On Apr 14, 2020, at 7:09 PM, Nikita Lepetukhin wrote: > > I use win32com module and everything is ok but I cannot find the way how to > pass VT_DECIMAL variant value to COM object's method. > ... > This is how the interface is described in gencache: > class IProperty(DispatchBaseClass): > CLSID = IID('{0A4C05A0-107B-4A8B-9E34-44ED9B117A25}') > coclass_clsid = IID('{2171DCF1-B70B-4CAB-9EB7-F7FED71956B4}') > > _prop_map_get_ = { > "Value": (0, 2, (12, 0), (), "Value", None), > } That’s a property that returns a VT_VARIANT. > In python code I get the object by the following way: > ... > I need to pass here VT_DECIMAL variant (due to data precision requirements) > but it comes to COM object implementation as VT_R8 variant. > I tried to use decimal python type but it comes as VT_CY variant. > > Could you help me to find out how to pass VT_DECIMAL variant from python to > COM? > I would appreciate your help very much! The VT_CY type, the Python decimal type, and the C# decimal type are all the same — a 128-point fixed point value with 92 bits of precision. That’s probably what you should use. In order to use VT_DECIMAL, then you probably can’t use automatic translation. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] User login details when running a service
On Apr 11, 2020, at 6:32 AM, Waseem Afser wrote: > > Is there any possible method to get the logged in user's username from a > windows service ? Your assumption that there is only one "logged in user” is false, which is why the information you seek is not readily available. There is a WMI query that can return the name of all logged in users: https://stackoverflow.com/questions/5218778/how-do-i-get-the-currently-logged-username-from-a-windows-service-in-net <https://stackoverflow.com/questions/5218778/how-do-i-get-the-currently-logged-username-from-a-windows-service-in-net> — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME cryptographic signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] pure python way to open a file with write deny for others
Robin Becker wrote: On 05/03/2020 16:04, Eryk Sun wrote: On 3/5/20, Robin Becker wrote: I want to be able to read a windows file which is being periodically written by another process. I'm having difficulty reconciling this sentence with the subject line. OK I want to read the (small) file completely. The other process may try to re-write the file while I am reading it. I thought that denying them write permission for the short time I have the file open for reading might make incomplete files less likely. So far the applications seem to be able to operate in this fashion and the small files seem to be complete. Remember that the "deny write" permission only applies to opens. And if you have "deny write" set, the other open will fail -- it won't just delay. You can always use win32file.CreateFile directly, and bypass the Python filtering. Alternatively, and perhaps more hacky, you can use subprocess to copy the file to a safe temporary name. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to set value with PyIPropertyStore
On Nov 14, 2019, at 4:15 PM, Peng Chen wrote: > > Nah, thanks, the stuff I'm trying to do is actually quite simple. > I try to read the "Encoded date" info from video file, apply a timeshift and > write it back. > I searched a few different libs, they are either works for image files only > or it's read only and I can't write. > So I thought of pywin32 and really didn't expect this coming… I’m pretty confident that the Windows property system will not be able to change the file itself. These APIs might have filters that let them READ items from the media files, but I seriously doubt they will be to MODIFY media files. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to set value with PyIPropertyStore
On Nov 10, 2019, at 4:13 PM, Peng Chen wrote: > > then I tried > riid = "" > ctx = None > properties = propsys.SHGetPropertyStoreFromParsingName( > file_name, ctx, shellcon.GPS_READWRITE, riid) > it reported: > (-2147221005, 'Invalid Class String', None, None) That’s correct. “” is not a valid class string. SHGetPropertyStoreFromParsingName returns a COM interface, and you have to tell it what interface you want. It is usually IPropertyStore. What are you trying to do here? Are you porting some C++ code you found into Python? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to set value with PyIPropertyStore
On Nov 7, 2019, at 2:33 PM, Peng Chen wrote: > > I tried: > dateShifted = propsys.PyPROPVARIANT( > mDate + shift_time.timedelta_obj, pythoncom.VT_DATE) > and it reports: > module 'win32comext.propsys.propsys' has no attribute ‘PyPROPVARIANT' It is embarrassing that I had to figure this out twice today. dateShifted = propsys.PROPVARIANTType(mDate+shift_time.timedelta_obj, pythoncom.VT_DATE) The PROPVARIANTType function returns a PyPROPVARIANT object. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to set value with PyIPropertyStore
Peng Chen wrote: Hi Tim, Thanks for the reply. Sorry for the late. I just found your email today. Yes I tried with this code: from win32comext.propsys import propsys, pscon VIDEO_DATE_ENCODED = pscon.PKEY_Media_DateEncoded properties = propsys.SHGetPropertyStoreFromParsingName(file_name) mDate = properties.GetValue(VIDEO_DATE_ENCODED).GetValue() # got the datetime object dateShifted = mDate + shift_time.timedelta_obj # shift date properties.SetValue(VIDEO_DATE_ENCODED, dateShifted) # set value properties.Commit() and I got error message when executing to properties.SetValue(VIDEO_DATE_ENCODED, dateShifted) I found it. Try dateShifted = propsys.PyPROPVARIANT(mData + shift_time.timedelta_obj, pythoncom.VT_DATE) -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] NotifyAddrChange
On Nov 5, 2019, at 2:24 AM, Yvan Manon wrote: > > I'm new with pywin32 > I would be inform about network ip change, is pywin32 can access to > NotifyAddrChange > https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-notifyaddrchange > or is it a way to handle this or any advise to manage it Did you do any web searching at all for this? Google is way faster than this mailing list. The first two hits show you how to do this with ctypes, or try cab use this package: https://sourceforge.net/projects/iphelpers/files/ <https://sourceforge.net/projects/iphelpers/files/> — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] passing array by reference (3)
On Oct 27, 2019, at 5:06 AM, lcy wrote: > > Hello: > Following the tips you mentitoned in the year of 2017 > I tried to test the Catia.SystemService.Evaluate() in pytyon, However it > cannont work, anything went wrong with my code? Any advice will be > appreciated, thank you! What DID happen? You don’t have a newline at the very end of the string. CATIA might need that. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to set value with PyIPropertyStore
Peng Chen wrote: I'm working on a script to shift video media creation time. I can see there is a function PyIPropertyStore.SetValue(key, value) and PyIPropertyStore.Commit() to write the date back, but I'm not sure how to construct the value because it requires PyPROPVARIANT type. I can't figure out any where to import this type and doesn't know how to construct it. PyPROPVARIANT is generally a return type. In a case like this, I would expect that you would simply pass the datetime value, and the interface code would convert it into a variant. Have you tried that? Did you get an error? -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Word Application saving to PDF
On Oct 8, 2019, at 9:58 AM, Holland, James via python-win32 wrote: > > I’m trying to open some rtf files to Word and then save as PDFs. > ... > Traceback (most recent call last): > > File "", line 15, in > doc.SaveAs2(output_dir + '/' + 'rtfTest.pdf', FileFormat = wdFormatPDF) > File > "C:\Users\CMTHOL~1\AppData\Local\Temp\gen_py\3.6\00020905---C000-0046x0x8x7\_Document.py", > line 461, in SaveAs2 > , CompatibilityMode) > com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Word', > 'Command failed', 'wdmain11.chm', 36966, -2146824090), None) Did you do any web searching for this? -2146824090 is 0x80A1066, which is a security issue. Do you have permission to write into that directory? Are you able to do this same action if you do it by hand? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Calling Methods of an object returned by an COMObject method
On Sep 19, 2019, at 10:51 AM, Andreas Merl wrote: > > I am trying to automate CST Studio. > ... > As example “Quit()” > When I try to call this method nothing happens > mws.Quit() > It should quit the project. > What happens: > Nothing > > For me it looks as the methods of mws are never called. Have you tried the other methods, or are you basing that conclusion on exactly 1 sample? How can you tell it didn’t quite the project? Does the app open a new instance when you call EnsureDispatch? Excel, for example, is perfectly happy to run in the background as a COM server, so there’s no visible change when you quiet. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Dispatch command hangs
On Aug 15, 2019, at 9:28 PM, Joel Gross wrote: > > Yeah I'm calling CoInitialize. I can give CoInitializeEx a shot, but there's > no clear-cut way to set a priority for Dispatch? I'm not sure how these > objects are handled internally, is it just a regular queue? Is this an out-of-process server, so you’re receiving requests from other processes? If so, then I think you’re seeing RPC (Remote Procedure Call), which marshals the parameters back and forth, and I believe those are all first-come first-served. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Dispatch command hangs
On Aug 14, 2019, at 6:12 PM, Joel Gross wrote: > I have a multi-threaded application that receives a large number of messages > (COM objects) in sudden bursts. During this time, I've noticed that if my > other thread attempts to create a new COM object via the Dispatch call, that > call seems to hang until the messages have been processed. This can take more > than a minute sometimes. > I am wondering if this is because the win32 side of things is still trying to > churn through all the messages? Is there a way to preempt this behavior to > ensure that the object I'm trying to create gets created immediately? > This is a complicated topic. Are you calling CoInitialize? By default, that will create a “single-threaded apartment”, where actions get handled by a single thread. You can try calling CoInitializeEx with COINIT_MULTITHREADED and see if that helps. But even then, you bang up against the Python interpreter lock, which only allows the interpreter to handle one thread at a time. I wouldn’t think you’d have to wait for the whole set of object requests to drain, but threading in Python is always tricky. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] DoAction problem
On Jul 26, 2019, at 8:05 AM, sylvain.fe...@ville-ge.ch wrote: > > My photoshop action is doing : > - Open > - Smart sharpen > - Convert to Profile current document > - Save > - Close > > If Pillow is also able of "smart sharpening" and "converting to Profile > current document", your suggestion is very promising. Did you even look? Pillow includes both a tunable “sharpen” filter and an “unsharp mask” filter, as will every competent graphics library. The color profile conversion isn’t really necessary. My guess is you’re not really sure what it does anyway. > Is there any place on the Web where I can find reference to psApp tasks like > "DoAction", "Export", the parameters they need, etc.? It seems that it is not > so easy. Well, this is maybe again a very naive question. Those are Photoshop questions. Adobe has documentation on the Photoshop APIs, and they have their own user forums. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] DoAction problem
sylvain.fe...@ville-ge.ch wrote: Some little progress : Problematic code modified : psApp.DoAction('jpg_q8','Default Actions') # where 'jpg_q8' is the recorded action and 'Default Actions' the folder where the action is saved. Right -- the "action set" in Photoshop terms. No more error message, but... no result : my tif files are not transformed to jpg files. The Python part is now working. WE have no way of knowing what your Photoshop action is doing. Is it actually doing the save, or do you need to call psApp.Export? And, by the way, if ALL you need to do is convert TIF to JPG, you certainly do not need to launch the Photoshop behemoth for that. Just use pip to install "pillow", the Python Imaging Library, and all you need is this: from PIL import Image Image.open('myfile.tif').save('myfile.jpg') -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] DoAction problem
sylvain.fe...@ville-ge.ch wrote: New in Python and coding. My goal : Apply recorded actions in Photoshop to many folders and subfolders containing images. My inspiration : Web page explaining a Python code using pywin32 : https://vsfxryan.com/portfolio/python-photoshop-action-scripts/, but I do not want to define functions, I am too much beginner for this. Problematic code : #run action script which opens the file, convert it to jpg, save and close it. psApp.DoAction( actionScript, 'jpg_q8') Error message : NameError: name 'actionScript' is not defined Could you please help me solve this? Functions are fundamental to programming in general and Python in particular. You need to understand them if you're going to get anything done. Otherwise, you'll end up typing the same code over and over and over. In this case, it looks like you are trying to run this code outside of the function it was defined in. The error is pretty much self-explanatory; you're trying to pass the value of the variable "actionScript" to the DoAction function, but there is no variable called "actionScript". Look at the code itself. You'll see that "actionScript" was passed in to the function as a parameter, because he wanted to be able to trigger different actions with the same code. It should be clear that what you need to pass here is the action you want to take. However, if you really need to script common actions to images and folders, I strongly suggest you take a look at the ImageMagick package. It is an incredible powerful photo manipulation tool that is all driven from the command line. It can be a bit tricky to set up the command lines, but once you do, it works the same way, time after time. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Problem reading a shortcut (.lnk) with cPython 3.7 (32 bit)
David Hughes wrote: I'm in the process of upgrading my software from Python 2.7 to 3.7 now that wxPython has been migrated to 3. As part of a procedure for upgrading an end user's own installation I check for it's location via the desktop shortcut that Innosetup created during the original installation. That's not a particularly good method in the general case. I don't find much use for the desktop icon, so I suppress it. You might be better served to use the registry, in HKEY_LOCAL_MACHINE\Software\Python\PythonCore. 32-bit installations will be in HKEY_LOCAL_MACHINE\Software\WOW6432Node\Python\PythonCore (if you're reading from a 64-bit app). I have a procedure for doing this that worked/works fine with Python 2.7 that is very similar to the one published in /http://timgolden.me.uk/python/win32_how_do_i/read-a-shortcut.html/. Neither mine nor Tim's works under Python 3.7 (I haven't checked any other version of 3). With Tim's version, when the line name, _ = link.GetPath (shell.SLGP_UNCPRIORITY) is executed, after a delay it responds with /aborted (disconnected)/ and the program terminates, as does mine. Is it possible you have installed a 32-bit Python on a 64-bit system? Theoretically, you should be able to use CLSID_ShellLink from either one, but I'm trying to narrow things down. Tim's code works fine for me with Python 3.7.2 (64 bit) on Windows 10. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Retrieve Windows Notifications With pywin32
On Jun 5, 2019, at 2:25 PM, DAI VU wrote: > > Thank you for the response. I need to deal with toast notifications. I am not > sure if that answer your question. Well, I was really going for a philosophical point. Most toast notifications are things that the user needs to deal with. There are many things that would be inappropriate for you to dismiss. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] Retrieve Windows Notifications With pywin32
On Jun 2, 2019, at 6:06 PM, DAI VU via python-win32 wrote: > > ]I am new to python/pywin32. I have a task to check/retrieve/click on some > notifications in the "Action Center" posted by a particular windows app. Can > I use python/pywin32 for this? Are there sample codes that I can take a quick > look? Also, where can I find the DOC for pywin32? Well, here is the Microsoft repository of samples related to toast notifications and the action center. The examples are all C# and JavaScript, but they can be translated. https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Notifications <https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Notifications> There are lots of APIs for creating notifications, but I'm not aware of APIs to manipulate and respond to those notifications. Those notifications are there for a reason, and they are expected to be handled by a human user. What kind of notifications are you trying to dismiss? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] connecting to labview executable
On May 12, 2019, at 12:53 PM, c.kristu...@hoc.net wrote: > > I think what he is saying that he can connect to the LabView IDE but he > cannot connect to the stand-alone executable once it is built. LabView > is an interpreter which comes with a compiler to build stand-alone > binaries. Yes, you are right. Do we know whether the standalone executable is SUPPOSED to act as a COM server? Somebody somewhere would have to register it. I would not be surprised at all if that only works with the IDE. That's probably a question for the LabView support forum. > Anyway, LabView can do socket comunication so I think this is the way do > go rather than reading LabView controls via pywin32. Agreed. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME cryptographic signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] connecting to labview executable
On May 9, 2019, at 11:50 PM, Kálózi Zsolt wrote: > > So this continously reads out the value from the frontpanel of the .vi, that > is called 'power'. > Unfortunatelly this only works if the .VI is running in the LabView IDE. > That is okay for the test environment but not okay in the real environment. > > I will have an .EXE file that was generated from the .VI, so I need to access > that one. How can I do that with this library? Because simply changing the > path to the executable path doesn't work. > Under 'advanced' I also tried to enable and give a name to the ActiveX > server, when I generate the executable, and give that name to the Dispatch, > but that didn't work either. I'm trying to interpret what you've said here. Are you saying that the win32com.client.Dispatch statement only connects to LabView if your executable is already running? If so, then all you should have to do is use os.spawn or subprocess.Popen to launch the executable. — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME cryptographic signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] getvireference issue
On May 9, 2019, at 4:53 AM, Kálózi Zsolt wrote: > > I'm writing this mail by hoping someone could help. I have pywin32-224 > installed on my computer. > The following code doesn't seem to work: > import win32com.client > > labview = win32com.client.Dispatch("LabView.Application") > VI = labview.getvireference(r'Controller.vi') > I get the following error: > > AttributeError: ' instance at 0x43780248>' object has no attribute 'getvireference' The actual spelling is GetVIReference. Does that work? — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] hook the left mouse button down event on any window
On Mar 29, 2019, at 8:39 PM, Zhao Lee wrote: > > import win32gui > import win32ui > import win32con > > def onMousePressed(self): > print('onMousePressed', win32gui.GetCursorPos()) > > def listener(): > windowHandle = win32gui.WindowFromPoint(win32gui.GetCursorPos()) > clickedWindow = win32ui.CreateWindowFromHandle(windowHandle) > clickedWindow.HookMessage(onMousePressed, win32con.WM_LBUTTONDOWN) > # print('-registerMouseEvent', clickedWindow) > > while True: > listener() > time.sleep(8) > > what is wrong and what's the good practice ? I TOLD you what is wrong. Let’s follow the flow. Every 8 seconds you call listener. It does the following, very quickly: * Fetch the window under the cursor, assuming the cursor is over a window. * Create a Python window object around that window handle * Install a hook to catch button down messages for that specific window * Function exits, the window object is destroyed, and the hook is uninstalled Then you go back to sleep. While you are alseep, there is no hook. The only time you have a hook is the few milliseconds between your HookMessage call and when the function returns. The right answer is to use a package like pyHook to install a global hook. This is exactly what it is for. https://stackoverflow.com/questions/165495/detecting-mouse-clicks-in-windows-using-python <https://stackoverflow.com/questions/165495/detecting-mouse-clicks-in-windows-using-python> — Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME cryptographic signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] hook the left mouse button down event on any window
Zhao Lee wrote: I originally posted the question here <https://stackoverflow.com/questions/55399565/hook-the-left-mouse-button-down-event-on-any-window>, please help ,thank you ! I want to hook the left mouse button down event on any window, my code as following : |importwin32guiimportwin32uiimportwin32condefonMousePressed(self):print('onMousePressed',win32gui.GetCursorPos())deflistener(): windowHandle =win32gui.WindowFromPoint(win32gui.GetCursorPos()) clickedWindow =win32ui.CreateWindowFromHandle(windowHandle) clickedWindow.HookMessage(onMousePressed,win32con.WM_LBUTTONDOWN)# print('-registerMouseEvent', clickedWindow)whileTrue: listener()| However , the |onMousePressed| function was never called when clicked, what is wrong ? P.S. I know some similar projects such as PyUserInput <https://github.com/PyUserInput/PyUserInput>, mouse <https://github.com/boppreh/mouse>, pynput <https://pythonhosted.org/pynput/keyboard.html#monitoring-the-keyboard>, just want to know why my code didn't work. Your code came across badly formatted, so I can't tell exactly what you wrote. You aren't actually calling listener() from within a continuous, tight CPU loop, are you? This function is going to get called thousands and thousands of times a second. This is very poor practice, and it's part of the reason these other modules exist. You attach to an external window, install your mouse message hook, then your function exits, the window object is deleted, and the hook is released. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] ExportAsFixedFormat's ValueError
Kaweit wrote: i make a question: doc.ExportAsFixedFormat(output, constants.wdExportFormatPDF,|Item||=||constants.wdExportDocumentWithMarkup, CreateBookmarks ||=||constants.wdExportCreateHeadingBookmarks)| but "ValueError",the argument was wrong. Cloud you help me? I think I need a Win32com Docutment. This is not a win32com issue, it is a Word issue. And it would have been easier if you had told us that you were using Word instead of making us guess. We don't know were "ExportAsFixedFormat" comes from. Why didn't you cut-and-paste us the exact error message? Did it tell you which argument was wrong? What, exactly, is "output"? It would be helpful to see the code leading up to this as well. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] chapter 5 : implementing com objects with python
Benjamin McNeill wrote: Hello, I am trying to get this com server to work in VBA. I can register and deregister the server but I can not call it from vba. Any suggestions? I am using windows 10 and office 365 with python3.7. Remember that the bit-size must match. I don't actually know whether Office 365 is a 32-bit app or a 64-bit app, but your version of Python must match. -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32
Re: [python-win32] How to get target of folder shortcuts
kurt wrote: Hello, I'm trying to get the target filename of windows shortcuts. The code below works great for regular shortcuts, but errors out on "folder shortcuts". ... The code below works great for regular .lnk shortcuts, but folder shortcuts give me: [...] persistFile.Load(fname,STGM_READ) pywintypes.com_error: (-2147024891, 'Access is denied.', None, None) The quirk with folder shortcuts is they have some DOS attributes set, which I suspect could be causing me trouble. Is there, perhaps, something I need to do to get my IPersistFile to ignore file attributes? Your code works for me, although the SFGAO_FOLDER bit is not set for my folder shortcut. If you do a "dir" of the folder where the link lives, what do you see? Is it actually a .lnk file of about a kilobyte? There are no DOS attributes on my folder shortcut. What do you see? -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. smime.p7s Description: S/MIME Cryptographic Signature ___ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32