Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 5

Узнать адрес Рабочего стола

21.02.2010, 23:56. Показов 4986. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго вечера!
Я начинающий программист под линукс(хочется верить)
Такая проблема:
Мне надо под линксом создать ярлык от firefox на рабочем столе, прикрепить какую-нибудь другую иконку к нему ну естественно программно.
Но:
1. как узнать адресс рабочего стола
2. как к ссылке прилепить иконку

Буду очень благодарен за помощь!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2010, 23:56
Ответы с готовыми решениями:

HTML фон рабочего стола Windows
    Здравствуйте. Не знаю, в правильном месте я задаю вопрос или нет. Хочу сделать приложение для Windows, которое заменяет фон...

Удалённый просмотр рабочего стола (клиент-сервер)
Добрый день. Нужно написать программу для демонстрации рабочего стола. В окне серверной версии должно отображаться всё, что происходит на...

Как узнать свой внешний ip адрес?
Всем привет!!! Подскажите как можно узнать ip адрес компьютера который в данный момент подключён к Интернету даже если через прокси, и...

10
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
22.02.2010, 00:18
Цитата Сообщение от sechenov.andrey Посмотреть сообщение
1. как узнать адресс рабочего стола
C++
1
QString desktop = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
Цитата Сообщение от sechenov.andrey Посмотреть сообщение
2. как к ссылке прилепить иконку
ярлыки на рабочем столе это не симлинки, которые обычно используются в ФС. это текстовые файлы, некой, утвержденной структуры.
пример:
#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Icon[ru_RU]=anjuta
Name[ru_RU]=test
Exec=/home/nixman/eclipse/eclipse
Comment[ru_RU]=примечание
Name=test
Comment=примечание
Icon=anjuta
где:
test - имя ярлыка.
anjuta - имя иконки.
примечание - примечание.
1
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 5
22.02.2010, 01:06  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
ярлыки на рабочем столе это не симлинки, которые обычно используются в ФС. это текстовые файлы, некой, утвержденной структуры.
Тогда должно быть встроенное средство для их создания?!
И еще, как узнать местоположение установленного пакета?
Я так понимаю без Qt (или вообще голым линуксом) это быдет довольно проблематично сделать?
Будет ли такой ЯРЛЫК работать в GNOME или Qt правильно работает только с KDE,стандартное ли это средство (Ярлык конечно) для X Windows?
Где хранится информация о месте рабочего стола об пакетах и т.д. я так понимаю это что-то вроде реестра в XML-ках.
Или может посоветуете где про все это можно почитать.
Просто в Gconf я поискал "Рабочий стол" и не нашел.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
22.02.2010, 10:10
Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Тогда должно быть встроенное средство для их создания?!
возможно. никогда не задавался этим вопросом.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
И еще, как узнать местоположение установленного пакета?
поясните, о каком пакете идет речь?

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Я так понимаю без Qt (или вообще голым линуксом) это быдет довольно проблематично сделать?
что "это" ?

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Будет ли такой ЯРЛЫК работать в GNOME или Qt правильно работает только с KDE
Qt по барабану, каким десктопом ты пользуешься. но правильней будет, просто сравнить содержимое ярлыка для гнома и кеда.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Где хранится информация о месте рабочего стола
где-то в переменных среды пользователя.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
об пакетах
нет стандартного способа. зависит от используемого менеджера пакетов.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Или может посоветуете где про все это можно почитать.
я не особо просветлен про работу с GUI/desktop, и всем в этом направлении. но Qt знаю весьма не плохо.
1
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 5
22.02.2010, 10:33  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
Цитата:
Сообщение от sechenov.andrey
Я так понимаю без Qt (или вообще голым линуксом) это быдет довольно проблематично сделать?
что "это" ?
Тут надо пояснить. Я раньше писал под Дос и Воидовс, так вот если не хочешь использовать MFC можешь пользоваться средствами WIN32API, получаешь ту же функциональность только сложнее в реализаци (а некоторые вещи даже проще). Например если программа без интерфейса пользователя то этот подход даже лучше.
Так вот возможна ли работа с X Windows без Qt или gtk. И насколько это сложней в реализации (например всеравно понадобиться библиотека для работы с XML где ее взять и т.д?!)

Цитата Сообщение от niXman Посмотреть сообщение
Цитата:
Сообщение от sechenov.andrey
Где хранится информация о месте рабочего стола
где-то в переменных среды пользователя.
Если речь идет о переменных окружения, то там такой информации нет.
Если речи идет о "Реестре" то я еще не разобрался с работой с ним. Хотя в Gconf-editor на поиск ставил и не нашел упоминание о рабочем столе.

Цитата Сообщение от niXman Посмотреть сообщение
Цитата:
Сообщение от sechenov.andrey
И еще, как узнать местоположение установленного пакета?
поясните, о каком пакете идет речь?
Это я неправильно задал вопрос. Я хотел чтобы это было так:
Как узнать установлена ли джанная программа, если да, то путь к ее исполняемому файлу.

Честно говоря, я хотел сделать этот ярлык средствами голого Линукса но теперь буду ставить Qt and GTK+ и буду разбираться в чем лучше писать. Кстати что же все-таки лучше и какие возможно есть еще средства.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
22.02.2010, 10:54
Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Так вот возможна ли работа с X Windows без Qt или gtk. И насколько это сложней в реализации
просто мега сложно. не нужно вам этого.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
например всеравно понадобиться библиотека для работы с XML где ее взять и т.д?!
для этого есть тонны библиотек. выбирайте подходящую. для НЕ гуишных прог, я использую libxml2. очень доволен.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Если речь идет о переменных окружения, то там такой информации нет.
с чего бы это? в никсах, все что необходимо для юзера, находится в его учетной записи.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Если речи идет о "Реестре"
в никсах нет такого понятия. да и сущности такой нет.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Хотя в Gconf-editor
хз что это такое.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Как узнать установлена ли джанная программа, если да, то путь к ее исполняемому файлу.
это вам не вендавз вы не можете установить программу куда вам захочется.
есть стандартный набор каталогов, каждый из которых является стандартным абсолютно на всех дистрибутивах linux и BSD.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Честно говоря, я хотел сделать этот ярлык средствами голого Линукса
и в чем проблема?
не вижу ничего, что бы требовало Qt или GTK. это реализуется голым Си.

Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Кстати что же все-таки лучше и какие возможно есть еще средства.
для чего?
1
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 5
22.02.2010, 11:33  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
Цитата:
Сообщение от sechenov.andrey
Честно говоря, я хотел сделать этот ярлык средствами голого Линукса
и в чем проблема?
не вижу ничего, что бы требовало Qt или GTK. это реализуется голым Си.
В голом Си я не смог найти адрес рабочего стола а текст по шаблону, для получения ярлыка, сделать конечно проблем нет.





Цитата Сообщение от niXman Посмотреть сообщение
Цитата:
Сообщение от sechenov.andrey
Хотя в Gconf-editor
хз что это такое.
В какм-то ресурсе в интернете gconf назвали аналогом "Реестра" вроде как он храниться в нескольких XML файлах (если я ничего не путаю конечно). программа для его просмотра Gconf-editor (пробовал в UBUNTU).

[quote=niXman;561151]Цитата:
Сообщение от sechenov.andrey
Как узнать установлена ли джанная программа, если да, то путь к ее исполняемому файлу.
это вам не вендавз вы не можете установить программу куда вам захочется.
есть стандартный набор каталогов, каждый из которых является стандартным абсолютно на всех дистрибутивах linux и BSD[/quote

Прсто я где-то встречал, что программы пользователь устанавиваются в /usr/local/bin а в /usr/bin программы пользователь, являющиеся частью операционной системы, так вот у меня firefox в /usr/bin, хотя конечно он шел вмечте с дистрибутивом ubuntu 9.10. Просто хочется конкретно знать, потому что по идее он должен быть в /usr/local/bin
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
22.02.2010, 11:41
Цитата Сообщение от sechenov.andrey Посмотреть сообщение
В голом Си я не смог найти адрес рабочего стола
естественно. потому как вы изначально в неверном направлении пошли.

а ответил я, как это реализовать при помощи Qt, потому что тема в разделе Qt.


Цитата Сообщение от sechenov.andrey Посмотреть сообщение
Прсто я где-то встречал, что программы пользователь устанавиваются в /usr/local/bin а в /usr/bin программы пользователь, являющиеся частью операционной системы, так вот у меня firefox в /usr/bin, хотя конечно он шел вмечте с дистрибутивом ubuntu 9.10. Просто хочется конкретно знать, потому что по идее он должен быть в /usr/local/bin
да. это утверждение имеет право жить. но одно НО!
то, что установлено при установке самой ОС(т.е. жизненно необходимо), лежит в /usr/bin
а то, что установлено после, в /usr/local/bin
так что, если взять и тупо удалить последний, максимум что вам грозит, это куча нерабочих пользовательских программ. а самой ОС на это накакать
1
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 5
22.02.2010, 11:57  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
Цитата:
Сообщение от sechenov.andrey
В голом Си я не смог найти адрес рабочего стола
естественно. потому как вы изначально в неверном направлении пошли.
а ответил я, как это реализовать при помощи Qt, потому что тема в разделе Qt.
Да уж это точно. Я вообще хотел ссылку сделать.
А ве-таки как же найти адрес рабочего чтола в голом СИ
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
22.02.2010, 12:22
рабочие столы, во всех мне известных дистрибутивах, зовутся одним из: "Рабочий стол", "Desktop".
конечно, я не уверен что это утверждение справедливо для всех дистрибутивов. но это зависит только от графической среды. что в KDE, что в GTK, они зовутся именно так.

код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int get_desktop(char* buff) {
   char* home;
   if ( !buff ) { return -1; }
   static const char* names[] = {"Рабочий стол", "Desktop", NULL};
   home = getenv("HOME");
   if ( !home ) { return -1; }
   for ( int idx = 0; names[idx]; ++idx ) {
      sprintf(buff, "%s/%s", home, names[idx]);
      if ( 0 == access(buff, F_OK) ) {
         return 0;
      }
   }
   *buff = '\0';
   return -1;
}
2
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
23.02.2010, 01:52
sechenov.andrey, я не знаю точно механизма контроля пакетов (пока не разбирался) но в *nix реестра нет.
про папки /bin; /usr/bin; /usr/local/bin я просто уверен что они работают так же как и /lib; /usr/lib; /usr/local/lib и просто включены в поиск запускаемых приложений, подробнее о библиотеках можно найти в google "ldconfig"
на тему установки приложений в пользовательские папки - такое возможно но, в таком случае, все ссылки в приложении на внутренние библиотеки должны быть динамическими. а внешние библиотеки находятся на месте всегда и указывать их нужно при компиляции (подробнее make,shell,g++)
Qt побоку какой десктоп Mac,Win,Gnome,XFC ... главное чтоб на пк стояли его библиотеки, но если программа нацелена на использование под гномом то лучше писать на GTK

Не по теме:

вообще я считаю что лучше написать либы (shared objects) на c++, а уже интерфейсы под каждый десктоп отдельно



Не по теме:

кста как динамические библиотеки выглядят в mac ?

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.02.2010, 01:52
Помогаю со студенческими работами здесь

Позиция QGraphicsView относительно рабочего стола
У меня есть QGraphicsView и мне нужно узнать его размер и позицию. Размер я узнаю легко .sceneRect().width(); .sceneRect().height();...

QT рисование рамки вокруг рабочего стола.
Как мне нарисовать светящуюся рамку поверх всех окон по периметру рабочего стола. Или обычную рамку. (светящаяся - чтобы была похожа на...

Узнать/Получить IP адрес компьютера
Доброго времени суток. Стоит задача узнать IP адрес компьютера. Локальный IP а-ля 192.168.255.255 был успешно получен, так же как и...

Как узнать номер порта и IP адрес в readDatagram?
По UDP получаю и считываю данные: QHostAddress *host = new QHostAddress(); quint16 *port; m_timerMain->stop(); ...

Адрес до рабочего стола
Когда прописываю адрес до файла C:\\Users\\%username%\\AppData\\Local\\File.txt то программа просто не видит его!!! Хотя тоже самое в бат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru