1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from win32com.shell import shell, shellcon
- import pythoncom
- import time
- website='https://github.com/mhammond/pywin32/'
- iad=pythoncom.CoCreateInstance(shell.CLSID_ActiveDesktop, None, pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IActiveDesktop)
- opts=iad.GetDesktopItemOptions()
- if not (opts['ActiveDesktop'] and opts['EnableComponents']):
- print('Warning: Enabling Active Desktop')
- opts['ActiveDesktop']=True
- opts['EnableComponents']=True
- iad.SetDesktopItemOptions(opts)
- iad.ApplyChanges(0xffff)
- iad=None
- ## apparently takes a short while for it to become active
- time.sleep(2)
- iad=pythoncom.CoCreateInstance(shell.CLSID_ActiveDesktop, None, pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IActiveDesktop)
- cnt=iad.GetDesktopItemCount()
- print('Count:', cnt)
- for i in range(cnt):
- print(iad.GetDesktopItem(i))
- component={
- 'ID': cnt+1,
- 'ComponentType': shellcon.COMP_TYPE_WEBSITE,
- 'CurItemState': shellcon.IS_NORMAL,
- 'SubscribedURL': website,
- 'Source' : website,
- 'FriendlyName' : 'Pywin32 on SF',
- 'Checked' : True, ## this controls whether item is currently displayed
- 'NoScroll' : False,
- 'Dirty': False,
- 'Pos': {'Top':69, 'Left':69, 'Height': 400, 'Width': 400, 'zIndex': 1002,
- 'CanResize': True, 'CanResizeX': True, 'CanResizeY': True,
- 'PreferredLeftPercent': 0, 'PreferredTopPercent': 0},
- 'Original': {'Top': 33, 'Left': 304, 'Height': 362, 'Width': 372, 'ItemState': shellcon.IS_NORMAL},
- 'Restored': {'Top': 33, 'Left': 304, 'Height': 362, 'Width': 372, 'ItemState': shellcon.IS_NORMAL}
- }
- try:
- existing_item=iad.GetDesktopItemBySource(website)
- except pythoncom.com_error:
- pass
- else:
- iad.RemoveDesktopItem(existing_item)
- iad.ApplyChanges(0xffff)
- iad.AddDesktopItem(component)
- iad.ApplyChanges(0xffff) ## need to check which AD_APPLY constants are actually needed
|