|
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
|
|
Как определить абсолютный адрес каталога /WINDOWS/?30.05.2017, 08:44. Показов 2821. Ответов 17
Метки нет (Все метки)
На компьютере имеется несколько операционных систем Windows, как программно можно узнать текущую OS и абсолютный адрес её каталога /WINDOWS/ ?
0
|
|
| 30.05.2017, 08:44 | |
|
Ответы с готовыми решениями:
17
Как преобразовать относительный адрес файла в абсолютный? Как сделать массив-указатель на абсолютный адрес в FLASH? Возможно ли в методе server.transfer использовать абсолютный адрес URL и как? |
|
Ушел с форума
|
|
| 30.05.2017, 08:55 | |
|
SHGetKnownFolderPath + FOLDERID_Windows или SHGetFolderPath + CSIDL_WINDOWS.
1
|
|
|
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
|
|||||||||||||||||||||||
| 31.05.2017, 11:31 [ТС] | |||||||||||||||||||||||
E2238 Multiple declaration for 'FOLDELSETTINGS' E2238 Multiple declaration for 'DESKBANDINFO' ... и ссылка на файл shlobj.h Добавлено через 12 часов 22 минуты В shlobj.h на строке 115 есть подключение заголовочного файла shobjidl.h Добавлено через 2 часа 52 минуты Убежденный, Спасибо за имя функции. Пришлось с бубном потанцевать. Конфликт этих sh***.h с vcl.h, жаль, что у Борланда нет своих функций. Если кому интересно, то:
1
|
|||||||||||||||||||||||
|
|
|||
| 02.06.2017, 20:46 | |||
1
|
|||
|
Ушел с форума
|
||
| 02.06.2017, 23:01 | ||
|
М-м... Любопытная информация, никогда с такой настройкой не сталкивался.
Очень хочу либо подтвердить, либо опровергнуть (ибо работаю с кодом, где SHGetFolderPath много где используется). Не подскажешь подробнее, что за настройки такие и где/как их включить? О результатах обещаю подробно написать. контекст системной учетки... Должен быть простой и верный путь.
0
|
||
|
|
||||||||||||||||||||||||||
| 03.06.2017, 04:29 | ||||||||||||||||||||||||||
|
Инструкция для Windows 2000 (и скорее всего 2003) Server 1. Заходишь в Панель управления\Программы\Программы и компоненты => Установка компонентов. 2. В компонентах => если стоит галочка на "Службы терминалов", то снимаешь её, удаляешь компонент, перезагружаешься. 3. Снова сюда заходишь, ставишь галочку на "Службы терминалов", Далее, появится ещё окно => выбираешь вариант "Режим сервера приложений" => дальше не важно, любые опции, ставишь, перезагружаешься. Открываешь ком. строку, проверяешь:
Если это не так, применяешь команду:
Чтобы вернуть дефолтовое поведение, выполняешь команду:
Выполни только 1-ю часть этого руководства: http://ps523.ru/installing-terminal-server/ После перезагрузки, можешь проверять. Также см. описанные мною выше команды ком. строки. Они здесь тоже применимы (при запуске с повышенными привилегиями). Мною проверено такое поведение в системах Windows 2000 Server и Windows Server 2008 R2. Путь %userprofile%\windows выдают все 3 функции:
Но, я предлагал другое: прочитать значение переменной %SystemRoot% из параметра реестра, откуда система сама должна брать его значение. Вообще, это довольно интересная и необычная тема, по которой я никак не допишу статью. Дело в том, что по-умолчанию, значения переменных окружения для контекста системы берутся из-под ключа:
P.S. Раскрывать SystemRoot через ExpandEnvironmentStrings принципиально не предлагаю, т.к. такое приложение можно было бы легко "сломать", перезаписав значение перед запуском процесса, который её унаследует, хотя бы через туже ком. строку:
2
|
||||||||||||||||||||||||||
|
Ушел с форума
|
|||
| 03.06.2017, 09:02 | |||
|
--- Все это пока выглядит очень подозрительно для меня, ибо написал уже немало программ и компонентов, которые работают на сервере терминалов (от Srv2003 до Srv2012R2 включительно), нигде такого поведения не видел (ну или до этого дня не обращал внимания). В любом случае, большое спасибо, как появится время - обязательно проверю все это и отпишусь. Попробуй поищи ее с помощью WinObj (Sysinternals), это же просто символьная ссылка...
0
|
|||
|
|
||||||||
| 03.06.2017, 13:57 | ||||||||
|
Убежденный, ну да, это жесткий фейл с моей стороны. Оказывается бага проявляется только из-под рантайма VB6 и дельфи.
Из C++ попробовал такой код: Кликните здесь для просмотра всего текста
Вывод нормальный:
2
|
||||||||
|
Ушел с форума
|
||
| 04.06.2017, 08:59 | ||
|
Функции-то одни и те же (я имею в виду Win32 API). Что это тогда? Виртуализация системы (а-ля Registry Redirector / File Redirector)?
0
|
||
|
|
||
| 04.06.2017, 16:44 | ||
|
Я бы мог согрешить на какой-нибудь Compatiblity shim, но у меня всё собрано как положено с манифестом совместимости.
Есть предположение, что система подменяет функции, когда по неизвестным мне принципам находит в приложении некую несовместимость, точно так же как если бы мы пытались проверить версию системы через чтение:
Вот EXE-шник VB6 с сорцами, оконный аналог сишного кода. Можешь попробовать отдебажить. Собранного Дельфи нет, но например, AVZ от Зайцева этой же бедой страдает.
0
|
||
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
||||||||
| 04.06.2017, 20:43 | ||||||||
|
Dragokas, спасибо, полезная информация.
Добавлено через 6 минут GetSystemWindowsDirectory
2
|
||||||||
|
Ушел с форума
|
||||
| 05.06.2017, 08:55 | ||||
|
GetWindowsDirectory function https://msdn.microsoft.com/ru-... s.85).aspx
Ибо MSDN пишет, что "This function is provided primarily for compatibility.Applications should store code in the Program Files folder and persistent data in the Application Data folder in the user's profile. For more information, see ShGetFolderPath". jupman, ты не мог бы проверить поведение SHGetKnownFolderPath/SHGetFolderPath у себя? При условии, что у приложения есть манифест и флаг IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER _AWARE в заголовке PE?..
2
|
||||
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
|
| 05.06.2017, 09:28 | |
|
0
|
|
| 05.06.2017, 09:32 | |
|
Не по теме: Спасибо. Я сейчас в отпуске и нет возможности проверить. Хотя очень хочется :)
0
|
|
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
||||
| 05.06.2017, 14:24 | ||||
|
Убежденный, тестировал на Windows Server 2008 X64 SP2.
С манифестом и при установленном флаге (IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVE R_AWARE):
Добавлено через 9 минут Добавлено через 1 час 11 минут
2
|
||||
|
|
|||
| 05.06.2017, 15:35 | |||
|
jupman, спасибо за исследование. Весьма полезная инфа. Теперь буду использовать GetSystemWindowsDirectory().
Выходит, что некоторые версии студии по-умолчанию собирают бинарь без флага IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER _AWARE ? Теперь вопрос, как правильно собрать (пропатчить?) бинарь для добавления ему совместимости с TS, если компилятор (VB6, Delphi(?)) не имеет такой явной опции. Безопасно ли просто добавить флаг к DllCharacteristics? Вот здесь комментатор пишет: https://blogs.msdn.microsoft.c... 0/?p=45581
Добавлено через 9 минут А вот собственно и список вещей, на которые влияет Remote Desktop Services Application Compatibility layer: https://msdn.microsoft.com/en-... s.85).aspx
1
|
|||
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
||||
| 05.06.2017, 17:55 | ||||
|
0
|
||||
|
Ушел с форума
|
||||
| 05.06.2017, 23:28 | ||||
|
Не по теме:
Так можно и совсем "остыть" к программированию, а в нашей профессии это равносильно смерти... Так что мне полагается банька, озеро, шашлычок, свежий воздух и приятная компания :) ?
1
|
||||
| 05.06.2017, 23:28 | |
|
Помогаю со студенческими работами здесь
18
Найти абсолютный адрес байта Определить IP-адрес PPTP-адаптера под Windows?
Адрес/путь окна каталога Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|