2

Process.Start() を使用して lnk ファイルを開始しようとしています。資格情報が提供されていない場合は問題ありませんが、提供すると例外がスローされます。サンプルコードは次のとおりです。

これはうまくいきます

var processStartInfo = new ProcessStartInfo
{
    FileName = @"F:\abc.lnk",
};

using (var process = new Process())
{
    process.StartInfo = processStartInfo;
    process.Start();
}

しかし、このコードは Win32Exception をスローします:「指定された実行可能ファイルは、この OS プラットフォームに対して有効なアプリケーションではありません」。

var processStartInfo = new ProcessStartInfo
{
    FileName = @"F:\abc.lnk",
    UserName = userName,
    Password = securePassword,
    Domain = domain,
    UseShellExecute = false,
};

using (var process = new Process())
{
    process.StartInfo = processStartInfo;
    process.Start();
}

私のOSは32ビットで、プログラムも

ファイルはネットワーク ドライブ上にあるため、これらの資格情報が必要になります。

どんな助けでも大歓迎です!!

4

2 に答える 2

4

ドキュメントには、「UseShellExecute が false の場合、Process コンポーネントで実行可能ファイルのみを開始できる」と記載されているため、.lnk ファイルを渡すと失敗することが予想されます。

ここでの同様の問題: Process.Start C# を使用してショートカット経由でアプリケーションを実行する

于 2013-12-18T14:22:25.573 に答える