WINVER определяет минимальный SDK платформы, необходимый для сборки вашего приложения, который, в свою очередь, определяет во время компиляции, какие подпрограммы найдены заголовками.
Вы можете использовать это для проверки, во время компиляции, что ваше приложение будет работать, например, в Windows 2000 (0x0500) или в Windows XP (0x0501).
Страница MSDN на Изменение WINVER и _WIN32_WINNT более подробно описывает это.
Вы можете механизировать только то, что знаете. Прежде чем писать какой-либо код, я предлагаю вам использовать такой инструмент, как Firebug, и проверить, что происходит в вашем браузере, когда вы делаете это вручную.
Конечно, могут использоваться файлы cookie. А может, вы забыли скрытый параметр формы? Только вы можете сказать.
РЕДАКТИРОВАТЬ:
Это произошло через несколько месяцев после того, как это произошло, но я решил ту же проблему, задав аналогичные вопросы. См. Можно ли автоматизировать обратную передачу со стороны клиента? для получения дополнительной информации.
Вместо этого я использовал Python Mechanize или Perl, но здесь действует тот же принцип.
Подводя итог моему предыдущему ответу:
Страницы ASP.NET нуждаются в скрытом параметре __EVENTTARGET в форме, которого не будет, когда вы используете
При посещении обычного пользователя на этих страницах есть функция __doPostBack ('foo'), которая дает соответствующее значение для __EVENTTARGET через событие onclick javascript для каждой из ссылок, но поскольку механизация не используйте javascript, вам нужно будет установить эти значения самостоятельно.
Решение на python приведено ниже, но не должно ' Это будет слишком сложно, чтобы адаптировать его к Perl.
def add_event_target(form, target):
#Creates a new __EVENTTARGET control and adds the value specified
#.NET doesn't generate this in mechanize for some reason -- suspect maybe is
#normally generated by javascript or some useragent thing?
form.new_control('hidden','__EVENTTARGET',attrs = dict(name='__EVENTTARGET'))
form.set_all_readonly(False)
form["__EVENTTARGET"] = target