2017-05-27 12 views
1

python NETを使用してメモ帳のようなWindowsアプリケーションを起動するにはどうすればいいですか?これは、Python 2.7.13と私のソースコードです:Python NETで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

あなたがチェックすることができます'type'が' None'でなければ? ProgID = "Notepad.Application"について確かですか?それは私のためにnullを返します。また、 'type'はPythonの予約語です。 – denfromufa

+0

これは古い例ですが、私はこのパッケージシステムの新しいバージョンで内部のpythonエラーと考えて、方法をインスタンス化します。 –

+0

私はあなたを理解していません – denfromufa

答えて

0

他のCOMオブジェクトで動作しますpythonnet私のマシンには何のプログラムID = "Notepad.Application" 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

これでExcelを起動することはできますか?私の例ではどんなCOMオブジェクトを使用できますか? –

+0

これを使用して任意のCOMオブジェクトをインスタンス化できます。私はちょうど非常に人気があるので、Excelの例を与えた。 – denfromufa

+0

私は理論的にはCOMオブジェクトがどのように動作するのか知っていますが、私はそれがpythonとこのpythonモジュールで動作するかどうかはわかりません。詳細情報とヘルプが必要です。 –

関連する問題