|
|
|
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 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39657369&tid=2040748]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
183ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 551ms |

| 0 / 0 |
