|
|
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Нужно создать временно невидимую консоль, а в случае AllocConsole + ShowWindow она всё равно успевает мелькнуть В интернете прочёл, что можно вручную создать консоль в режиме временно невидимого окна Но найденные куски кода пока к успеху не привели, CreateProcess возвращает False Подскажите, какие параметры должны быть, чтобы повторить AllocConsole Желательно куски кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 02:02 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Ну, например. С помощью CreateProcess создай "консольный" процесс. Например, cmd.exe. В startUpInfo задай: Код: pascal 1. 2. - вот и будет консоль невидимой. Потом присасываешься к консоли этого процесса: Код: pascal 1. Учти, что AttachConsole() может не сработать, ибо процесс создания консоли может быть еще в состоянии запуска. Можно в цикле ждать успешного AttachConsole(), Код: pascal 1. 2. или ещё как, в общем не маленький, сообразишь. И завершаешь процесс Код: pascal 1. Все. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 03:29 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Спасибо А StdOut чего не заполняешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 09:32 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Да, ну ты уж сам там доделай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 11:34 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
А зачем на скрытой консоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 11:39 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНужно создать временно невидимую консоль Главный вопрос: зачем? Второстепенный вопрос: при чём тут CreateProcess? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 11:48 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Ну я как раз не понимаю, что делать с StdOut/Input/Error Поэтому и спрашиваю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:01 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Gator, После создания консоли, я её настраиваю Задаю размеры, область вывода, позиционирую в центр экрана, меняю Caption Если создавать сразу видимую - то она неприятно моргает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:03 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
05.06.2018 11:48, Dimitry Sibiryakov пишет: > Главный вопрос: зачем? он мыслит "окошками". пишет супер-пупер "сёрвис". но окошко у сёрвиса быть должно. (по мнению аффтора) в общем - клиника. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:05 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUчччД__, Ну я как раз не понимаю, что делать с StdOut/Input/Error Поэтому и спрашиваю Консоль нужна, да-да, но для чего - сам не знаю... п....ц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:06 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий05.06.2018 11:48, Dimitry Sibiryakov пишет: > Главный вопрос: зачем? он мыслит "окошками". пишет супер-пупер "сёрвис". но окошко у сёрвиса быть должно. (по мнению аффтора) в общем - клиника. ты там давай, не спорь с величайшим программистом в истории ! он, наконец-то, занялся нормальными прикладными задачами, а не самым быстрым в мире лапшекодом ! не спугни ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:11 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUПосле создания консоли, я её настраиваю Задаю размеры, область вывода, позиционирую в центр экрана, меняю Caption Зайди с другой стороны: Windows помнит параметры консоли для каждого приложения индивидуально. Выясни где она это хранит и задавай параметры консоли для совего приложения перед её созданием. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:18 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Ну в MSDN ф-ций для консоли: раз,два и все. Вы же не предлагаете, системные структуры Windows ручками в 0 кольце защиты править ))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:27 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВы же не предлагаете, системные структуры Windows ручками в 0 кольце защиты править ))). Они сохраняются между сеансами, так что вряд ли они в кольце 0. Реестр скорее всего. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 12:53 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Ты не задавался вопросом, почему линуксовые сервисы имеют консольный вывод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 13:38 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Я же объяснил, зачем мне эмулировать AllocConsole Что не понятного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 13:39 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Ну так эмулируй, а не попрошайничай. Тебе и код дали, и направление - что ещё за тебя сделать? Не можешь головой работать - иди в армию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 13:46 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUТы не задавался вопросом, почему линуксовые сервисы имеют консольный вывод? Ты не поверишь, но они вообще вывода не имеют. Канонический сниппет демонизации перекидывает его в /dev/nul или просто закрывает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 13:47 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Так а я не попрошайничаю, а нормально спрашиваю. За код спасибо. Нечего добавить - ради бога. Только грубить не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 14:02 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Почему же не поверю? Поверю. Только ситуации тоже разные бывают. В отладке можно и в скринах запускать Вывод в терминал есть. А как ты его используешь - дело программиста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 14:14 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUТолько ситуации тоже разные бывают. В отладке можно и в скринах запускать Так это для отладки линуксовых демонов тебе нужна консоль точно посередине экрана? Понятненько... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 14:24 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Почему линуксовых? А в винде разве не надо сервисы отлаживать? Да и под линуксами, почему, собственно нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 14:58 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUDimitry Sibiryakov, Почему линуксовых? А в винде разве не надо сервисы отлаживать? ... Интересно, с каким юзером ты собрался взаимодействовать, пытаясь создать консоль из сервиса? Ну, в какой пользовательской сессии будет доступна такая консоль? Поясни, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:09 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, А кто отлаживает сервис? Программист или тестер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:16 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, да, кто. Я это и спросил. В контексте какой сессии "сидит" программист, и в какой - сервис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:20 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, В контексте своего рабочего места. Когда херачит код. Один херачит и смотрит, правильно ли оно работает. Второй получает сборку и тоже проверяет, правильно ли оно работает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:29 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
окна... всюду окна. и в голове. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:35 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Что-то ты не очень представляешь, что есть служба виндовс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:35 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Это ты не представляешь, что приложение может запускаться не только как сервис, но и в stand-alone режиме. Например, для отладки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:37 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Ну так что ты тогда про сервисы талдычишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:39 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, По мне - это оптимальное название. Сервер или серверное приложение - не але. Служба - тем более. А сервис вроде как понятен. Не обязан быть ни сервером, ни службой. Но может быть как тем, так и этим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:49 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Вообще, дичь полная. Ну ладно, запуск "как приложения" для отладки, пусть с консолью. Ну, сбилди отладочном приложение с флагом "консольное", вот тебе и консоль, что за бред с позиционированием окна... И все равно, "как сервис" рано или поздно придется запускать - там уже гарантированно не будет ошибок, что ли? Так и будешь прыг-скок... Напиши простейшего клиента для работы с сервисом, это же и просто и удобно, хоть локально сервис отлаживай, хоть удаленно, да и управлять/настраивать удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:53 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
05.06.2018 15:49, SOFT FOR YOU пишет: > Сервер или серверное приложение - не але. Служба - тем более. А сервис вроде как понятен. Не обязан быть ни сервером, ни службой. Но может быть как тем, так и этим о! второе пришествие Дэйва Катлера... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 15:53 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Делает одно приложение. Которое знает, сервис ли оно или stand-alone. И работает соответственно. В Debug или Release сборке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 16:16 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUКоторое знает, сервис ли оно или stand-alone. Когда твои тестеры задолбаются читать бегущую консоль, они тебя начнут бить пока ты не сделаешь-таки вывод лога в файл, который удобно читать, грепать и отсылать по почтк. Так что ты сэкономишь себе время, занявшись этим уже сейчас. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 16:22 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
А уж какие забавные вещи позволяет творить имя файла лога типа \\.\pipe\MySuperLog - вообще ни словами описать, ни в сказке рассказать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 16:34 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Я работаю в конторе, где 100+ сотрудников, и добрая половина из них программисты. Контора многие годы занимается тем, что разрабатывает промышленные сервера для линукс. И здесь используется как раз такая система, что пишутся логи и данные в терминал, в зависимости от уровня логирования. Поэтому будь добр, не рассказывай мне о том, что задолбаются делать тестеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 16:41 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
05.06.2018 16:41, SOFT FOR YOU пишет: > пишутся логи и данные в терминал вкуда? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 16:45 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUКонтора многие годы занимается тем, что разрабатывает промышленные сервера для линукс. И здесь используется как раз такая система, что пишутся логи и данные в терминал, в зависимости от уровня логирования. Не хочу тебя расстраивать, но, в отличии от линуха, виндовая консоль открывается в той позиции и с тем размером которые ей установили в прошлый раз. Поэтому принудительно каждый раз перетаскивать её в центр экрана совершенно не нужно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 16:49 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
https://blogs.msdn.microsoft.com/commandline/2017/06/20/understanding-windows-console-host-settings/ Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 16:55 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Я проверял, у меня не сохраняется Может быть потому, что область вывода и размеры окна меняю Может, что приложение изначально не консоль, а вызывается AllocConsole ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 17:05 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUМожет, что приложение изначально не консоль, а вызывается AllocConsole А ты проверь: убери свои прыжки в ширину, измени параметры через диалог из системной менюшки и посмотри где эта консоль откроется в следующий раз. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 17:14 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUDimitry Sibiryakov, Я проверял, у меня не сохраняется Может быть потому, что область вывода и размеры окна меняю Может, что приложение изначально не консоль, а вызывается AllocConsole Может, и не сохраняется, кто знает, что там у тебя за код. ... Сделай консольный лончер. Крошечное консольное приложение, которое будет стартовать твой сервис и завершаться. А сервис уже будет использовать консоль лончера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 17:19 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Да проверяли уже Говорю же ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 17:20 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUДа проверяли уже Говорю же ) Ну значит руки рихтуйте, проверяльщики, ибо у меня AllocConsole() в тестовом приложении, сляпанном за пару минут, показывает консоль точно на том месте, которое я ей задал в конфигурации. Ссылка, приведённая мною выше, не врёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 17:55 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, А область вывода менял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 18:05 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Может быть и правда я криво проверял В любом случае я центрирую окно и хочу сделать это по красоте Если к сообщению первого оратора есть что добавить - ради бога ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 18:07 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUА область вывода менял? А твоя "область вывода" это, случайно так, не "Screen Buffer", которых может быть много?.. Они, сюрприз, в Windows существуют отдельно от консольного окна. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2018, 18:20 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Зафигачил функцию, всё работает Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Вопрос. Это работает в Windows 10. В других виндах сюрпризов не будет? Меня смущает STD_OUTPUT_HANDLE/STD_INPUT_HANDLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 13:50 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUЗафигачил функцию, всё работает Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Вопрос. Это работает в Windows 10. В других виндах сюрпризов не будет? Меня смущает STD_OUTPUT_HANDLE/STD_INPUT_HANDLE поставь винду в виртуалку и проверь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 13:52 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
defecator, Лень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 13:54 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUdefecator, Лень молодец, чо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 13:55 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
defecatorмолодец, чо Да лана тебе! Ща все шустро набегут и будут дружно тестировать под разными осями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 14:25 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Стал тестировать на Windows иногда (при некоторых стартах) возникает ошибка System Error. Code 6. Неверный дескриптор Может на Windows X тоже бывает ошибка, но повторить не успел Ошибка возникает здесь: Код: pascal 1. Причём в обоих случаях, как в рабочем случае, так и в нерабочем, GetStdHandle(STD_OUTPUT_HANDLE) возвращает 7 У кого какие идеи, как это можно исправить? Возникает ощущение, что STD_OUTPUT_HANDLE не успевает приаттачиться к консоли С другой стороны все функции типа GetConsoleScreenBufferInfo/SetConsoleCursorPosition/GetLargestConsoleWindowSize - отрабатывают корректно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 22:24 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUСтал тестировать на Windows иногда (при некоторых стартах) возникает ошибка System Error. Code 6. Неверный дескриптор Может на Windows X тоже бывает ошибка, но повторить не успел Ошибка возникает здесь: Код: pascal 1. Причём в обоих случаях, как в рабочем случае, так и в нерабочем, GetStdHandle(STD_OUTPUT_HANDLE) возвращает 7 У кого какие идеи, как это можно исправить? Возникает ощущение, что STD_OUTPUT_HANDLE не успевает приаттачиться к консоли С другой стороны все функции типа GetConsoleScreenBufferInfo/SetConsoleCursorPosition/GetLargestConsoleWindowSize - отрабатывают корректно величайшего оптимизатора опустили с небес ? https://docs.microsoft.com/en-us/windows/console/getstdhandle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 22:33 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
defecator, Выдели жирным, на что ты хочешь обратить моё мнимание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 22:53 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUЗафигачил функцию, всё работает Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... То есть, ты все же не удержался и спотимизировал: чччД__SOFT FOR YOU, Ну, например.... Код: pascal 1. 2. ... Ну, страдай теперь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 23:03 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, У меня в этом (соседнем) проекте была похожая штука. Ребята сначала меняли Caption консоли на тот, где указан PID, потом ждали 100 мск, потом делали FindWindow и находили окно. Так вот эта штука работала в 80% случаев, а в 20% выдавала Exception-ы, по крайней мере на моей машине. Потом я нашёл функцию GetConsoleWindow и теперь успешно её применяю. К чему это я. Что Sleep(50) по сути своей ничего не гарантирует. А я хочу сделать по уму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 23:08 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU...А я хочу сделать по уму. Это правильно, но движения что-то не видно. ... Ты всего лишь должен не тупо пытаться вызывать AttachConsole(ProcInfo.dwProcessId), а предварительно убедиться в том, что ProcInfo.dwProcessId достаточно валиден, чтобы его использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 23:16 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Если CreateProcess вернул True - то ProcInfo.dwProcessId валиден ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 23:18 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUчччД__, Если CreateProcess вернул True - то ProcInfo.dwProcessId валиден Ну что же, тряси дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 23:19 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Удивительно Вот такой обрабатывается нормально: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. А если сделать Sleep(1) - то второй цикл становится бесконечным Ну и как это решить? Увеличить Sleep не предлагать. Должно быть какое-то здоровое решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 23:41 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, CreateProcess function Как бы толстый намёкThe calling thread can use the WaitForInputIdle function to wait until the new process has finished its initialization and is waiting for user input with no input pending. This can be useful for synchronization between parent and child processes, because CreateProcess returns without waiting for the new process to finish its initialization. For example, the creating process would use WaitForInputIdle before trying to find a window associated with the new process. Только учти, что WaitForInputIdle применительно к cmd.exe приложения тебе не поможет: Ибо...If this process is a console application or does not have a message queue, WaitForInputIdle returns immediately... Ибо приложение cmd.exe не использует очередь сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:02 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
очень умиляет Cardinal(nil^), и ведь осознанно написал! полную, несуразную дичь COUNTER = COUNTER ? не совсем понял, зачем пытаться втолкнуть то, что не вталкивается ? нужно же, запросить ошибку, и сделать дело отталкиваясь от нее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:02 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Как же ты раньше оптимизациями занимался? Запускал проги на чистом железе, без операционки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:04 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, А зачем ты мне про WaitForInputIdle рассказываешь, если для cmd он не сработает? И причём тут оптимизации? Кукареку, Ты слишком мал Проспись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:12 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUчччД__, А зачем ты мне про WaitForInputIdle рассказываешь, если для cmd он не сработает? ... Что ж ты такой прямолинейный. Я тебе рассказывал о том, во-первых, поиск окон процесса, на которое, как ты сказал, ты жаловался где-то в соседнем топике, следует выполнять лишь после того, как процесс инициализируется, и, во-вторых, что успешное выполнение CreateProcess() вовсе не означает, что хэндл и id процесса сразу же готовы к использованию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:19 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__успешное выполнение CreateProcess() вовсе не означает, что хэндл и id процесса сразу же готовы к использованию. Они-то готовы, но он же их не в ту дырку суёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:26 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUТы слишком мал Проспись ты программировать не умеешь, судя по ошибке и ответу. Серьёзно! ты у nil берешь нижнюю ступень, ступенью будет служить ближайший регистр, который впихнет компилятор. это может быть любая переменная, загруженная в EAX,ECX,EDX и.т.д. в плодь до стэка большое счастье что ты еще ошибок не поймал, на таком чуде коде - ужаса, ночного кошмара, когда ты нарочно портишь чужую память. пока писал, решил все просмотреть внимательно в теме, и увидел что ты уже был поимет своей тупой выходкой в сообщение 21477528 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:46 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
накатал пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:50 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Dimitry Sibiryakov, Да, да, я плохой - это понятно. Делать то чё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 02:10 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Кукареку, А тебя не наталкивает на какую-то мысль, что ты при таком раскладе ловишь AV, а я нет? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 02:11 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSOFT FOR YOUПосле создания консоли, я её настраиваю Задаю размеры, область вывода, позиционирую в центр экрана, меняю Caption Зайди с другой стороны: Windows помнит параметры консоли для каждого приложения индивидуально. Выясни где она это хранит и задавай параметры консоли для совего приложения перед её созданием. 2 SOFT FOR YOU: завершая приложение, сохраняй текущее положение консоли, и все. Точнее - перед убиением консоли. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Подумай все же о военной службе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 04:22 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Нет спасибо ) Я лучше буду делать Sleep(100) или разберусь с AttachConsole Чем задавать позицию окна через реестр при завершении приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 07:16 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUчччД__, Нет спасибо ) Я лучше буду делать Sleep(100) или разберусь с AttachConsole Чем задавать позицию окна через реестр при завершении приложения Ты же не разберешься, так и будешь позорно sleep() вызывать. А предложенный способ - вполне себе штатный и даже рекомендованный Microsoft. Более того, сей способ "по умолчанию" реализован многими системами программирования при построении консольных приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 07:38 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__, Посмотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 08:07 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, - Если что - то работает, это не значит, что оно работает - именно так, как ты хочешь (С) ошибка происходит на строке Код: pascal 1. потому в консольном приложение eax будет пустым, и не от куда будет взять нижнюю ступень - AV проверяй Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 09:18 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
руки дошли сделать поиск в кодах среды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 09:50 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
руки дошли сделать поиск в кодах среды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 09:51 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Кукареку, var параметр, учи матчасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 10:18 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
kloun02, Спасибо КЭП! Куда мы без тебя. Весь мир пойдет по трантарары речь шла о том, что "SOFT FOR YOU" делал такую дичь Код: pascal 1. Что же ты ему не кинулся ошибку ЕГО то показывать? за то решил показать свой тугенький ум на мне ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 10:59 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Кукарекуkloun02, Спасибо КЭП! Куда мы без тебя. Весь мир пойдет по трантарары речь шла о том, что "SOFT FOR YOU" делал такую дичь Код: pascal 1. Что же ты ему не кинулся ошибку ЕГО то показывать? за то решил показать свой тугенький ум на мне )))Нет, эту дичь делал ты, исключительно. В коде мегаотца все было в пределах нормы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:23 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
чччД__ CreateProcess function Как бы толстый намёкThe calling thread can use the WaitForInputIdle function to wait until the new process has finished its initialization and is waiting for user input with no input pending. This can be useful for synchronization between parent and child processes, because CreateProcess returns without waiting for the new process to finish its initialization. For example, the creating process would use WaitForInputIdle before trying to find a window associated with the new process. Только учти, что WaitForInputIdle применительно к cmd.exe приложения тебе не поможет: Ибо...If this process is a console application or does not have a message queue, WaitForInputIdle returns immediately... Ибо приложение cmd.exe не использует очередь сообщений. Для console application мы же вполне может ридерект StdInput, StdOutput использовать. Нельзя ли как-то к ним привязаться? Например, cmd.exe ждет ввода в StdInput, значит проинициализировалась. Но вообще, задача топикстартера выглядит как-то диковато. Лично я, в свое время, наоборот рисовал свое окошко и направлял туда вывод консольных приложений, что бы выглядело более-менее "прилично" и вывод внешнего приложения не выпадал из дизайна. Алоцировать консоль, что бы туда что-то выводить.... Мне не очень понятно. А особенно, с такими мучениями и "кривостями" как воровство чужой консоли ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:38 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
kloun02Нет, эту дичь делал ты, исключительно. В коде мегаотца все было в пределах нормы. Ты просто слепой - как котенок, который появился только что на свет. Защищаешь его, думая что он властелин кода - говно кода Вот его сообщения, где он делал эту дичь SOFT FOR YOUСтал тестировать на Windows иногда (при некоторых стартах) возникает ошибка System Error. Code 6. Неверный дескриптор Может на Windows X тоже бывает ошибка, но повторить не успел Ошибка возникает здесь: Код: pascal 1. Причём в обоих случаях, как в рабочем случае, так и в нерабочем, GetStdHandle(STD_OUTPUT_HANDLE) возвращает 7 У кого какие идеи, как это можно исправить? Возникает ощущение, что STD_OUTPUT_HANDLE не успевает приаттачиться к консоли С другой стороны все функции типа GetConsoleScreenBufferInfo/SetConsoleCursorPosition/GetLargestConsoleWindowSize - отрабатывают корректно SOFT FOR YOUУдивительно Вот такой обрабатывается нормально: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. А если сделать Sleep(1) - то второй цикл становится бесконечным Ну и как это решить? Увеличить Sleep не предлагать. Должно быть какое-то здоровое решение и если после этого ты продолжишь гнуть свою палку, то ты просто его попа лиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:49 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Я бы такого работника SOFT FOR YOU , сразу уволил после такого кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:54 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
КукарекуВот его сообщения, где он делал эту дичь Слушай, что я тебе скажу, птичка..(с) Я видел весь код этого топика, и указал тебе твои пробелы в знаниях 21478186 Тебе бы вместо разбрасывания соплей по форуму, взять бы да попробовать скомпилить его код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:56 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
И вот, что бы сразу все вопросы отпали. Типа - мол есть какая то проверка на nil указатель (от куда бы ему взяться ? И все равно бы не помогло) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:57 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
kloun02, Все. Ты его попа лиз. Официально заявлено и подтверждено ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:58 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Кукарекуkloun02, Все. Ты его попа лиз. Официально заявлено и подтверждено !Болезный на вот тебе Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 12:04 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Кукареку, Ты заколебал Leonid Kudryavtsev, Я не против других решений Задача - аллоцировать невидимую консоль All, Можно почитать и вдохновиться. Я пока повременю :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 12:22 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Кукареку, жду официальных опровержений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 12:44 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUА тебя не наталкивает на какую-то мысль, что ты при таком раскладе ловишь AV, а я нет? ;)Справедливости ради lpNumberOfCharsWritten [ out ] A pointer to a variable that receives the number of characters actually written.Про optional ничего нет, хотя MS обычно о таких вещах пишет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 12:51 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev...Лично я, в свое время, наоборот рисовал свое окошко и направлял туда вывод консольных приложений, что бы выглядело более-менее "прилично" и вывод внешнего приложения не выпадал из дизайна. ... +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 15:47 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Передача (nil)^ в var-параметр - хоть и смахивает на хак, но работает корректно. Компилятор не вычисляет это выражение, а сразу пишет 0: Код: pascal 1. 2. 3. 4. 5. 6. Код: sql 1. 2. 3. 4. НО ! Это подходит только для необязательных var параметров (те, которые предварительно проверяются как указатели - через @param для функций Delphi или объявлены указателями для импортированных функций). Как только функция попытается использовать значение параметра - случится бадабум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2018, 11:28 |
|
||
|
CreateProcess-аналог AllocConsole
|
|||
|---|---|---|---|
|
#18+
Василий 2 НО ! Это подходит только для необязательных var параметров (те, которые предварительно проверяются как указатели - через @param для функций Delphi или объявлены указателями для импортированных функций). Как только функция попытается использовать значение параметра - случится бадабум. ...или те, которые не используются при некоторых условиях. Например, вот такая конструкция также будет работать: Move(Src, (nil)^, 0); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2018, 11:30 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2040748]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
143ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 582ms |

| 0 / 0 |
