2017-05-27 1 views
1

Comment démarrer une application Windows comme le bloc-notes en utilisant python NET? Ceci est mon code source avec python 2.7.13:Python NET démarrer une application Windows

C:\Python27>python.exe 
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import clr 
>>> import System 
>>> type = System.Type.GetTypeFromProgID("Notepad.Application") 
>>> System.Activator.CreateInstance(type) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
System.ArgumentNullException: Value cannot be null. 
Parameter name: activationContext 
    at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) 
    at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext) 
    at System.Activator.CreateInstance(ActivationContext activationContext) 
+0

pouvez-vous vérifier si 'type' n'est pas' None'? Êtes-vous sûr de ProgID = "Notepad.Application"? Il retourne null pour moi. Aussi 'type' est un mot-clé réservé en Python. – denfromufa

+0

Ceci est un vieil exemple, je pense que c'est une erreur interne de python avec la nouvelle version de ce paquet System et instantiate way. –

+0

Je ne vous ai pas compris – denfromufa

Répondre

0

Il n'y a pas ProgID = objet COM "de Notepad.Application" sur ma machine, pythonnet travaille avec d'autres objets COM:

>>> import clr 
>>> import System 
>>> type1=System.Type.GetTypeFromProgID("Excel.Application") 
>>> type1 
<System.RuntimeType object at 0x02ABEE10> 
>>> System.Activator.CreateInstance(type1) 
<Microsoft.Office.Interop.Excel.ApplicationClass object at 0x02AD11D0> 
+0

Alors juste Excel peut-il commencer avec ça? Quels objets COM peuvent être utilisés avec mon exemple? –

+0

Vous pouvez instancier n'importe quel objet COM en utilisant ceci. Je viens de donner un exemple Excel parce que c'est très populaire. – denfromufa

+0

Je sais en théorie comment fonctionnent les objets COM, mais je ne suis pas sûr que cela fonctionne avec python et ce module python. Besoin de plus d'infos et d'aide. –