Member 14978771 Ответов: 1

Как я могу вызвать окно оболочки в консольном приложении?


Как я могу написать код на c# для вызова Windows+R,окна оболочки в консольном приложении?

Что я уже пробовал:

Shell32.Shell shell = new Shell32.Shell();
shell.FileRun();

Richard MacCutchan

Чего именно вы пытаетесь достичь?

1 Ответов

Рейтинг:
0

Dave Kreskowiak

Я понятия не имею, почему вы хотите сделать это, но я нашел, откуда вы взяли этот код, и следовал всем инструкциям с помощью фрагмента кода, и он работал просто отлично.

Я предполагаю, что вы либо пропустили добавление ссылки COM в библиотеку "Microsoft Shell Controls and Automation", вероятно, потому, что не поняли, что это значит, либо не выполнили инструкцию по добавлению атрибута [STAThread] к методу, в котором вы сделали вызов FileRun ().

using System;

namespace CsSandbox
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Shell32.Shell shell = new Shell32.Shell();
            shell.FileRun();
        }
    }
}

Вы можете добавить ссылку, перейдя в Обозреватель решений в вашем проекте, щелкнув правой кнопкой мыши элемент ссылки и выбрав пункт "Добавить ссылку..." В появившемся диалоговом окне нажмите на элемент COM в левой части диалогового окна, затем прокрутите вниз длинный список отображаемых библиотек COM, пока не найдете "Microsoft Shell Controls and Automation". Наведите курсор мыши на этот элемент и установите флажок рядом с ним. Нажмите кнопку ОК, и все готово.