|
Тема |
File download минавайки през идентификация |
|
Автор |
Mиpo () |
|
Публикувано | 23.07.06 21:12 |
|
|
Правя база данни, която се захранва даунлоадвайки по интернет периодически файлове от един сървер. Проблемът е, обаче, че при всяко сваляне се изисква логин&парола от типа по-долу, което ме затруднява да автоматизирам целия процес.
Ровейки се последните няколко дена открих 2 подхода за сваляне на файлове с Делфи.
1. Командата UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil), която работи доста добре в общия случай. Но в моя конкретен, където е нужна идентификация, не става с нея и даже не се появя прозореца за идентификация...
2. С Webbrowser.Navigate започвам да зареждам адреса, където е съответния файл (pdf или doc). Тук се появя прозореца за идентификация и, понеже веднъж логина и паролата вкарани в него се запомнят автоматично от IE, то ми остава да натисна само ENTER, което симулирам лесно с
keybd_event(VK_Return, 1, 0, 0);
keybd_event(VK_Return, 1, KEYEVENTF_KEYUP, 0);
Така pdf файлът ми е зареден в webbrowsera. С командата Webbrowser.ExecWB(OLECMDID_SAVEAS,OLECMDEXECOPT_DODEFAULT) ми се отваря меню "Save As" на интегрирания Акробат в уеб браузера и аз пак симулирам ENTER по горния начин и файлът се записва безпроблемно (не знам защо обаче OLECMDID_SAVE не работи директно без да се отваря диалога за избор на директория). Проблемът в този случай е, че директорията, където се записва файлът, е последната директория използвана от Акробата и не знам как мога да я променям/указвам автоматично? Това е важно за случаите, когато съм записвал ръчно нещо с Акробата някъде другаде на този компютър и файловете ще започнат да се записват там...
Та, ако някой има идея по проблемите в двата изложени подхода или пък знае друг по-ефикасен подход за сваляне на файлове в такива случаи, ще съм му много благодарен.
|
| |
|
|
|