Ребят, а зачем было городить такой огород с перехватом загрузки торрента, дописывания в него своих трекеров и т.д.?
Предлагаю куда более элегантное решение:
1. Пишем Windows Service, чтоб его один раз поставить в систему и больше никогда в жизни не видеть.
2. Сервис периодически пытается подключиться к WebUI uTorrent'а, через WebUI же дописывает нужные трекеры.
3. Сервис периодически проверяет доступность ретрекеров.
4. (по желанию) Сервис добавляет к торрентам вновь ставшие доступными ретрекеры и удаляет ставшие недоступными. Не принципиально, но имхо полезно дабы utorrent не пытался стучаться туда, где точно ничего нет.... Да и пользователя не будем нервировать.
5. (Этот пункт сам хотел реализовывать, но идеально его было бы совместить с этим сервисом) Периодически проверяем обновления торрентов на трекерах (аниме/сериалы - периодически добавляются новые серии, ручками большой список закачки проверять - напряжно) и если обновились - заменяем старый на новый. Но тут есть одна сложность с определением пути, куда поставлена закачка - через WebUI он не отдаётся.
Зачем? А зачем лишние прыгающие окна, велосипед с правкой resume.dat и рестартом уторрента (я так понимаю, он сам по себе его один раз читает при старте, а потом только периодически пишет?). Мы получаем рабочее решение, которое даже не видим. Кроме того, этот способ будет работать и для тех людей, которые добавляют торренты через WebUI (включая меня).
API вебуя описано тут:
http://forum.utorrent.com/viewtopic.php?id=25661Тут куча другой инфы, включая абстракции под разные языки:
http://forum.utorrent.com/viewtopic.php?id=33186В дальнейшем можно добавить поддержку linux и прочих *nix и *bsd, там самые популярные клиенты - это rTorrent (управляется похожим способом через XML-RPC, описание тут:
http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide) и transmission (опять же - читаем:
http://trac.transmissionbt.com/browser/tru...c/rpc-spec.txt). Я так понимаю, вы (впрочем, как и я
) ) пишете на .net, в никсах для работы .net'а есть
mono. Если верить сайту, то подмножество классов вплоть до 2.0 включительно реализовано в моно полностью.
Думаю у других виндовых клиентов есть подобные способы управления, но, думаю, никому не надо доказывать, что 90% пользователей винды юзают uTorrent, поэтому можно даже не париться.