Вопрос № 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 ++ откапал нужный класс