[python-win32] Dragdrop shell extension?

2018-06-26 Thread Kurt Eilander

Hey all,

I've implemented a file format called .urls which is a plain text file 
containing (guess what) urls.
I've successfully registered it with a python script so it can, when 
clicked, open a new browser windows with all of the urls listed in new tabs.

(Very handy!)

Now, I want to be able to drop handler such that a link dragged from the 
browser (system .url file, basically) onto the .urls file will append 
the new link to those in the list.


I understand that file formats which do this sort of thing register a 
program as a shell extension, but how do I write such a thing to handle 
shell dragdrop in python??


Thanks,
-K

___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


Re: [python-win32] playing with scintillacon

2017-12-16 Thread Kurt Eilander

I already had "import win32api".

As for pywintypes27.dll, it is one of four files automatically placed in 
c:\windows\system32 by the installer, which is a pretty sure thing as 
far as being able to find it.  I was getting desperate so I even copied 
it over, AND all the binaries from the 
C:\Python27\Lib\site-packages\pythonwin directory for good measure.  I 
checked the security privileges on all of them and verified that they 
were 64-bit using a PE explorer (ProcessHacker2).


There must be something else I'm missing.

NOTE:
I am basing my code on the example 
C:\Python27\Lib\site-packages\win32comext\shell\demos\servers\shell_view.py 
ScintillaShellView class.  Which is supposed to implement a windows 
explorer preview with scintilla highlighting.


Anyway, when I try and run that full sample, I get a folder created that 
I cannot open.  (Like it's registered correctly, but the code behind it 
is kaput.)   I use NirSoft's shell extension viewer 
(http://www.nirsoft.net/utils/shexview.html), and it tells me it "cannot 
find c:\Windows\system32\pythoncom27.dll". Bafflingly, it IS THERE!  
And, since it is another of the same set of dll's created by the 
installer, I'm wondering if this might be a clue?  Could there be a 
problem with the way the dll's are compiled and/or installed??


On 12/15/2017 3:47 PM, eryk sun wrote:

On Fri, Dec 15, 2017 at 9:10 PM, Kurt Eilander <web...@totalrewind.com> wrote:

Ok, I found scintilla.dll in the directory above scintillacon.py, but it
came with pywin32, so it *should* be the correct one.
DLL inspector says it's a 64-bit, which is correct for my os.

I copy that dll, and indeed, all binaries in that directory (just to be
sure) into my program directory and it still does not work!

Try importing win32api in the same context. If that fails, check PATH
for pywintypesXY.dll:

 where pywintypes*.dll



___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


Re: [python-win32] playing with scintillacon

2017-12-15 Thread Kurt Eilander
Ok, I found scintilla.dll in the directory above scintillacon.py, but it 
came with pywin32, so it *should* be the correct one.

DLL inspector says it's a 64-bit, which is correct for my os.

I copy that dll, and indeed, all binaries in that directory (just to be 
sure) into my program directory and it still does not work!


Yet, the program Pythonwin.exe in that directory works fine and does its 
syntax highlighting with scintilla.dll.


I have no idea what could be wrong.  Oh!  To know what that little %1 means!


On 12/15/2017 10:23 AM, Jim Bell wrote:
"... not a valid Win32 application" sounds like a 32/64-bit issue to 
me. The 32/64-bit version of python you're running: does it match the 
DLLs?



On 2017-12-14 6:10 PM, Kurt Eilander wrote:

Hey all,

I recently noticed that pythonwin comes with a scintilla wrapper. 
Seems USEFUL!  so I decided to (scientifically) try poking it with a 
stick to see what it does.
(https://github.com/mhammond/pywin32/tree/7da19cd2ca3fac06638d9af690b8b6f5fcc65e8b/Pythonwin/pywin/scintilla) 



I didn't get too far, for when I do:
    from scintilla import scintillacon
I get:
    ImportError: DLL load failed: %1 is not a valid Win32 application.

Presumably this means there's a dll it can't find? Unfortunately the 
%1 is not replaced with what it's looking for.  (If there's not a bug 
out on this somewhere, there probably should be.) That's not the 
point though.  Point is: what are we looking for?


Thanks,
-Kurt






___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


[python-win32] playing with scintillacon

2017-12-14 Thread Kurt Eilander

Hey all,

I recently noticed that pythonwin comes with a scintilla wrapper. Seems 
USEFUL!  so I decided to (scientifically) try poking it with a stick to 
see what it does.

(https://github.com/mhammond/pywin32/tree/7da19cd2ca3fac06638d9af690b8b6f5fcc65e8b/Pythonwin/pywin/scintilla)

I didn't get too far, for when I do:
    from scintilla import scintillacon
I get:
    ImportError: DLL load failed: %1 is not a valid Win32 application.

Presumably this means there's a dll it can't find?  Unfortunately the %1 
is not replaced with what it's looking for.  (If there's not a bug out 
on this somewhere, there probably should be.) That's not the point 
though.  Point is: what are we looking for?


Thanks,
-Kurt

___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


[python-win32] CreateDesktop() and displaying a window on it

2017-04-06 Thread Kurt Eilander

Hey all,

I'm trying to get system modal functionality like the UAC dialog.

According to http://developex.com/blog/system-modal-back/ the thing to 
do is to create and switch to a new desktop.


Therefore, I'm doing:

hDeskOld=win32service.GetThreadDesktop(win32api.GetCurrentThreadId())
hDesk=win32service.CreateDesktop("SysModalDesktop",0,win32con.GENERIC_ALL,None) 


hDesk.SwitchDesktop() # switch to the new desktop
try:
root=Tk()
app=SysmodalDialog(root,title,message,img)
app.mainloop()
except Exception,e:
print e
hDeskOld.SwitchDesktop() # switch back
hDesk.CloseDesktop() # done

The tk stuff inside the try works fine on its own.
If I replace the Tk stuff with time.sleep(5.0), then desktops switch 
fine as well.


The problem is I can't get the tk app to show on the new desktop (and 
therefore mainloop() blocks and I can't get back out of it!)


I tried changing Tk() to Tk(screenName="SysModalDesktop") but that 
didn't make a difference.


How do I make my window go to the right desktop??

-Kurt

___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


[python-win32] win32api handle incompatible with ctypes?

2017-03-04 Thread Kurt Eilander

Hey all,

I'm having another problem.  I'm wanting to get the size of a dll 
resource, but...


When I do:
try:
hLib=win32api.GetModuleHandle(fileName)
except:
hLib=win32api.LoadLibrary(fileName)
if hLib==None:
raise WindowsError('File not found, '+fileName)
hResInfo=ctypes.windll.kernel32.FindResourceW(hLib,index,type)
size=ctypes.windll.kernel32.SizeofResource(hLib,hResInfo)

It throws:
hResInfo=ctypes.windll.kernel32.FindResourceW(hLib,index,type)
ctypes.ArgumentError: argument 1: 'exceptions.OverflowError'>: long int too long to convert


Almost like ctypes doesn't like the win32api handle.

My machine is 64 bit.  Is that what ctypes is not liking?  Is there a 
way around it?


-Kurt
___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


[python-win32] What does pythoncom interface look like?

2017-01-08 Thread Kurt Eilander

Hey all,

I'm trying to create a win32com server that implements a standard 
interface (IExtractImage)


I've added the iid to _com_interfaces_ and the method names to 
_public_methods_, but now I'm at a complete loss how to implement them.


For instance, given the method,

HRESULT IExtractImage::GetLocation(
  [out]   LPWSTR pszPathBuffer,
  [in]DWORD  cchMax,
  [out]   DWORD  *pdwPriority,
  [in]const  SIZE   *prgSize,
  [in]DWORD  dwRecClrDepth,
  [in, out]   DWORD  *pdwFlags
);

How in the world is that supposed to look as a python method??

(Or is there some c++ or other glue I'd need to write to define that?)


Thanks,
-K

___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


Re: [python-win32] shell_view.py folder not browsable

2016-07-06 Thread Kurt Eilander

Hey all,

I was hoping to create my own IShellFolder in python, but there seems to
be something wrong with the example on my system.
(Win7 64bit, Python 2.7)

The folder shows up on the desktop, but I cannot open it.  I saw an
earlier thread where the solution was to right-click and select
'explore', but that doesn't even work for me.  The context menu only has
Cut, Create Shortcut, and Delete.

Not seeing any errors in the syslogs.

Any fixes or suggestions would be most appreciated!

Thanks in advance,
-Kurt


Today I decided to try it on Vista 32-bit, SP2.  Also, this was pristine 
code right off the Anaconda bundle.


This time when I right-click, open on "Python Path Shell Browser" I see 
a brief blip, like it wanted to draw the window frame but decided not 
to.  This was the only visible difference (and I think even that could 
be accounted for by the slower speed of the machine).


Again, I run mmc and look at the syslogs.  Nothing.

That's a pretty old system.  Just curious, when was the last time 
anybody has tried this example?  Its starting to feel like the 
non-workingness may have been around for a long time.


-Kurt

___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


[python-win32] shell_view.py folder not browsable

2016-06-23 Thread Kurt Eilander

Hey all,

I was hoping to create my own IShellFolder in python, but there seems to 
be something wrong with the example on my system.

(Win7 64bit, Python 2.7)

The folder shows up on the desktop, but I cannot open it.  I saw an 
earlier thread where the solution was to right-click and select 
'explore', but that doesn't even work for me.  The context menu only has 
Cut, Create Shortcut, and Delete.


Not seeing any errors in the syslogs.

Any fixes or suggestions would be most appreciated!

Thanks in advance,
-Kurt
___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32