سؤال

أرغب في تقليد أمر التشغيل في 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());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top