Повторный символ пропускается при программном сбросе пути в powershell.
Я сбрасываю символы один за другим из пути к файлу скрипта на консоль powershell с помощью API SendMessage.
При первом выполнении программы powershell пропускает повторяющийся символ из пути, который создает проблему.
Например, "C:\myFolder\abbc\test.ps1"
Из приведенного выше пути, когда я сбрасываю символы a в окно powershell, он пропускает 1 b из "abbc", так что последний путь, который сбрасывается на консоль, - это "C:\myFolder\abc\test.ps1".
Это происходит только при первом выполнении приложения, при последующих исполнениях оно работает нормально и также принимает повторяющиеся символы.
Что я уже пробовал:
Я попытался добавить время сна в 1 секунду после того, как сбросил другой символ.
[Правка Йохена Арндта: скопированный код и текст из комментария]
for(int i = 0;scriptPath[i] != '\0';i++) { ::SendMessage(g_hwndConsole,WM_CHAR,scriptPath[i],1L); Sleep(3*1000); }Здесь
g_hwndConsole
это дескриптор консоли powershell[/РЕДАКТИРОВАТЬ]
Jochen Arndt
Пожалуйста, покажите код, который сбрасывает (сообщение, которое отправляется).
При отправке в другое приложение вы обычно должны использовать PostMessage вместо SendMessage.
GVS13
for (int i = 0;scriptPath[i] ! = '\0';i++)
{
::SendMessage(g_hwndConsole, WM_CHAR, scriptPath[i], 1L);
Сон(3*1000);
}
Здесь g_hwndConsole-это дескриптор консоли powershell