Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 666
от 13.02.2007, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 470, Экспертов: 61
В номере:Вопросов: 4, Ответов: 12


Вопрос № 74553: Какие параметры нужно написать в функции ShellExecute(), чтобы запустить web сайт, например www.mail.ru. И какие параметры для запуска любой программы?...
Вопрос № 74609: Добрый день Уважаемые эксперты! Пишу приложение, которое вызывается из другого приложения. В родительском приложении существует параметры (имя пользователя и права), которые мне необходимо получить в дочернем. Каким образом я могу это сделать...
Вопрос № 74655: Уважаемые эксперты помогите в написании функции которая получает в качестве параметров целое число и систему счисления в которую его нужно перевести.Например 14 в 5-ю -24, 28 в 16-ю 1С. Систем счисления 32. При прямом переводе число получается наобор...
Вопрос № 74675: Привет ! Не решить след. задачу Даны вещественные массивы A[5][6], B[6]. Опpеделить значения вещественного массива C[6] по правилу: C[j]=сумме j-го столбца массива A при B[j]>0 C[j]=0 при B[j]=0 C[j]=A[0][j]+A[4][j] при B[j]&l...

Вопрос № 74.553
Какие параметры нужно написать в функции ShellExecute(), чтобы запустить web сайт, например www.mail.ru. И какие параметры для запуска любой программы?
Отправлен: 07.02.2007, 11:32
Вопрос задал: Костенко Игорь Викторович (статус: 2-ой класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Tek
Здравствуйте, Костенко Игорь Викторович!
ShellExecute(NULL, "open", "www.mail.ru", NULL, NULL, SW_SHOWNORMAL);
>>И какие параметры для запуска любой программы?
А что MSDN с утра отменили или закрыли? А мужики то не знают (С)
---------
WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 9-ый класс)
Ответ отправлен: 07.02.2007, 11:48
Оценка за ответ: 5

Отвечает: Базанов Иван Александрович
Здравствуйте, Костенко Игорь Викторович!
ShellExecute(NULL, "open", "iexplore.exe","www.mail.ru", NULL, SW_NORMAL)

Насчет "любой программы" - не понял.
---------
Программист ошибается дважды: первый раз при рождении, второй при выборе профессии
Ответ отправил: Базанов Иван Александрович (статус: 4-ый класс)
Ответ отправлен: 07.02.2007, 11:53
Оценка за ответ: 5

Отвечает: Tamashev Denis M
Здравствуйте, Костенко Игорь Викторович!

String doc= "http://www.softholm.com";
ShellExecute ( Handle, "open" , doc.c_str(), NULL, NULL, SW_SHOW );
или поставить на запуск программу =) Вот и всё.
Ответ отправил: Tamashev Denis M (статус: 3-ий класс)
Ответ отправлен: 07.02.2007, 12:34
Оценка за ответ: 5

Отвечает: kool
Здравствуйте, Костенко Игорь Викторович!
Например так: (см. приложение)
Для других программ другие параметры.
Удачи!

Приложение:

---------
I am.

Ответ отправил: kool (статус: 7-ой класс)
Ответ отправлен: 07.02.2007, 18:59
Оценка за ответ: 5


Вопрос № 74.609
Добрый день Уважаемые эксперты!
Пишу приложение, которое вызывается из другого приложения. В родительском приложении существует параметры (имя пользователя и права), которые мне необходимо получить в дочернем.
Каким образом я могу это сделать? Если возможно с небольшими примерами.
PS: Работаю в Builder5.
Заранее благодарен.
Отправлен: 07.02.2007, 17:38
Вопрос задал: Goretsky Anton (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Tek
Здравствуйте, Goretsky Anton!
Вариантов много все-таки.
Но привожу те что сходу пришли в голову:
1. Передача через файл-обменник
2. Передача в параметрах приложения
3. Использование общего хранилища данных (БД например)
4. Получение собственно из окон родительского (если эти данные отображены)
5. Использовать COM-соединение - ну это уже изврат крайней степени :)
---------
WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 9-ый класс)
Ответ отправлен: 07.02.2007, 17:49
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Я даже не представлял, что существует столько вариантов решения! :)

Отвечает: Mitya86
Здравствуйте, Goretsky Anton!

передавай параметры в коммандной строке(см.приложение)

Приложение:

Ответ отправил: Mitya86 (статус: 3-ий класс)
Ответ отправлен: 07.02.2007, 18:19
Оценка за ответ: 5
Комментарий оценки:
Спасибо за помощь! Пример строки очень помог!

Отвечает: kool
Здравствуйте, Goretsky Anton!
Дочерний процесс нужно вызывать как
порожденный с наследованием от родительского
его свойст (см. ф-цию CreateProcess) и
передавать необходмые параметры, например через командную строку.
Удачи!

---------
I am.
Ответ отправил: kool (статус: 7-ой класс)
Ответ отправлен: 07.02.2007, 18:40
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Именно то что мне нужно!

Отвечает: ramok
Здравствуйте, Goretsky Anton!

традиционно такая задача решается с помощью переменных окружения.
работа с ними осуществляется через стандартные функции C putenv()/setenv()/getenv()

особенность в том что переменные окружение родительского приложения наследуются в потомке.
вот если бы вам требовалось передать данные из дочернего приложения в родительское - то пришлось бы прибегать к другим сложным способам которые вам уже рассказали.

пример в приложении.

примеры из интернета:
http://www.cprogramming.com/fod/putenv.html
http://www.cprogramming.com/fod/getenv.html

Приложение:

Ответ отправил: ramok (статус: Студент)
Ответ отправлен: 07.02.2007, 18:41
Оценка за ответ: 5
Комментарий оценки:
Спасибо! интересный вариант. Но в моем случае не совсем подойдет. У меня приложение может запускаться очень часто и с разными параметрами. И наверное не очень целесообразно их будет хранить в переменных окружения. Но все равно большое спасибо за ответ!


Вопрос № 74.655
Уважаемые эксперты помогите в написании функции которая получает в качестве параметров целое число и систему счисления в которую его нужно перевести.Например 14 в 5-ю -24, 28 в 16-ю 1С. Систем счисления 32. При прямом переводе число получается наоборот, есть идея использовать динамический массив, но может есть более простой путь.Программирую под консолью.
Отправлен: 07.02.2007, 21:41
Вопрос задал: Krush (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Терсков Сергей
Здравствуйте, Krush!
Вот, например, перевод систем исчисления при помощи строк. Код в приложении. Функция

string change_calc_system(const string& number, int base_sys, int dest_sys, const string& digits_set);

принимает число в виде строки const string& number в системе исчисления int base_sys и переводит его в систему int dest_sys. При переводе используется набор символов const string& digits_set.

Приложение:

Ответ отправил: Терсков Сергей (статус: 5-ый класс)
Ответ отправлен: 08.02.2007, 06:37
Оценка за ответ: 4

Отвечает: wils0n
Здравствуйте, Krush!

#include<iostream>
#include<string>

using std::string;

const char*
dec2any(unsigned long n, short base)
{
string rep;
if ((base < 2) || (base > 32)) return 0;
while (n > 0) {
char m = (char)(n % base);
m += (m>9) ? 55 : 48;
rep.insert(rep.begin(),1,m);
n = n / base;
}
return rep.c_str();
}

int main()
{
unsigned long n;
short base;
std::cout << "Input n and base: ";
std::cin >> n >> base;
std::cout << dec2any(n,base) << std::endl;
return 0;
}


---------
Life is like a box with chocolate. You never know what you're gonna get. (c) Forrest Gump's mom
Ответ отправил: wils0n (статус: 6-ой класс)
Ответ отправлен: 08.02.2007, 12:04
Оценка за ответ: 3

Отвечает: Ross
Здравствуйте, Krush!

#include <conio.h>

bool dec_to_base(unsigned int dec,unsigned char base)
{
if (base<2 || base >32) return false;
char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

if (dec/base) dec_to_base(dec/base,base);
putch(digits[dec%base]);

return true;
}

void main()
{
dec_to_base(254,16);
}
Ответ отправил: Ross (статус: 5-ый класс)
Ответ отправлен: 09.02.2007, 21:29
Оценка за ответ: 5


Вопрос № 74.675
Привет !
Не решить след. задачу
Даны вещественные массивы A[5][6], B[6]. Опpеделить значения вещественного массива C[6] по правилу:
C[j]=сумме j-го столбца массива A при B[j]>0
C[j]=0 при B[j]=0
C[j]=A[0][j]+A[4][j] при B[j]<0
Значение переменной i изменяется от 0 до 5.
помогите плиз!!
Отправлен: 08.02.2007, 01:01
Вопрос задал: Eayhiv (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Терсков Сергей
Здравствуйте, Eayhiv!
Попробуйте вариант приведенный в приложении...

Приложение:

Ответ отправил: Терсков Сергей (статус: 5-ый класс)
Ответ отправлен: 08.02.2007, 03:19


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.44 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное