2010-12-16 12 views
3

スタートメニューのショートカットに基づいてプログラムを起動しようとしています。特に、私はそのスタートメニューのショートカットに基づいてパワーポイントを起動しようとしています。これを達成するために、私はIWshRuntimeLibraryを使用しています。Cでスタートメニューのショートカットからパワーポイントを起動できません#

IWshShortcutオブジェクトを作成するだけでなく、ショートカットも正常に検索できます。私は(Process.Start(shortcut.TargetPath、shortcut.Arguments)を介して)ショートカットのバッキングアプリケーションを実行しようとするしかし、一度、Win32Exceptionが発生します。

System.ComponentModel.Win32Exception was unhandled 
    Message=The specified executable is not a valid application for this OS platform. 
    Source=System 
    ErrorCode=-2147467259 
    NativeErrorCode=193 
    StackTrace: 
     at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 
     at System.Diagnostics.Process.Start() 
     at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) 
     at System.Diagnostics.Process.Start(String fileName, String arguments) 
     at Scratch.Program.Main(String[] args) in C:\Users\jhampton\Documents\Visual Studio 2010\Projects\Scratch\Scratch\Program.cs:line 26 
     at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 

私は見つけることができるだけで、関連する答えは、このdiscussionにありました。私のプロジェクトはすでにx86アプリケーションとして構築されていました

私のシステムの背景は以下の通りです。私はWindows 7 Professional 64-Bitを実行しており、Microsoft Office 2010をインストールしています。これは、.NET Framework 4 Client Profileを対象としたVisual Studio 2010で作成されたコンソールアプリケーションの一部です。

は、私は、次の代替ソリューションを調査する過程にいるよ:

のWindows APIコードパック:http://code.msdn.microsoft.com/WindowsAPICodePack
ショートカットIWshRuntimeLibraryなし:賢明なリンクの欠如についてHow to resolve a .lnk in c#

申し訳ありません。それは私の最初の投稿で、明らかに私は複数のタグを使用して挿入することはできません。

+0

'shortcut.TargetPath'の内容を出力しようとしましたか? – mookid8000

+0

@ mookid8000:例のコードに含めるのを忘れてしまいましたが、編集します。その間、私は "C:\ Windows \ Installer \ {90140000-0011-0000-0000-0000000FF1CE} \ pptico.exe "と入力します。私は、パワーポイントが実際にインストールされ、ライセンスされ、機能していることに注意する必要があります。 – Josh

答えて

2

これは単純に動作するはずです:

Process.Start(shortcutPath); 

あなたはそれを実行するためのウィンドウを頼む、LNKを開く必要はありません。シーンの後ろで、Process.Startは.lnkを処理する方法を知っているShellExecuteを実行します。

+0

これは完全に機能します。いつも私は事を過度に複雑にしました。ありがとう。 – Josh

関連する問題