|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
POP3 клиента оформил как отдельный exe: подключился, проверил, скачал, отключился. Офомил сию cmd-utility как WinForm без Form1. Т.е. есть модуль, в нем есть main(args) и усе (как привык делать в VB6). Подключил к проекту, работает все как часики. Есть проблема. При запуске утилити под current юзером (примерно раз в 20 секунд по имеющейся логике) на экране появляются курсор мыши "песочные часики" (кружочек на 8-ке). Это доставляет (вирусня так себя ведет обычно). Можно это как-то побороть? Переделать в "консоль" м.б.? Или можно по другому, без переделки? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 20:33 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Ну, консольное приложение решает проблему. Мышь не кобасит. Пофиг, все равно hide запускается. Application.StartupPath только пришлось заменять. My.Application.Info.DirectoryPath это точный эквивалент (для VB)? Последнее вроде работает и в WinForm и в Console. А от чего это зависит ("мышь-часики" при работе проги)? В неконсольном никак нельзя убрать? Мне от консоли в большинстве случаев не жарко ни холодно. А в ряде случаев она вредна. Например если GUI нет но MsgBox-ы допустимы, чтоб юзера о чем-то проинформировать. Если Hide, то и Msgbox-ы будут Hide, а если не Hide то консоль вылезет на экран. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 23:05 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77POP3 клиента оформил как отдельный exe: подключился, проверил, скачал, отключился. Офомил сию cmd-utility как WinForm без Form1. Т.е. есть модуль, в нем есть main(args) и усе (как привык делать в VB6). Подключил к проекту, работает все как часики. Есть проблема. При запуске утилити под current юзером (примерно раз в 20 секунд по имеющейся логике) на экране появляются курсор мыши "песочные часики" (кружочек на 8-ке). Это доставляет (вирусня так себя ведет обычно). Можно это как-то побороть? Переделать в "консоль" м.б.? Или можно по другому, без переделки? Можно. Если wait курсору присвоить значение текущего на старте ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 23:54 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Arm79Можно. Если wait курсору присвоить значение текущего на старте А как предлагаешь это сделать? Cursors.WaitCursor = Cursors.Default, Cursors.WaitCursor = Cursor.Current -не катит, там же ReadOnly UseWaitCursor только может заставить его вообще не исчезать, в описанном случае он появляется сам. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 01:05 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77Arm79Можно. Если wait курсору присвоить значение текущего на старте А как предлагаешь это сделать? Cursors.WaitCursor = Cursors.Default, Cursors.WaitCursor = Cursor.Current -не катит, там же ReadOnly UseWaitCursor только может заставить его вообще не исчезать, в описанном случае он появляется сам.документацию по перечисленным свойствам почитайте ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 06:22 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
skyANA, у меня нет идей как сделать то что ты сказал. Если не жалко, напиши. Думаю это не больше двух строчек. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 06:43 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77, с телефона долго вставлять ссылку на документацию по Cursor.Current. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 06:45 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
skyANA, Если имел ввиду Cursor.Current=Cursors.Default в начале main() то это не помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 07:09 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Так тоже не помогает: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 07:56 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
А зачем проверку почты делать синхронной? Async/await/Task не спасает отцов русских демократий? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 09:41 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Arm79А зачем проверку почты делать синхронной? Async/await/Task не спасает отцов русских демократий? Какое это имеет отношение к общему вопросу о WinForm приложении без формы? В нем может быть что угодно, не обязательно почта. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 09:48 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77Arm79А зачем проверку почты делать синхронной? Async/await/Task не спасает отцов русских демократий? Какое это имеет отношение к общему вопросу о WinForm приложении без формы? В нем может быть что угодно, не обязательно почта. Вот я про все и говорю - запускайте в потоке, таске, асинхронно... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 10:08 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77Arm79А зачем проверку почты делать синхронной? Async/await/Task не спасает отцов русских демократий? Какое это имеет отношение к общему вопросу о WinForm приложении без формы? В нем может быть что угодно, не обязательно почта.а нам-то какое дело, людям, что не превращают библиотеки в "WinForm приложении без формы"? :) Сами придумали кривое решение, сами с ним и разбирайтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 08:45 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77Так тоже не помогает: за показ этого курсора вроде как отвечает запускающий, а не запускаемый процесс (STARTF_FORCEOFFFEEDBACK в стартапинфо ) если флаг не указывать - в запускаемом процессе курсор вернётся взад при первом же GetMessage ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 09:20 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
skyANAа нам-то какое дело, людям, что не превращают библиотеки в "WinForm приложении без формы"? :) Сами придумали кривое решение, сами с ним и разбирайтесь. Значит плохо знаете свой предмет: Шаблоны -> Visual Basic (C#) -> Windows -> Пустой проект (а потом посмотри какого "типа" это приложение в свойствах проекта) Хотя каюсь, я выбирал явно первый пункт, а потом удалял форму и "включать исполняющую среду". Но я думаю это тоже самое, на "пустом проекте" даже без кода в main() колесико-часики все равно крутится при старте. Это очень стандартная вещь. Нафига мне консоль если я туда ничего не ввожу и ничего там не читаю? В VB6 например штатно консольных приложений вообще нет. И нафига мне форма, если я не собираюсь ничего в ней показывать и ничего в нее вводить. Я так понимаю, сейчас ты спросишь нафига мне приложение которое ничего не показывает и ни о чем не спрашивает? И сразу сделаешь вывод что оно кривое. >а нам-то какое дело сами с ним и разбирайтесь ну если не знаешь, не интересно и не можешь подсказать, зачем чушь писать? да еще в таком стиле Я разобрался, здесь меня спасла консоль+ hide, консоль это в общем-то тоже стандартный ход. Но неплохо бы разобраться для "Пустой проект" ==== Изопропил, спасибо за мысль гляну позже >вроде как отвечает запускающий, а не запускаемый процесс честно, не уверен но только если просто тыкнуть в exe то будет тоже самое. при запуске "консоли" и при запуске аналогичных по структуре проектов VB6 "точно таким же образом" такого эффекта нет. Возможно это связано с механизмами .Net- "среды" для данного типа проектов. При одиночных, редких, стандартных запусках конечно это не напрягает, но не при Hide-запусках, когда я даже мышкой не щелкал. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 10:29 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
skyANA, хотя знаешь, немножко извини Дмитрий77Значит плохо знаете свой предмет: Шаблоны -> Visual Basic (C#) -> Windows -> Пустой проект. В VB.Net это будет Windows Form а в C# это будет на выбор Console либо "Приложение Windows". Ты же на C# пишешь, поэтому ты и вопроса не понял, и тебе это дикостью показалось. В C# возможно на "Приложение Windows" этого эффекта и нет вовсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 10:45 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77честно, не уверен попробуй документацию почитать ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 10:50 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Изопропил, ну я почитал, звучит то похоже. А как это протестировать? Я то обычно вызываю либо через VB-шный Shell, либо через Process.Start(ExecInfo) но это ShellExecute(Ex) а то о чем ты говоришь это CreateProcess, и я этим пользоваться не люблю. И потом в случае .Net "вызывающей" наверняка является .Net-среда, а не мое другое приложение. Мне то хочется что-то поменять в самом .exe а не ковыряться с вызывающим приложением. Вызывающее одинаково "вызывает" и консоль и WinForm (это с точки зрения вызывающего). А вот .Net который их реально вызывает, делает это точно по разному и с пристрастием. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 11:17 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77Я так понимаю, сейчас ты спросишь нафига мне приложение которое ничего не показывает и ни о чем не спрашивает? а действительно - нафига? оформи вин-сервис и никаких часиков :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 12:52 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77skyANAа нам-то какое дело, людям, что не превращают библиотеки в "WinForm приложении без формы"? :) Сами придумали кривое решение, сами с ним и разбирайтесь. Значит плохо знаете свой предмет: Шаблоны -> Visual Basic (C#) -> Windows...Есть такой шаблон как Class Library :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 13:11 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Шайтана действительно - нафига? оформи вин-сервис и никаких часиков :)Нафига? Консольное приложение + Windows Scheduler ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 13:30 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77а то о чем ты говоришь это CreateProcess, и я этим пользоваться не люблю. если нужно решить задачу - придётся полюбить Дмитрий77И потом в случае .Net "вызывающей" наверняка является .Net-среда, а не мое другое приложение. ещё четверг и пятница - ты ж любитель API - вызывай (никто не мешает посмотреть исходники среды) Дмитрий77Мне то хочется что-то поменять в самом .exe а не ковыряться с вызывающим приложением. GetMessage нужно вызвать максимально быстро после старта(так как очередь может быть пустой - положить в неё что либо PostMessage) ну или сходу быстро цикл обработки сообщений запустить(с невидимым окном. которое можно тут же закрыть) правда курсор всё равно моргнёт ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 14:50 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
А Cursor.Hide() не работает? Я сам не пробовал ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 16:42 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Cat2, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 17:13 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
ИзопропилCat2, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Возможно я не правильно понял, но вроде это для процесса, который создает окно. Впрочем я тоже за то, что бы - ШайтанДмитрий77Я так понимаю, сейчас ты спросишь нафига мне приложение которое ничего не показывает и ни о чем не спрашивает? а действительно - нафига? оформи вин-сервис и никаких часиков :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 18:35 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Cat2А Cursor.Hide() не работает? Нет, не помогает. Если например сделать Код: vbnet 1. 2. 3.
то по визуальным ощущениям "часики" мурыжатся еще до выполнения OK, так что код тут вообще ни причем. > Class Library :) >+ Windows Scheduler ну вы сами то не согласны что вы бред не относящийся к теме несете? >оформи вин-сервис и никаких часиков :) он оформлен, не для маленькой утилитки, а для проги в целом(которая эту утилитку например запускает) 2 режима работы: 1) как приложение 2) как сервис Естественно во втором случае никаких часиков нет, потому что System-другой аккаунт, об этом случае речь не идет. Изопропил, ты вот единственный кто возможно дело говорит. Доки что ты процитировал я читал. >если нужно решить задачу - придётся полюбить >ещё четверг и пятница - ты ж любитель API - вызывай (никто не мешает посмотреть исходники среды) трудозатратно, счас мозги больше в сторону POP-SSL и т.п. смотрят, это интереснее, надо допилить и довтыкать в проект Понимаешь еще, "извне" - это не решение. Ты затычку предлагаешь по любому. "Извне" я ее решил уже переделав в "консоль", и посылая "извне" HIDE. Это хорошее решение. Даже если твой совет с CreateProcess и работает, то это кривое решение, и явно уступает выбранному мной Console+Hide. Вопрос в другом. Просто жмем файл. Мышкой. И получаем "часики" пусть на секунду. Даже если main() пустая. Но консоль же не показывает "часики" (и где тут флаги?). М.б. в конфиге каком надо где чего поменять? Консоль же без часиков запускается. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 19:43 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Cat2Возможно я не правильно понял, но вроде это для процесса, который создает окно да именно так Дмитрий77Консоль же без часиков запускается. да. В заголовке exe файла не зря ж флажки присутствуют, которые задаются при сборке приложения (vbc) - Код: plaintext 1. 2. 3. 4. 5. 6.
как пишет MSDN - чтоб погасить часики, которые включил CreateProcess нужно или окно нарисовать или GetMessage вызвать. Попробуй на старте приложения максимально близко к точке входа сделать PostMessage и GetMessage Дмитрий77"Извне" я ее решил уже переделав в "консоль", и посылая "извне" HIDE. Это хорошее решение. Извращение, ибо для запуска без окна в CreateProcess нужно задать флаги StartupInfo.dwFlags = STARTF_USESHOWWINDOW; StartupInfo.wShowWindow = SW_HIDE; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 21:41 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77"Извне" я ее решил уже переделав в "консоль", и посылая "извне" HIDE. Это хорошее решение. Извращение, ибо для запуска без окна в CreateProcess нужно задать флаги StartupInfo.dwFlags = STARTF_USESHOWWINDOW; StartupInfo.wShowWindow = SW_HIDE; Не извращение, по сути я и делаю то что ты сказал, может не так выразился: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
либо например вот такой вариант иногда использую, если хочу дождаться завершения вызванной проги Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
По поводу часиков. У меня иногда используется некая KillProga Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Дизайн мой давай обсуждать не будем, я другое хочу сказать. Как не трудно догадаться из функции, она ловит "proga.exe" по окну так сказать. Дык вот Если proga.exe - это VB6-проект из одного модуля без форм, то она чудесно убивается через KillProga Если proga.exe - это VB.Net-проект из одного модуля без форм ( не консоль, а именно который мы тут обсуждаем ), то она ни фига не убивается через KillProga Если proga.exe - это .Net-проект "Консоль", то понятно что KillProga также его убивает стукнув по шапке консоли где отображается название exe. Отсюда вывод: VB6 таки создает какое-то окно, ну и соответственно "The system turns the feedback cursor off after the first call to GetMessage" и часиков типа нет. А VB.Net ничего подобного не делает, поэтому и часики заметны, и убить его за эти "уши" нельзя. Т.е. ну его нифик эти изыскания. Для указанного случая "Консольное приложение" запускаемое с AppWinStyle.HideProcess либо WindowStyle.Hidden (в зависимости от реализации) - вариант оптимальный. И кстати, я не знаю че там .Net творит с неконсольным, консоль в отличии от "Пустой проект" запускается мгновенно, что тоже хороший плюс. Возникает вопрос, а если мое приложение иногда выдает какие-то Msgbox то как быть, потому что при HideProcess/Hidden они тоже не выведутся на экран. Ну, тогда делать "Пустой проект" - который с часиками. Но в данном случае (какие-то msgbox), уже предполагается процесс взаимодействия с юзером, т.е. запуск идет как правило как ответ на то что пользователь что-то нажал мышкой или клавиатурой, а в этом случае кратковременное появление часиков разумно и не напрягает. Копать дальше эту тему считаю бессмысленной тратой времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2015, 16:28 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77Копать дальше эту тему считаю бессмысленной тратой времени. извини конечно, но процентов 95 твоих изысканий - бессмысленная трата времени Хотя если это хобби - почему бы и нет ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2015, 20:16 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Дмитрий77Дизайн мой давай обсуждать не будем, я другое хочу сказать. архитертура с несколькими процессами - нормально способ взаимодействия - негодный - это не обсуждение, а констатация факта ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2015, 20:29 |
|
Простое приложение без GUI выдает свою активность (песочные часики).
|
|||
---|---|---|---|
#18+
Изопропил, давай не будем,забей. Документация MSDN ссылку на которую ты дал, помогла косвенно понять причину "часиков". Спасибо. KillProga была написана лет 7 назад и я ее сейчас практически не использую, но то что она не убивает, говорит о том что нет окна и есть "часики" (для пустого .Net проекта, не консольного). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2015, 21:16 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1401509]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 167ms |
0 / 0 |