|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.01.2007, 13:13 | #11 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Ну здесь я позволю не согласиться IE стоит у всех (наврятли найдутся такие которые его удаляют дабы сэкономить пару метров), и именно по этому чтоб не писать даунлоадер, как предложил AVer, можно воспользоваться стандартным браузером, помойму это совсем логично
|
22.01.2007, 14:28 | #12 |
Пользователь
Регистрация: 08.01.2007
Сообщений: 41
|
Какие проблемы? Опера значит опера
procedure TForm1.Button1Click(Sender: TObject); var buf: array[0..100] of char; ie: String; reg: TRegistry; i:byte; begin reg:=TRegistry.Create; with reg do begin RootKey:=HKEY_CLASSES_ROOT; OpenKey('HTTP\shell\open\command',f alse); ie:=ReadString(''); if (TButton(sender).tag = 1) then begin WriteString('','"'+edit2.Text+'"'); ShowMessage('Curent browser was succesfully changed!'); exit; end; end; if length(ie) > 0 then begin for i:=length(ie) downto 0 do if not (ie[i] = '"') then {на случай если в ключе ещё параметры были} delete(ie,i,1) else break end; showmessage('Current browser: '+ie); if ShellExecute(handle,pchar('open'),p char(ie),pchar(Edit1.Text),nil,SW_S HOW) < 32 then MessageBox(handle,'Ошибка при выполнении!',pchar(form1.Caption),M B_ICONERROR); reg.free; end; procedure TForm1.findbrwzexecuteClick(Sender: TObject); var opend: TOpenDialog; begin opend:=TOpenDialog.Create(self); if opend.Execute then Edit2.Text:=opend.FileName; opend.Free; end; на счёт текущего браузера -- там надо менять целую группу ключей, для примера я менял один Последний раз редактировалось psyke; 22.01.2007 в 15:41. |
22.01.2007, 19:08 | #13 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
var
stop:bool; procedure TForm1.FormCreate(Sender: TObject); begin stop := false; end; procedure TForm1.Button1Click(Sender: TObject);//кнопка качать var hInet, //<-переменная сод. указатель на сессию hURL: HINTERNET; //<-указатель на URL fSize, //<-размер файла ReadLen, //<-количество реально прочитанных байт RestartPos: DWORD; //<-|позиция с которой начинается // |докачка fBuf: array[1..1024] of byte; //<-буфер куда качаем f: file; //<-файл куда качаем Header: string; //<-|дополнительная переменная в HTTP // |заголовок begin RestartPos := 0; //<- |инициализация fSize := 0; //<- |переменных Button1.Enabled := false; Button2.Enabled := true; //Если на винте есть файл то считаем, что нужно докачивать if FileExists('c:\LoadFile.tmp') then begin AssignFile(f, 'c:\LoadFile.tmp'); Reset(f, 1); RestartPos := FileSize(F); Seek(F, FileSize(F)); end else begin //иначе с начала AssignFile(f, 'c:\LoadFile.tmp'); ReWrite(f, 1); end; //открываем сессию hInet := InternetOpen('Mozilla', PRE_CONFIG_INTERNET_ACCESS, nil, nil, 0); //Пишем дополнительную строку для заголовка Header := 'Accept: */*'; //открываем URL hURL := InternetOpenURL(hInet, PChar(ComboBox1.Text), pchar(Header), StrLen(pchar(Header)), 0, 0); //устанавливаем позицию в файле для докачки if RestartPos > 0 then InternetSetFilePointer(hURL, RestartPos, nil, 0, 0); //смотрим ск-ко надо скачать InternetQueryDataAvailable(hURL, fSize, 0, 0); if RestartPos > 0 then begin ProgressBar1.Min := 0; ProgressBar1.Max := fSize + RestartPos; ProgressBar1.Position := RestartPos; end else begin ProgressBar1.Min := 0; ProgressBar1.Max := fSize + RestartPos; end; //качаем до тех пор пока реально прочитаное число байт не //будет равно нулю или не стор while (ReadLen <> 0) and (stop = false) do begin //читаем в буфер InternetReadFile(hURL, @fBuf, SizeOf(fBuf), ReadLen); //смотрим ск-ко осталось докачать InternetQueryDataAvailable(hURL, fSize, 0, 0); ProgressBar1.Position := ProgressBar1.Max - fSize; BlockWrite(f, fBuf, ReadLen); //<-пишем в файл Application.ProcessMessages; end; stop := false; Button1.Enabled := true; Button2.Enabled := false; InternetCloseHandle(hURL); //<-|закрываем InternetCloseHandle(hInet); //<-|сесcии CloseFile(f); //<-|и файл end; procedure TForm1.Button2Click(Sender: TObject);//кнопка пауза begin stop := true; //<-сообщаем о необходимости прерывания скачки end; |
23.01.2007, 08:51 | #14 |
Пользователь
Регистрация: 08.01.2007
Сообщений: 41
|
Правильно а зачем изобретать свой велик? лучше взять колёса от чужого, да к себе прикрутить, один .. работать будет
|
23.01.2007, 12:41 | #15 |
Подтвердите свой е-майл
Регистрация: 19.01.2007
Сообщений: 2
|
нужна программка, котороя по истечению какогонибудь времени (2-3 мин) или после нажатия на кнопку запускала файлик с расширением .pl который находится к примеру на c:
какая функция отвечает за запуск файла? |
23.01.2007, 14:00 | #16 | |
Helper
Форумчанин
Регистрация: 10.12.2006
Сообщений: 109
|
Цитата:
AssignFile(f, sFileFullName); Reset(f); ........... CloseFile(f);
Глупых вопросов не бывает - бывают глупые ответы.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
прокрутка при нажатии на кнопку | neformat | JavaScript, Ajax | 0 | 20.06.2008 20:40 |
Как сделать так,чтобы при нажатии на кнопку выполнялась процедура? | Bolgarin | Общие вопросы Delphi | 10 | 03.06.2008 23:48 |
Открытие файла по нажатии на кнопку | alexs2141 | Общие вопросы Delphi | 4 | 02.06.2008 10:47 |
Открытие нового окна, при нажатии на кнопку(Delphi). | sergey31 | Помощь студентам | 2 | 24.05.2008 14:48 |
Как изменить текст сообщения при нажатии на кнопку? | motaro | Помощь студентам | 2 | 14.07.2007 13:15 |