|
|
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Приложение запускается сервисом. Запрос GetUserName() к Windows возвращает строку "система", что верно. Это под моей Win7 Pro (rus). Подозреваю, что при работе с другими ОС (и языковыми настройками) значение будет иным. Вопрос: как достоверно определить, что программы работает именно под юзером "система"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 18:39 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
чччД__Подозреваю, что при работе с другими ОС (и языковыми настройками) значение будет инымПравильно подозреваешь чччД__Вопрос: как достоверно определить, что программы работает именно под юзером "система"?А тебе зачем? А если я создам пользователя ServiceRunner и буду все службы запускать от него - все пропало? Какая задача решается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 18:47 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_... чччД__Вопрос: как достоверно определить, что программы работает именно под юзером "система"?А тебе зачем? А если я создам пользователя ServiceRunner и буду все службы запускать от него - все пропало? Какая задача решается? 2. Ну, логи хочу в файлик направлять, а не в окошко. 1. Да, все пропало, выходит. Нужно как-то грамотно вычислить, что графическая подсистема недоступна, чтобы (см.2) 0. Можно, конечно, при запуске приложения сообщать ему, что "из-под сервиса", что ли (ключ в командной строке. например)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 18:54 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
чччД__Вопрос: как достоверно определить, что программы работает именно под юзером "система"? Ну, если не начинать дебаты "а назачем", то, например, GetUserNameEx(NameUniqueId). Можно пойти дальше до https://stackoverflow.com/questions/251248/how-can-i-get-the-sid-of-the-current-windows-account Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 18:58 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
18.06.2018 18:54, чччД__ пишет: > 2. Ну, логи хочу в файлик направлять, а не в окошко. вот до чего доводит отсутствие контрацепции при общении с "великим оптимизатором"... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 19:11 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Ну можешь проверять кто запустил (т.е. породивший процесс, а не юзернейм). Хотя и это не 100%, наверное. чччД> 2. Ну, логи хочу в файлик направлять, а не в окошко. Всегда направляй в файл, а в GUI-варианте форма пусть просто читает из соотв. файла. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 19:18 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам... Всегда направляй в файл, а в GUI-варианте форма пусть просто читает из соотв. файла. ...надо сперва узнать, какой вариант использовать - gui или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 19:26 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
чччД__....надо сперва узнать, какой вариант использовать - gui или нет. Можно попробовать сначала GetProcessWindowStation(), а потом GetUserObjectInformation(UOI_FLAGS) и проверять WSF_VISIBLE. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 19:28 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
чччД> ...надо сперва узнать, какой вариант использовать - gui или нет. Не надо. Всегда в файл, а в GUI-варианте юзер откроет форму. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 19:29 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийвот до чего доводит отсутствие контрацепции при общении с "великим оптимизатором"... бгг, про него же подумал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2018, 20:55 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
чччД__, в win7 и выше сервис не может взаимодействовать с рабочим столом. Соответственно, не нужно определять под кем работает приложение. Нужно определить, запущено приложение как сервис или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 09:19 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
goldmi45чччД__, в win7 и выше сервис не может взаимодействовать с рабочим столом. Соответственно, не нужно определять под кем работает приложение. Нужно определить, запущено приложение как сервис или нет. хм, не вникал глубоко но, ради истины, например, одна из программ Руссиновича вполне позволяет это сделать: Код: plaintext хотя конечно это не гуд, сервисы не должны использовать гуи без крайне крайней необходимости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 09:29 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
goldmi45, kealon(Ruslan), - и откуда вы, такие умные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 09:44 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
чччД__, По идее можно посмотреть имя процесса-родителя. Если это services.exe - то мы в режиме сервиса. Сервисы в системе запускает имено он. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 11:38 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
чччД__Нужно как-то грамотно вычислить, что графическая подсистема недоступна, чтобы (см.2)Вот с этого и начинай. Попробуй так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 11:45 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
DarkMaster> По идее можно посмотреть имя процесса-родителя. DarkMaster> Если это services.exe - то мы в режиме сервиса. Я это ему выше и подсказал. Но он, редиска, поиздеваться любит. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:12 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Я для этой цели такую портянку когда-то написал. Мне помогло: Код: 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. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:13 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Проктостоматологи. То, что приложение запущено из сервиса, не означает невозможности вывести пользователю сообщение - сервис мог подключиться к оконной станции пользователя. То, что приложение запущено не из сервиса, не означает возможности вывести пользователю сообщение - опять же можно создать левую оконную станцию. По моим ссылкам выше всё описано. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:18 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
YuRock Код: pascal 1. 2. 3. 4. 5. _Vasilisk_А если я создам пользователя ServiceRunner и буду все службы запускать от него - все пропало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:19 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТо, что приложение запущено из сервиса, не означает невозможности вывести пользователю сообщение - сервис мог подключиться к оконной станции пользователя.Именно. Поэтому я решаю проблему именно доступности GUI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:21 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_А если я создам пользователя ServiceRunner и буду все службы запускать от него - все пропало? Не знаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:22 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамчччД> ...надо сперва узнать, какой вариант использовать - gui или нет. Не надо. Всегда в файл, а в GUI-варианте юзер откроет форму. Во-первых, переделывать не хочется и все давно работает. Во-вторых, сие лишь частный случай. Например, сервис стартует мое приложение, которое генерит MS Excel файлы. Раньше ("в соответствии с ТЗ") созданные файлы "автоматически" открывались в приложении, ассоциированном с .xls/.xlsx. Теперь, если их открыть, иксель/опенофис/... просто будет висеть в процессах, никто созданную красоту не увидит. В-третьих, да, может и не из-под сервиса. Т.е., все же чччД__...Нужно как-то грамотно вычислить, что графическая подсистема недоступна... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:30 |
|
||
|
Имя пользователя при запуске приложения сервисом
|
|||
|---|---|---|---|
|
#18+
Ну тогда вон Василиск тебе выше подсказал. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:44 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2040730]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 491ms |

| 0 / 0 |
