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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 127
от 14.06.2005, 05:50

Администратор:Калашников О.А.
В номере:Вопросов: 3, Ответов: 7


Вопрос № 21936: Народ,пожалуйста, помогите! Нужна программа:класс построения гистограмм. Или хотя бы ссылка, где ее можно достать. То, что для Вас может быть не сложным, для меня окажется просто спасением. Спасайте!!! Заранее большое спасибо!!!!!!!!!!!!...
Вопрос № 21937: Здравствуйте Эксперты, хотелось бы узнать как Сделать программу(любого типа - консоль etc.) которая запускалась бы с параметрами.. Зарание спасибо... респект:-)...
Вопрос № 21939: Здравствуйте Эксперты, я ссылаюсь на вопрос 21920 : Хотел бы узнать как програмно узнать допустим заголовок окна отдельной программы через свою программу... например узнать заголовок окна винампа ) и на его ответ : Можно воспользоваться...

Вопрос № 21.936
Народ,пожалуйста, помогите!
Нужна программа:класс построения гистограмм. Или хотя бы ссылка, где ее можно достать. То, что для Вас может быть не сложным, для меня окажется просто спасением. Спасайте!!! Заранее большое спасибо!!!!!!!!!!!!
Отправлен: 08.06.2005, 17:28
Вопрос задала: Katenok (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: DSota
Здравствуйте, Katenok!
Попробуй Teechart Pro cо страницы:
http://www.steema.com/downloads/download.html

---------
Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Практикант)
Отправлен: 09.06.2005, 08:41


Вопрос № 21.937
Здравствуйте Эксперты, хотелось бы узнать как
Сделать программу(любого типа - консоль etc.) которая запускалась бы с параметрами..
Зарание спасибо... респект:-)

Приложение:

Отправлен: 08.06.2005, 17:47
Вопрос задал: ДимооН :) (статус: 1-ый класс)
Всего ответов отправлено: 4

Отвечает: igor87
Здравствуйте, ДимооН :)!
Параметры передаются в программу из коммандной строки. Для их получения программой необходимо чтобы функция main принимала 2 занчения: во-перывых, значение типа int - количество параметров(включая сам ехе-шник); во-вторых, указатель на массив элементов типа char, в котором и хранятся все переданные параметры(опять же включая сам ехе-шник). возьмем int argc и char* argv[]. Далее обращатся к параметра argv[1], argv[2]... . argv[0]-запускаемый файл

Приложение:

Ответ отправил: igor87 (статус: 1-ый класс)
Отправлен: 08.06.2005, 18:10
Оценка за ответ: 5

Отвечает: yatagan
Здравствуйте, ДимооН :)!
как ты знаешь, минимальная прога на С++ выглядит так:
main(){}
в ней нет командной строки, а вот в следующей есть:
main(int argc, char **argv){}
тут argc - число параметров, а argv - массив строк с параметрами.
если ты запускаешь прогу без всяких параметров, то argc = 1, а в argv есть одна строка - имя екзешника с путем к нему;
если запускаешь так:
proga.exe fuck
то argc = 2, в argv первый элемент - название проги, а второй - "fuck";
если запускаешь так:
proga.exe fuck you
то argc = 3, в argv первый элемент - название проги, второй - "fuck", третий - "you".
ну и так дальше...
---------
Україна понад усе!
Ответ отправил: yatagan (статус: 1-ый класс)
Отправлен: 08.06.2005, 19:03
Оценка за ответ: 5
Комментарий оценки:
Круто ))) по нашему )

Отвечает: Jadd
Здравствуйте, ДимооН :)!
Дык в функцию main передаются параметры argv и argc. Первый - массив самих параметров, который нулевым элементом содержит название самой программы. Второй - количество параметров. В винде немного не так. В винде функция main заменена на WinMain. Вот ее синтаксис
int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow);
Как видишь, третий параметр - коммандная строка, т.е. параметры, которые ты передаешь в программу. Но и это еще не все. Есть пара функций, которые тебе помогают в работе с коммандной строкой: LPTSTR GetCommandLine(void); и LPWSTR* CommandLineToArgvW(LPCWSTR lpCmdLine, int* pNumArgs);. Обе они возвращают строки, только последняя в юникоде. Описание их читай в MSDN.

---------
Hakuna matata
Ответ отправил: Jadd (статус: 9-ый класс)
Отправлен: 09.06.2005, 10:26
Оценка за ответ: 5

Отвечает: Voituk Alexander
Здравствуйте, ДимооН <img src=http://img.mail.ru/ru/btn/smile.gif>!
Да какие проблемы - в С++ есть такая функция main (это для консольных приложение)
и в ней есть параметры
main(int argc,char**argv);
argc - это число входных параметров, а argv - массив строк этих самых параметров,
причем argv[0] - это полное имя твоей программы.
А для Виндовоза еще проще - это функции ParamStr и ParamCount.
Ответ отправил: Voituk Alexander (статус: 7-ой класс)
Отправлен: 09.06.2005, 11:41
Оценка за ответ: 4


Вопрос № 21.939
Здравствуйте Эксперты, я ссылаюсь на вопрос 21920 :
Хотел бы узнать как програмно узнать допустим заголовок окна отдельной программы через свою программу... например узнать заголовок окна винампа )
и на его ответ :
Можно воспользоваться функцией WinAPI GetWindowText(), которая возвращает заголовок окна, чей указатель ей передан. В свою очередь, найти указатель нужного окна можно через FindWindow(), передав ей в качестве заголовка пустую строку (т.к. он неизвестен и его требуется найти), а в качестве имени класса - класс нужного окна, например того же Winamp (Класс окна Winamp'а - BaseWindow_RootWnd).
Теперь непосредственно то , чего я хочу именно...
я сделал так :
char sText[100];
HWND hFW = FindWindow ("CLs",NULL);
GetWindowText (hFW, sText, sizeof(sText));
и получил hFW = "Main window" - т.е. Winamp'a
то есть , он мне показывает название активного окна у винампа ,
если активным будет допустим плей лист , то hFW = "Playlist editor"
а мне бы хотелось именно получить к переменной название песни...
а именно hFW = "blablabla - blabla.mp3"
Заранее всем ответившим огромное спасибо
Отправлен: 08.06.2005, 18:54
Вопрос задал: ДимооН :) (статус: 1-ый класс)
Всего ответов отправлено: 2

Отвечает: SackTap
Здравствуйте, ДимооН :)!
Ваша цель понятна, но дотичь ее вашим способом крайне сложно, если вообще возможно. Очень затруднительно будет отыскать в этом окне "Player Window" элемент управления с названием песни, если этот элемент вообще содержит какой-либо текст.
Что самое забавное, если использовать Modern Skin, то главное окошко имеет класс "Player Window", если же Classic Skin, то "Winamp v1.x"...
Единственный выход - написать плагин (подойдет ко всем версиям и может получить полно информации о текущем состоянии), плагин будет писать данные к примеру в файл, программа их забирать.
Удачи!
---------
=)
Ответ отправил: SackTap (статус: 9-ый класс)
Отправлен: 08.06.2005, 19:50
Оценка за ответ: 4

Отвечает: Voituk Alexander
Здравствуйте, ДимооН <img src=http://img.mail.ru/ru/btn/smile.gif>!
Я думаю - это довольно сложно сделать. Это надо запустить утилитку WinSight32 (входит в состав Билдера и Дельфина) и исследовать все основные окна и дочерние. Она также показывает и основные контролы типа StatusBara и т.п. Дочерние окна можно получить используя функцию EnumChildWindows. Но если из них никак нельзя выцепить, то конкретно для ВинАмпа можно написать плагин и с его помощью стучаться куда надо.
Ответ отправил: Voituk Alexander (статус: 7-ой класс)
Отправлен: 09.06.2005, 11:34
Оценка за ответ: 5
Комментарий оценки:
я уже замутил... С помощью Spy ++ откапал нужный класс


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное