imho.ws |
![]() |
![]() |
![]() |
# 1 |
Junior Member
Регистрация: 03.02.2004
Сообщения: 96
![]() |
программист-энтузиаст для win32
Если у кого-то есть желание программить под win32, и свободное время для этого, могу предложить тему Ж)
Мне нужна простенькая программка следующего толка: висит в трее, при нажатии на ее иконку правой кнопкой выдает контестное меню - первый пункт "сохранить", второй "выход". Второй пункт понятный, а первый вот что делает: берет заголовок окна плеера Apollo (то бишь, обычно там artist - title висит, исполнитель композиции и ее название), и добавляет его в текстовый файлик. Смысл - составить список любимых песен. Как только песня выскакивает нужная, вызываешь эту програмуху, и она сохраняет в файл. Дешево и сердито. Вот если кто-то такую тулзу сделает, буду очень благодарен. |
![]() |
![]() |
# 4 | ||
Junior Member
Регистрация: 03.02.2004
Сообщения: 96
![]() |
Цитата:
Цитата:
Вроде бы задачку я описал. Единственный вопрос, в какой файл сохранять заголовки - проще всего в файл в том же каталоге, откуда программа запускается, с именем например apollo.txt Аполло можно взять тут: http://apollo.caphost.biz/Apollo37zh.exe Исходники программы semagic, которая умеет заголовок аполло ловить, тут: http://sema.net.ru/semagic/Semagic_src.zip Да, забыл что упомянуть - не знаю, имеет ли это значение для выкусывания информации или нет, но apollo у меня в виде mini window используется. У него в тулбаре это вторая справа кнопка. |
||
![]() |
![]() |
# 9 |
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
2ryfm
Торопишся. Есть ошибочка. Код:
void CSaveSongTitleDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CWnd *cWnd = FindWindow("Apollo - Main Window", NULL); if (cWnd == NULL)return cWnd->GetWindowText(st); this->SetWindowText(st); CDialog::OnTimer(nIDEvent); } if (cWnd == NULL) return cWnd->GetWindowText(st); При ненайденом окне завалится в "Access violation ...".
__________________
Best Regards |
![]() |
![]() |
# 10 |
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вообще не понимаю, зачем в такой задаче (маленькая и быстрая программа) использовать MFC???
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
![]() |
![]() |
# 12 | |
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Here Не требует инсталляции, занимает 31кб (и это не предел), в оперативке занимает 1600кб (по сведениям Task Manager'а). Обрезает номер песни и доп инфу (т.е. в лог пишется только Artist - Song).
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
|
![]() |
![]() |
# 13 |
Guest
Сообщения: n/a
|
Писалось в свободное от работы время, просто чтобы вспомнить Visual C++, т.к. сейчас работаю с SQL и Шарпом...
alexey_ma да уж прикольная ошибочка... chesnok можно было написать и на asm с вызовом функций API, но ведь в данном случае это не принципиально. Может посоревнуемся? ![]() Поправленное, есть еще глюки, нет проверки на существование файла. Блин, суббота, воскресенье, завтра понедельник, нормальные люди отдыхают, а я последние два месяца все выходные и праздники провожу на работе... Последний раз редактировалось ryfm; 12.12.2004 в 11:03. |
![]() |
# 14 |
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Зажал сабж ещё больше, теперь работает ещё быстрее, однако пришлось засунуть ресурсы (иконка от Apollo) в отдельную dll. exe + dll вместе занимают 17kb
![]() ![]()
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
![]() |
![]() |
# 15 | |||
Junior Member
Регистрация: 03.02.2004
Сообщения: 96
![]() |
Цитата:
Прога запускается, в трее висит. Open log работает. А вот при попытке Save title - "apwatch.exe has generated errors and will be closed by Windows" ![]() Цитата:
Библиотек таких не ставил, наверно нет их. Цитата:
И в этом случае название окна его что-то вроде ApolloMiniWindow, это я узнал от HotKeyboard. Хотя я попробовал и с открытым окном - все равно падает твоя программа. ![]() Кроме того, заголовок задан как %LEADARTIST% - %TITLE% (там по умолчанию как-то сложнее). |
|||
![]() |
![]() |
# 17 |
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну если винда 98, то всё понятно, я MSLU не подключал, думал, что 98й ни у кого уже и нет... А если ХР, то проблема скорее всего в обработке строки Apollo (т.к. программа думает, что эта строка в формате номер исполнитель - композиция - время - (общ.время @ битрейт))
MSLU - Microsoft Layer For Unicode, нужен т.к. строку с Apollo я считываю в юникоде, чтоб не геморроиться с названиями в разных локалях.
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
![]() |
![]() |
# 18 | ||
Junior Member
Регистрация: 03.02.2004
Сообщения: 96
![]() |
Цитата:
Цитата:
А разве так критично, как строчка выглядит? Нельзя просто всю строку целиком брать? У меня она такая: "исполнитель - композиция". Если нельзя целиком брать всю, то просьба переделать програмуху под такой вид строки. Спасибо! |
||
![]() |
![]() |
# 19 |
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Подправил программу, теперь она ничего не делает со строкой, а просто записывает её в файл. Лежит там же, линк в предыдущих постах. Сейчас занимаюь тем, чтобы программа строку почти любого вида приводила к Исполнитель - Композиция.
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
![]() |