The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"как запустить одно приложение из другого"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"как запустить одно приложение из другого"
Сообщение от vvk emailИскать по авторуВ закладки on 04-Фев-03, 23:48  (MSK)
совсем отчаялся скрестить XImage и jpeglib и прочие утилиты. поэтому
подумал, что может пока получить скриншот утилитой import, вызывая ее из кода своей программы. но как это сделать?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: как запустить одно приложение из другого"
Сообщение от XMan Искать по авторуВ закладки on 05-Фев-03, 01:13  (MSK)
В C/C++ ? Семейство функций exec (например execl) ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: как запустить одно приложение из другого"
Сообщение от vvk emailИскать по авторуВ закладки on 05-Фев-03, 09:15  (MSK)
>В C/C++ ? Семейство функций exec (например execl) ?
ок, попробую. но уже пытался сделать execv - нифига. причем молча.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: как запустить одно приложение из другого"
Сообщение от XMan Искать по авторуВ закладки on 05-Фев-03, 17:13  (MSK)
А как выглядела попытка в плане параметров функции ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: как запустить одно приложение из другого"
Сообщение от vvk emailИскать по авторуВ закладки on 06-Фев-03, 20:55  (MSK)
>А как выглядела попытка в плане параметров функции ?

execl("import","import","-window","root","bb.jpg",NULL)

задолбался уже. делов то. сграбить картинку и сконвертить. ан нет.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: как запустить одно приложение из другого"
Сообщение от XMan Искать по авторуВ закладки on 07-Фев-03, 01:05  (MSK)
А что есть первое "import" и чем оно отличается от второго ?
Короче, первой идет программа (с полным путем), за ней куча параметров командной строки и ограничитель NULL. Дабы долго не думать где лежит программа народ часто пользует конструкцию, типа:

execl("/bin/sh","-c","программа","параметр1",...,"параметр N",NULL);

или еще проще:

execl("/bin/sh","-c","программа параметр1... параметр N",NULL);

В этом случае командную строку можно подставить такую же, какую ты набираешь в консоли. Естественно, всякие там кавычки и бэкслэши (если таковые присутствуют) нужно учитывать.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: как запустить одно приложение из другого"
Сообщение от vvk emailИскать по авторуВ закладки on 07-Фев-03, 09:19  (MSK)
ok. вчера таки удалось сделать!
использовал вызов
system("import -window root asd.jpg");

то, что import два раза написано, это я с какого то man-a переписал. А вообще пробовал разные варианты exec, но нифига не получалось.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: как запустить одно приложение из другого"
Сообщение от Soldier Искать по авторуВ закладки on 07-Фев-03, 17:32  (MSK)
>>А как выглядела попытка в плане параметров функции ?
>
>execl("import","import","-window","root","bb.jpg",NULL)
>
>задолбался уже. делов то. сграбить картинку и сконвертить. ан нет.


Да вообще-то все правильно, только нужно указывать полный путь к import - например у меня:
which import
/usr/bin/import

Короче попробуйте так (если не лень):
execl("/usr/bin/import","import","-window","root","bb.jpg",NULL);

XMan - ну ты меня удивляешь - параметры идут с 0, а 0-вой параметр по соглашению есть имя программы.

Поэтому при использовании execl сначала указывается полный путь, затем имя программы, затем аргументы командной строки, в конце NULL. Поэтому надо так:

execl("/bin/sh","/bin/sh","-c","программа","параметр1",...,"параметр N",NULL);

(вместо второго /bin/sh в данном случае можно поставить все что угодно)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: как запустить одно приложение из другого"
Сообщение от XMan Искать по авторуВ закладки on 08-Фев-03, 01:38  (MSK)
>XMan - ну ты меня удивляешь - параметры идут с 0, а
>0-вой параметр по соглашению есть имя программы.
>
>Поэтому при использовании execl сначала указывается полный путь, затем имя программы, затем
>аргументы командной строки, в конце NULL. Поэтому надо так:
[skiped]

В последнее время я сам себя удивляю. И часто удивления неприятные. Блин, шо ж происходит-то ? :(

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: как запустить одно приложение из другого"
Сообщение от vvk emailИскать по авторуВ закладки on 08-Фев-03, 10:37  (MSK)
привет. спасибо огромное за разъяснения.
экспериментировать наверное не буду (так как надо браться за связь с сервером по http), если только применение execl не является чем то лучшим
чем system.

>Да вообще-то все правильно, только нужно указывать полный путь к import -
>например у меня:
>which import
>/usr/bin/import
>
>Короче попробуйте так (если не лень):
>execl("/usr/bin/import","import","-window","root","bb.jpg",NULL);
>
>XMan - ну ты меня удивляешь - параметры идут с 0, а
>0-вой параметр по соглашению есть имя программы.
>
>Поэтому при использовании execl сначала указывается полный путь, затем имя программы, затем
>аргументы командной строки, в конце NULL. Поэтому надо так:
>
>execl("/bin/sh","/bin/sh","-c","программа","параметр1",...,"параметр N",NULL);
>
>(вместо второго /bin/sh в данном случае можно поставить все что угодно)


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру