папка десктоп | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Несколько раз в разных задачах приходилось
писать на десктоп. Приходилось подбирать координаты папки в зависимости от версии и языка виндов. Сейчас снова нужно написать нечто. Но в силу работы по удаленке не могу залезь на компьютер пользователя В принципе функция getdir с нужными аргументами позволяет увидеть в списке и десктоп В старых программах так и делал. Позволял кнопкой выбрать десктоп. Но такая кнопка рассчитана на квалифицированного пользователя. В новой работе надежды на такое нет. И так вопрос, как проще всего определить десктоп независимо от версии виндов. Это не всегда верно windows10i.ru Исправлено 1 раз(а). Последнее : boba, 06.06.20 21:09 ![]() |
Re: папка десктоп | |
---|---|
_vit Сообщений: 5243 Дата регистрации: 29.07.2002 |
Как вариант.
Но в локализованных версиях видимо надо соответсвующее название папки подставлять что не есть гуд. Исправлено 1 раз(а). Последнее : _vit, 06.06.20 23:19 ![]() |
Re: папка десктоп | |
---|---|
_vit Сообщений: 5243 Дата регистрации: 29.07.2002 |
Еще вариант нашел. но он кажется только начиная с Висты работает.
Исправлено 1 раз(а). Последнее : _vit, 06.06.20 23:29 ![]() |
Re: папка десктоп | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Спасибо
Знать бы, есть ли на компе Wscript.Shell Сейчас второй вариант посмотрю ![]() |
Re: папка десктоп | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Это ничего не вернуло
?getKnownFolderPath('Desktop') ?getKnownFolderPath('Desktop','') Понятия не имею, русские ли там винды Наверное нужно какой-то перебор вариантов делать Посмотрел свои старые решения на этот счет, тоже методом тыка у меня дома ?DIRECTORY("C:\Users\"+alltrim(SUBSTR(SYS(0),AT('#',SYS(0))+1))+"\Desktop") дает ложь Это LOCAL lObjShell, lStrPath lObjShell = Createobject("Wscript.Shell") lStrPath = lObjShell.SpecialFolders("Desktop") ? lStrPath дает c:\users\пк\desktop Исправлено 2 раз(а). Последнее : boba, 07.06.20 09:12 ![]() |
Re: папка десктоп | |
---|---|
_vit Сообщений: 5243 Дата регистрации: 29.07.2002 |
Надо использовать в качестве параметра не имя папки а идентификатор. ? GetKnownFolderPath(k_FID_DESKTOP) если пробуешь пример один к одному или ? GetKnownFolderPath("{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}") ![]() |
Re: папка десктоп | |
---|---|
ssa Сообщений: 13086 Откуда: Москва Дата регистрации: 23.03.2005 |
1. Юзерские профили не обязаны быть на диске С:. 2. Самый простой вариант
------------------ Лень - это неосознанная мудрость. Исправлено 1 раз(а). Последнее : ssa, 07.06.20 14:31 ![]() |
Re: папка десктоп | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
До того была АПИ функция SHGetFolderLocation. ------------------ WBR, Igor ![]() |
Re: папка десктоп | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Равно и имя папки не обязано быть desktop - на локализованной версии ОС оно таковым и не будет. Следует то или иное АПИ использовать. ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 07.06.20 15:45 ![]() |
Re: папка десктоп | |
---|---|
_vit Сообщений: 5243 Дата регистрации: 29.07.2002 |
И SHGetSpecialFolderPath. Но они обе устаревшие и не рекомендуются к использованию. Хотя обе работают и на десятке.
![]() |
Re: папка десктоп | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Спасибо ребята
Все работает Еще до кучи При переносе ярлыка на десктоп с эталонного нужно слегка изменить его свойства в зависимости от пользователя После названия exe в ярлыке поменять там фамилию lobj = createobject('wscript.shell') имеет метод createshotcut А как влезь в уже созданный простым копирование на десктоп эталонного? Что -то не вижу ни методов ни свойств ![]() |
Re: папка десктоп | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Этот же метод работает и с существующимя ярлыками (просто передай путь и имя существующего lnk файла) - позволяя поменять их свойства и сделать Save() ------------------ WBR, Igor ![]() |
Re: папка десктоп | |
---|---|
ssa Сообщений: 13086 Откуда: Москва Дата регистрации: 23.03.2005 |
На локализованной ОС папка все равно desktop. Только эксплорер её на лету локализует. ------------------ Лень - это неосознанная мудрость. ![]() |
Re: папка десктоп | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Дополню, поясню Игоря. Просто название метода сбивает. На самом деле он и создает, и изменяет. И Сергея. Полагаю он на 100% прав. Где бы ни делал. Ссылка на десктоп работает. ![]() |
Re: папка десктоп | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Спасибо, все сделал
![]() |
Re: папка десктоп | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Лень проверять (тем более я никогда не пользовался русскими версиями WinXP, и образ надо где-то искать), но мне помнится что на русском WindowsXP папка таки называлась "Рабочий стол". Вот на английской WindowsXP с установленным русским MUI - да, был Desktop - и только проводник показывал алиас посредством записей в desktop.ini файле (в такой редакции ОС можно было динамически менять "язык интерфейса"). Кроме того, папка может быть перемещена утилитами типа PowerToys или же [доменными] политиками. Я даже не уверен что во всех нештатных случаях поможет определение пути через АПИ/скрипт-шелл.
------------------ WBR, Igor ![]() |
Re: папка десктоп | |
---|---|
lulgu Автор Сообщений: 1838 Дата регистрации: 30.11.2016 |
Метод CreateShotcut ничего не изменяет, он создает объект. ![]() |
© 2000-2025 Fox Club  |