ProcessStartInfo.UseShellExecute Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállít egy értéket, amely jelzi, hogy az operációs rendszerhéjat kell-e használni a folyamat elindításához.
public:
property bool UseShellExecute { bool get(); void set(bool value); };
public bool UseShellExecute { get; set; }
member this.UseShellExecute : bool with get, set
Public Property UseShellExecute As Boolean
Tulajdonság értéke
true ha a rendszerhéjat a folyamat indításakor kell használni; false ha a folyamatot közvetlenül a végrehajtható fájlból kell létrehozni. Az alapértelmezett érték false (vagy true .NET Framework-alkalmazások esetén).
Kivételek
Az Univerzális Windows-platform (UWP)-alkalmazásokban true értékre történő megkísérlése történik.
Példák
// Run "csc.exe /r:System.dll /out:sample.exe stdstr.cs". UseShellExecute is false because we're specifying
// an executable directly and in this case depending on it being in a PATH folder. By setting
// RedirectStandardOutput to true, the output of csc.exe is directed to the Process.StandardOutput stream
// which is then displayed in this console window directly.
using (Process compiler = new Process())
{
compiler.StartInfo.FileName = "csc.exe";
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs";
compiler.StartInfo.UseShellExecute = false;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.Start();
Console.WriteLine(compiler.StandardOutput.ReadToEnd());
compiler.WaitForExit();
}
' Run "vbc.exe /reference:Microsoft.VisualBasic.dll /out:sample.exe stdstr.vb". UseShellExecute is False
' because we're specifying an executable directly and in this case depending on it being in a PATH folder.
' By setting RedirectStandardOutput to True, the output of csc.exe is directed to the Process.StandardOutput
' stream which is then displayed in this console window directly.
Using compiler As New Process()
compiler.StartInfo.FileName = "vbc.exe"
compiler.StartInfo.Arguments = "/reference:Microsoft.VisualBasic.dll /out:sample.exe stdstr.vb"
compiler.StartInfo.UseShellExecute = False
compiler.StartInfo.RedirectStandardOutput = True
compiler.Start()
Console.WriteLine(compiler.StandardOutput.ReadToEnd())
compiler.WaitForExit()
End Using
Megjegyzések
Az ProcessStartInfo osztály egy folyamat indításakor használt értékek készletét adja meg.
Az UseShellExecute tulajdonság false értékre való beállításával átirányíthatja a bemeneti, kimeneti és hiba streameket.
A "shell" szó ebben a kontextusban (UseShellExecute) egy grafikus rendszerhéjra (a Windows rendszerhéjhoz hasonlóan) hivatkozik a parancshéjak helyett (például) és lehetővé teszi a bashshfelhasználók számára grafikus alkalmazások indítását vagy dokumentumok megnyitását.
Note
UseShellExecuteakkor kell lenniefalse, ha a UserName tulajdonság nem null vagy egy üres sztring, vagy a metódus meghívásakor InvalidOperationException a rendszer eldob egy Process.Start(ProcessStartInfo) parancsot.
Amikor az operációs rendszerhéjat használja a folyamatok elindításához, bármilyen dokumentumot elindíthat (amely bármely regisztrált fájltípus, amely egy alapértelmezett megnyitási művelettel rendelkező végrehajtható fájlhoz van társítva), és az objektum használatával műveleteket hajthat végre a fájlon, például nyomtatással Process . Ha UseShellExecute igen false, akkor csak a végrehajtható elemeket indíthatja el az Process objektum használatával.
Note
UseShellExecute csak akkor lehet true, ha a ErrorDialog tulajdonságot true-re állítja.
WorkingDirectory
A WorkingDirectory tulajdonság eltérően viselkedik a UseShellExecute tulajdonság értékétől függően. Ha UseShellExecute igen true, a WorkingDirectory tulajdonság a végrehajtható fájl helyét adja meg. Ha WorkingDirectory üres sztring, a rendszer feltételezi, hogy az aktuális könyvtár tartalmazza a végrehajtható fájlt.
Ha UseShellExecute igen false, a WorkingDirectory tulajdonság nem a végrehajtható fájl megkeresésére szolgál. Ehelyett csak az elindított folyamat használja, és csak az új folyamat kontextusában van értelme. Ha a UseShellExecutefalse állapotban van, akkor a FileName tulajdonság lehet a végrehajtható fájl teljes elérési útja vagy egy egyszerű végrehajtható fájl neve, amelyet a rendszer a PATH környezeti változó által meghatározott mappákban próbál megkeresni. A keresési útvonal értelmezése az operációs rendszertől függ. További információkért írja be a HELP PATH vagy man sh parancssorba.