|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|||||||||||
Обращение к другому рабочему столу20.10.2011, 16:47. Показов 3392. Ответов 8
Метки нет (Все метки)
Приветствую.
Знаете окошко Unlock Computer? Оно появляется после нажатия Ctrl + Alt + Del Enter. Окошко хорошее, да вот только одна проблемка - заслоняет оно фоту девушки прям по центру - не дело Решил его сдвинуть.По простому FindWindow не получилось. После выяснений узнал, что оно находится на другом рабочем столе - WinSta0Winlogon. Притом, чтобы обратиться к этому рабочему столу необходимо запускать свое приложение как службу. Ну да ладно - не беда. Поставил nnCron и через него запустил. Но все равно, толка никакого. На рабочий стол другой переходить не хочет. Код следующий:
Аналогичная программа, написанная на C сидящим рядом со мной человеком работает без проблем:
Когда делаю проверку на ошибки, то вижу, что в STD (STD = SetThreadDesktop(Desktop)) кладется ноль, соответственно функция выполнилась неправильно, судя по MSDN (If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError). Однако GetLastError тоже возвращает ноль! В чем моя ошибка?
0
|
|||||||||||
| 20.10.2011, 16:47 | |
|
Ответы с готовыми решениями:
8
Путь к рабочему столу Путь к рабочему столу Альтернатива рабочему столу |
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
| 20.10.2011, 17:00 [ТС] | |
|
Извиняюсь, опечатался.
Вместо Desktop = OpenDesktop("[bold]default[/bold] ", 0, False, GENERIC_ALL) на самом деле там Desktop = OpenDesktop("[bold]Winlogon[/bold] ", 0, False, GENERIC_ALL). Это уже потом после неудачи просто тестировали.
0
|
|
|
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
|
|
| 23.10.2011, 08:44 | |
|
НЕмного не по теме
) Можно открыть девушку в фотошопе и сдвинуть ее чуть в право или влево )
0
|
|
|
Messir
|
||
| 23.10.2011, 12:56 | ||
![]() Да и какие-нибудь важные части тела терять не хочется... |
||
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
||
| 23.10.2011, 12:57 [ТС] | ||
и так, еще немного размышлений. Хотел еще в пятницу запостить, да времени не было ![]() Посидели мы часик с Comanche в аське и вот что поняли... Во-первых, ошибка действительно есть, но VB ее НЕ видит (в GetLastError). При помощи отладчика человек выловил, что ошибка появляется 170-я: 170 The requested resource is in use. ERROR_BUSY. Стали рыть дальше. Нашли следующее... "error code 170 means that your application still has opened windows/hooks on its previous desktop, a simple solution is to call SetThreadDesktop as early as possible, in the constructor of your app class, for example." И были удивлены - как это так... В программе нет НИ ОДНОЙ формы, а написано про какие-то окна и хуки. Думали, что может все-таки ошибка в правах доступа. Попробовали MAXIMUM_ALLOWED вместо GENERIC_ALL. Никакого результата. Стали искать скрытые окна.... и нашли две штуки... VBMsoStdCompMgr и ThunderRT6Main. После рытья в MSDN оказалось, что VB для любого проекта создает по два скрытых окна, необходимых для отлова виндовых сообщений: "VBFocusRT6 and VBMsoStdCompMgr are hWnds created by the Visual Basic runtime for Microsoft-proprietary Windows Messages related to the operation of the runtime. They cannot be removed, but receive very few messages anyways. ThunderRT6Main is the "parent" hWnd -- if a Visual Basic form existed, this hWnd would pass messages from the other two proprietary hWnds to the forms (and trap some that forms shouldn''t get). These three hWnds cannot be removed and do not provide any performance bottlenecks." Кильнуть их нельзя, т.к. без них ничего работать не будет. На другой десктоп их тоже нельзя перенести. В результате пришли к выводу, что на VB это можно сделать только путем мультитрединга, т.к. первый тред изначально является неподходящим, т.к. в нём изначально ("автоматом") уже есть те самые два скрытых окна. Будем надеяться, что эта информация кому-нибудь пригодится ![]() [italic]С уважением, Alexey Spirin & Comanche.[/italic]
0
|
||
|
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
|
|
| 23.10.2011, 15:23 | |
|
а флажок Unattended Execution не пробовали на своем экзешничке без формочек ставить?
0
|
|
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
| 23.10.2011, 16:04 [ТС] | |
|
Попробовал. Не помогает
0
|
|
|
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
|
|
| 23.10.2011, 16:54 | |
|
видно VB для таких низкоуровневых вещей не совсем подходит
0
|
|
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
| 23.10.2011, 17:14 [ТС] | |
|
ну по всей видимости да... )
Вот думаю может мультитредингом попробовтаь заняться в свободное время... )
0
|
|
| 23.10.2011, 17:14 | |
|
Помогаю со студенческими работами здесь
9
Доступ к Рабочему столу
Подключением к удаленному рабочему столу Перемещение грида по рабочему столу Поиск пути к рабочему столу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает
Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|