Re: [Pyobjc-dev] Calling SMJobBless with valid AuthorizationRef
Brought to you by:
ronaldoussoren
From: Ronald O. <ron...@ma...> - 2012-11-05 09:57:15
|
On 5 Nov, 2012, at 2:59, Kunal Parmar <kun...@gm...> wrote: > I'm getting an error when calling SMJobBless - "ValueError: depythonifying 'pointer', got 'LP_c_void_p'". I've tried a few things without luck. Any help will be appreciated. It's currently not easily possible to use ctypes with PyObjC, I've filed an issue in my bitbucket about adding ctypes support to pyobjc <https://bitbucket.org/ronaldoussoren/pyobjc/issue/23/add-ctypes-support>. Anoyingly the Security framework is not easily wrapped using the normal PyObjC mechanism's either, in particular support for C structs that contain pointers is lacking right now. I'll have to experiment a little to see if I can get your example to work properly using some other hacks. Ronald > > Here's my code - > > from ServiceManagement import ( > kSMDomainSystemLaunchd, > SMJobBless, > ) > > security = ctypes.cdll.LoadLibrary(ctypes.util.find_library('Security')) > > class AuthorizationItem(ctypes.Structure): > _fields_ = [ > ('name', ctypes.c_char_p), > ('valueLength', ctypes.c_uint32), > ('value', ctypes.c_void_p), > ('flags', ctypes.c_uint32), > ] > > class AuthorizationRights(ctypes.Structure): > _fields_ = [ > ('count', ctypes.c_uint32), > ('items', ctypes.POINTER(AuthorizationItem)), > ] > > authorization_item = AuthorizationItem( > name='com.apple.ServiceManagement.blesshelper', > valueLength=0, > value=None, > flags=0, > ) > authorization_rights = AuthorizationRights( > count=1, > items=ctypes.pointer(authorization_item), > ) > authorization_flags = 19 > authorization_ref = ctypes.POINTER(ctypes.c_void_p)() > status = security.AuthorizationCreate( > ctypes.pointer(authorization_rights), > None, > authorization_flags, > ctypes.pointer(authorization_ref), > ) > SMJobBless( > kSMDomainSystemLaunchd, > 'app.helper', > authorization_ref, > None, > ) > ------------------------------------------------------------------------------ > LogMeIn Central: Instant, anywhere, Remote PC access and management. > Stay in control, update software, and manage PCs from one command center > Diagnose problems and improve visibility into emerging IT issues > Automate, monitor and manage. Do more in less time with Central > http://p.sf.net/sfu/logmein12331_d2d_______________________________________________ > Pyobjc-dev mailing list > Pyo...@li... > https://lists.sourceforge.net/lists/listinfo/pyobjc-dev |