Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# погодите кодом все правильно написано или нужно изменить

КурманбекДавранов Просветленный (25673), на голосовании 8 месяцев назад
using System;
using System.Diagnostics;
using System.Threading.Tasks;

class JarvisAssistant
{
private static SpeechRecognizer recognizer;
private static Process photoshopProcess;

static void Main()
{
Task.Run (async () => await RunAssistantAsync()).Wait();
}

static async Task RunAssistantAsync()
{
recognizer = new SpeechRecognizer(new SpeechConfig(SpeechConfigType.FromSubscription, "ключ_от_Services"));
recognizer.Recognized += async (s, e) =>
{
string command = e.Result.Text.ToLower();
if (command == "открой фотошоп")
{
OpenPhotoshop();
}
else if (command == "закрой фотошоп")
{
ClosePhotoshop();
}
else if (command == "сохрани файл")
{
SaveFile();
}
else
{

}
};


}

private static void OpenPhotoshop()
{

}

private static void ClosePhotoshop()
{

}

private static void SaveFile()
{
try
{
if (photoshopProcess != null && !photoshopProcess.HasExited)
{

string saveScriptPath = @"C:\путь_к_вашему_скрипту\SaveFile.jpg";


photoshopProcess.StartInfo.FileName = "photoshop.exe";
photoshopProcess.StartInfo.Arguments = $@"""{saveScriptPath}""";
photoshopProcess.Start();

Console.WriteLine("Файл сохранен .");
}
else
{
Console.WriteLine("Фотошоп файл не был отредактирован.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при сохранении файла: {ex.Message}");
}
}
}
Голосование за лучший ответ
CHAT GPT Профи (722) 9 месяцев назад
Прежде чем приступить к реализации методов `OpenPhotoshop()` и `ClosePhotoshop()`, вам следует инициализировать объект `photoshopProcess` в методе `RunAssistantAsync()`.

Вот как это можно сделать:

```csharp
static async Task RunAssistantAsync()
{
// Инициализируем объект photoshopProcess
photoshopProcess = new Process();

// Код метода остается без изменений
recognizer = new SpeechRecognizer(new SpeechConfig(SpeechConfigType.FromSubscription, "ключ_от_Services"));
recognizer.Recognized += async (s, e) =>
{
string command = e.Result.Text.ToLower();
if (command == "открой фотошоп")
{
OpenPhotoshop();
}
else if (command == "закрой фотошоп")
{
ClosePhotoshop();
}
else if (command == "сохрани файл")
{
SaveFile();
}
else
{

}
};
}
```

После этого вам следует реализовать логику для методов `OpenPhotoshop()` и `ClosePhotoshop()`, так как в текущем коде они пусты.
Татьяна Просветленный (36384) 9 месяцев назад
Ваш код выглядит хорошо, но я нашла несколько мест, где вы можете его улучшить:

- Вместо использования ` Task.Run ` для запуска асинхронного метода, вы можете просто вызвать его с `await` в `Main` методе. Это позволит вам избежать блокировки основного потока и обрабатывать исключения более эффективно.
- Ваш метод `OpenPhotoshop` пустой, поэтому он ничего не делает. Вы можете использовать класс `Process` для запуска приложения Photoshop с помощью метода `Process.Start`. Вы также можете сохранить ссылку на запущенный процесс в переменной `photoshopProcess`, чтобы вы могли его закрыть или взаимодействовать с ним позже.
- Ваш метод `ClosePhotoshop` также пустой, поэтому он ничего не делает. Вы можете использовать метод `Process.Kill` для завершения процесса Photoshop, если он еще не вышел. Вы также можете проверить, не равна ли переменная `photoshopProcess` `null`, прежде чем пытаться ее убить, чтобы избежать ошибок.
- Ваш метод `SaveFile` выглядит неплохо, но вы можете сделать его более универсальным, передавая имя файла в качестве параметра. Таким образом, вы сможете сохранять разные файлы с помощью одного и того же метода. Вы также можете использовать `Path.Combine` для объединения частей пути к файлу, чтобы избежать проблем с разделителями.
 using System;  
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;

class JarvisAssistant
{
private static SpeechRecognizer recognizer;
private static Process photoshopProcess;

static async Task Main()
{
await RunAssistantAsync();
}

static async Task RunAssistantAsync()
{
recognizer = new SpeechRecognizer(new SpeechConfig(SpeechConfigType.FromSubscription, "ключ_от_Services"));
recognizer.Recognized += async (s, e) =>
{
string command = e.Result.Text.ToLower();
if (command == "открой фотошоп")
{
OpenPhotoshop();
}
else if (command == "закрой фотошоп")
{
ClosePhotoshop();
}
else if (command.StartsWith("сохрани файл"))
{
string fileName = command.Substring("сохрани файл".Length).Trim();
SaveFile(fileName);
}
else
{

}
};


}

private static void OpenPhotoshop()
{
try
{
photoshopProcess = Process.Start("photoshop.exe");
Console.WriteLine("Фотошоп открыт.");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при открытии фотошопа: {ex.Message}");
}
}

private static void ClosePhotoshop()
{
try
{
if (photoshopProcess != null && !photoshopProcess.HasExited)
{
photoshopProcess.Kill();
Console.WriteLine("Фотошоп закрыт.");
}
else
{
Console.WriteLine("Фотошоп уже закрыт или не был открыт.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при закрытии фотошопа: {ex.Message}");
}
}

private static void SaveFile(string fileName)
{
try
{
if (photoshopProcess != null && !photoshopProcess.HasExited)
{
string saveScriptPath = Path.Combine(@"C:\путь_к_вашему_скрипту", fileName);
photoshopProcess.StartInfo.FileName = "photoshop.exe";
photoshopProcess.StartInfo.Arguments = $@"""{saveScriptPath}""";
photoshopProcess.Start();
Console.WriteLine($"Файл {fileName} сохранен.");
}
else
{
Console.WriteLine("Фотошоп файл не был отредактирован.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при сохранении файла: {ex.Message}");
}
}
}
КурманбекДаврановПросветленный (25673) 9 месяцев назад
static async Task Main()
{
await RunAssistantAsync();
}

static async Task RunAssistantAsync()
{
recognizer = new SpeechRecognizer(new SpeechConfig(SpeechConfigType.FromSubscription, "ва_ключ_от_Microsoft"));
recognizer.Recognized += async (s, e) =>
{
string command = e.Result.Text.ToLower();
if (command == "открой фотошоп")
{
OpenPhotoshop();
}
else if (command == "закрой фотошоп")
{
ClosePhotoshop();
}
else if (command == "сохрани файл")
{
await SaveFile("название_файла.for");
}
else
{
КурманбекДаврановПросветленный (25673) 9 месяцев назад
private static void OpenPhotoshop()
{
try
{
photoshopProcess = Process.Start("photoshop.exe");
Console.WriteLine("Фотошоп запущен.");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при запуске Фотошопа: {ex.Message}");
}
}

private static void ClosePhotoshop()
{
try
{
if (photoshopProcess != null && !photoshopProcess.HasExited)
{
photoshopProcess.Kill();
photoshopProcess.WaitForExit(5000);
Console.WriteLine("Фотошоп закрыт.");
}
else
{
Console.WriteLine("Фотошоп не был открыт.");
}
}
КурманбекДаврановПросветленный (25673) 9 месяцев назад
catch (Exception ex)
{
Console.WriteLine($"Ошибка при закрытии Фотошопа: {ex.Message}");
}
}

private static async Task SaveFile(string fileName)
{
try
{
if (photoshopProcess != null && !photoshopProcess.HasExited)
{
string filePath = Path.Combine(@"C:\путь_к_файлам", fileName);

Console.WriteLine($"Файл {fileName} фор.");
}
else
{
Console.WriteLine("Фотошоп не не был отредактирован.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при сохранении файла: {ex.Message}");
}
}
}
КурманбекДаврановПросветленный (25673) 9 месяцев назад
Загляните ещё раз
Татьяна Просветленный (36384) КурманбекДавранов, сейчас все нормально в коде твоем
КурманбекДаврановПросветленный (25673) 9 месяцев назад
Спасибо за то что уделили время
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (264385) 9 месяцев назад
 using System; 
using System.Diagnostics;
using System.Threading.Tasks;

class JarvisAssistant
{
private static Process photoshopProcess;

static async Task Main()
{
var recognizer = new SpeechRecognizer(new SpeechConfig(SpeechConfigType.FromSubscription, "ключ_от_Services"));
recognizer.Recognized += async (s, e) =>
{
string command = e.Result.Text.ToLower();
switch (command)
{
case "открой фотошоп":
OpenOrClosePhotoshop("открыть");
break;
case "закрой фотошоп":
OpenOrClosePhotoshop("закрыть");
break;
case "сохрани файл":
SaveFile();
break;
}
};
}

private static void OpenOrClosePhotoshop(string action)
{
try
{
if (action == "открыть")
{
string photoshopPath = "photoshop.exe";
Process.Start(photoshopPath);
}
else if (action == "закрыть" && photoshopProcess != null && !photoshopProcess.HasExited)
{
photoshopProcess.Kill();
Console.WriteLine("Фотошоп закрыт.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при выполнении операции с Photoshop: {ex.Message}");
}
}

private static void SaveFile()
{
try
{
string saveScriptPath = @"C:\путь_к_вашему_скрипту\SaveFile.jpg";
photoshopProcess = Process.Start(saveScriptPath);
Console.WriteLine(photoshopProcess != null ? "Файл сохранен." : "Не удалось сохранить файл.");
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при сохранении файла: {ex.Message}");
}
}
}
Похожие вопросы