تقليد النوافذ "تشغيل" في .NET
-
03-10-2019 - |
سؤال
أرغب في تقليد أمر التشغيل في Windows في برنامجي. وبعبارة أخرى ، أود أن أعطي المستخدم القدرة على "تشغيل" قطعة نص تعسفية تمامًا كما يحدث إذا قاموا بكتابةها في مربع التشغيل.
في حين System.Diagnostics.Process.Start()
يحصلني على قرب ، لا يبدو لي أن أحصل على أشياء معينة مثل متغيرات البيئة مثل ٪ AppData ٪. أنا فقط أستمر في تقديم رسالة "لا يمكن لـ Windows العثور على" ٪ AppData ٪ "..."
المحلول
يمكنك استخدام ال البيئة طريقة لتحويل ٪ appdata ٪ إلى كل ما يتوافق في الواقع.
نصائح أخرى
اعتمادًا على ما تحاول القيام به ، يمكنك أيضًا الاتصال بـ cmd.exe ، والتي ستوسع متغيرات البيئة الخاصة بك تلقائيًا. المثال أدناه سيفعل dir من مجلد ٪ appdata ٪ الخاص بك ، وإعادة توجيه stdout إلى debug:
StreamReader stdOut;
Process proc1 = new Process();
ProcessStartInfo psi = new ProcessStartInfo("CMD.EXE", "/C dir %appdata%");
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
proc1.StartInfo = psi;
proc1.Start();
stdOut = proc1.StandardOutput;
System.Diagnostics.Debug.Write(stdOut.ReadToEnd());
لا تنتمي إلى StackOverflow