Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2007, 13:13   #11
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Цитата:
Сообщение от zetrix Посмотреть сообщение
совершенно верно, а меня если опера, или ещё что-то? Уже не прокатит.
Ну здесь я позволю не согласиться IE стоит у всех (наврятли найдутся такие которые его удаляют дабы сэкономить пару метров), и именно по этому чтоб не писать даунлоадер, как предложил AVer, можно воспользоваться стандартным браузером, помойму это совсем логично
Simply-Art вне форума Ответить с цитированием
Старый 22.01.2007, 14:28   #12
psyke
Пользователь
 
Аватар для psyke
 
Регистрация: 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.
psyke вне форума Ответить с цитированием
Старый 22.01.2007, 19:08   #13
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 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;
Simply-Art вне форума Ответить с цитированием
Старый 23.01.2007, 08:51   #14
psyke
Пользователь
 
Аватар для psyke
 
Регистрация: 08.01.2007
Сообщений: 41
По умолчанию

Правильно а зачем изобретать свой велик? лучше взять колёса от чужого, да к себе прикрутить, один .. работать будет
psyke вне форума Ответить с цитированием
Старый 23.01.2007, 12:41   #15
SNk
Подтвердите свой е-майл
 
Регистрация: 19.01.2007
Сообщений: 2
По умолчанию

нужна программка, котороя по истечению какогонибудь времени (2-3 мин) или после нажатия на кнопку запускала файлик с расширением .pl который находится к примеру на c:

какая функция отвечает за запуск файла?
SNk вне форума Ответить с цитированием
Старый 23.01.2007, 14:00   #16
Albenous
Helper
Форумчанин
 
Аватар для Albenous
 
Регистрация: 10.12.2006
Сообщений: 109
По умолчанию

Цитата:
нужна программка, котороя по истечению какогонибудь времени (2-3 мин) или после нажатия на кнопку запускала файлик с расширением .pl который находится к примеру на c
Ну, если она открывает файл, тогда:
AssignFile(f, sFileFullName);
Reset(f);
...........
CloseFile(f);
Глупых вопросов не бывает - бывают глупые ответы.
Albenous вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прокрутка при нажатии на кнопку 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