ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

04.09.2009, 17:27
|
|
Новичок
Регистрация: 03.06.2009
Сообщений: 22
Провел на форуме: 48718
Репутация:
5
|
|
Сообщение от Ixidor
Писал программу, столкнулся с такой проблемой. При открытии определенного сайта определенным браузером:
ShellExecute(Handle, 'open',
'c:\Program Files\Mozilla Firefox\firefox.exe', 'http://rambler.ru', nil,
SW_HIDE);
почему-то не работает SW_HIDE, т е окно показывается совершенно обычным образом. Это происходит со всеми сайтами. Кто-нибудь знает, почему так происходит? Можете что-либо посоветовать? Заранее спасибо!
Вот описание проблемы. Я хочу сделать окно сразу невидимым(при открытии). Использую функцию ShellExecute
|
|
|

04.09.2009, 18:13
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
wolmer, а такой код не работает?
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if gdSelected in State then
with StringGrid1.Canvas do
begin
Font.Color := clBlack;
Brush.Color := $0ec2ff;
FillRect(Rect);
TextOut(StringGrid1.DefaultColWidth*ACol+3,
StringGrid1.DefaultRowHeight*ARow+4, StringGrid1.Cells[ACol, ARow]);
end;
end;
Последний раз редактировалось Nullsleep; 04.09.2009 в 18:26..
|
|
|

04.09.2009, 18:20
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
Ixidor, попробуй такой код
Код:
const
cmd = 'C:\Program Files\Mozilla Firefox\Firefox.exe http://rambler.ru';
var
start_inf: _STARTUPINFOA;
proc_inf : _PROCESS_INFORMATION;
begin
FillChar(start_inf, SizeOf(start_inf), 0);
start_inf.cb := SizeOf(start_inf);
start_inf.dwFlags := STARTF_USESHOWWINDOW;
start_inf.wShowWindow := SW_HIDE;
CreateProcess(nil, cmd, nil, nil, True, 0, nil, nil, start_inf, proc_inf);
end;
Последний раз редактировалось Nullsleep; 04.09.2009 в 18:27..
|
|
|

04.09.2009, 18:29
|
|
Новичок
Регистрация: 03.06.2009
Сообщений: 22
Провел на форуме: 48718
Репутация:
5
|
|
Nullsleep, все равно окно видимое=( А у тебя его не видно?
|
|
|

04.09.2009, 18:30
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
У меня не видно) Но ты можешь скрыть браузер уже после его запуска.
|
|
|

04.09.2009, 18:51
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
Привет всем! нужно сделать кеширование данных в файле в одном файле!!! как лучше арганизовать это? данные будут иконки
|
|
|

04.09.2009, 18:54
|
|
Новичок
Регистрация: 03.06.2009
Сообщений: 22
Провел на форуме: 48718
Репутация:
5
|
|
NullSleep, какая у тебя ОС и какой браузер?)) Конечно, я могу скрыть браузер после запуска, но это некошерно. Можно ли получить хендл окна уже при запуске и скрыть его одновременно с запуском?
|
|
|

04.09.2009, 19:23
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Сообщение от Ixidor
NullSleep, какая у тебя ОС и какой браузер?)) Конечно, я могу скрыть браузер после запуска, но это некошерно. Можно ли получить хендл окна уже при запуске и скрыть его одновременно с запуском?
Можно получить хендл когда окно открыто (FindWindow помоему). Можно по заголовку.
|
|
|

04.09.2009, 19:32
|
|
Новичок
Регистрация: 03.06.2009
Сообщений: 22
Провел на форуме: 48718
Репутация:
5
|
|
Не, это я знаю. Я хотел получить хендл одновременно с открытием=)
|
|
|

04.09.2009, 23:17
|
|
Участник форума
Регистрация: 29.11.2007
Сообщений: 116
Провел на форуме: 283596
Репутация:
88
|
|
Flenov
Ну тогда попробуй это:
Код:
Function DownloadBFile(P: Pointer): Longint; Stdcall;
Const
CrLf: String = #$0d+#$0a;
Var
Fn: String;
F: File;
GetOut: Boolean;
WSAData: TWSAData;
hp: phostent;
a: tsockaddr;
IpAddress,Buffer: String;
Ts,Bs,Br,ContentLength,I: Integer;
MySock: TSocket;
Begin
Fn:=String(P^);
// ShowMessage('Attempting To Download File '+Fn);
WSAStartup($0101, WSAData);
mysock := socket(AF_INET, SOCK_stream, ipproto_tcp);
hp := gethostbyname('www.google.com'); //Сайт
Sleep(40);
if hp = nil then
begin
// ShowMessage('Could Not Resolve Name...');
exit;
end
else
begin
for i := 0 to hp^.h_length - 1 do
IPAddress:=IpAddress+IntToStr(Ord(Hp.h_addr_list^[i]))+'.';
SetLength(IPAddress,Length(IPaddress)-1);
end;
a.sin_family := AF_INET;
a.sin_port := htons(80);
A.sin_addr.S_addr:=inet_addr(Pchar(IpAddress));
I:=connect(mysock, a, sizeof(a));
buffer:='GET /test/'+fn+' HTTP/1.0'+CrLF+'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*'+CrLF+'Accept-Language: en-au'+CrLF+'Accept-Encoding: gzip, deflate'+CrLF+'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'+CrLF+'Host: '+IpAddress+CrLF+'Cache-Control: no-cache'+CrLf+'Connection: Close'+CrLF+Crlf;
I:=send(mysock, Buffer[1], Length(buffer), 0);
Sleep(30);
System.Assign(F,'c:\image.gif'); // Картинка куда сохранять
System.Rewrite(F,1);
ContentLength:=0;
SetLength(Buffer,5048);
FillChar(Buffer[1],Sizeof(Buffer),#0);
BS:=recv(mysock, buffer[1], 5048,0);
If (BS=Socket_Error) Or (BS=0) Then
Exit;
TS:=0;
BS:=0;
If (Copy(Buffer,1,15)='HTTP/1.1 200 OK') or (Copy(Buffer,1,15)='HTTP/1.0 200 OK') Then
Begin
Delete(Buffer,1,Pos('Content-Length:',Buffer)+15);
ContentLength:=StrToInt(Copy(Buffer,1,Pos(#$0d+#$0a,Buffer)-1));
Delete(Buffer,1,pos(#$0d+#$0a+#$0d+#$0a,Buffer)+3);
Form1.ProgressBar1.Max:=ContentLength div 1024;
If Trim(Buffer)<>'' Then
Begin
TS:=TS+Length(Buffer);
BlockWrite(F,Buffer[1],Length(Buffer));
SetLength(Buffer,5048);
End;
End
else
Exit;
Repeat
SetLength(Buffer,5049);
BS:=recv(mysock, buffer[1], 5048,0);
TS:=TS+Bs;
Form1.ProgressBar1.Position:=TS div 1024;
BlockWrite(F,Buffer[1],BS);
Until (BS=0) OR (Socket_Error=BS) Or (GetOut=True);
System.Close(F);
// Конец закачки;
End;
procedure TForm1.Button1Click(Sender: TObject);
Var
Th: Thandle;
begin
F:='mage.gif'; //Картинку которую качать
CreateThread(Nil,0,@DownloadBFile,@F,0,Th);
end;
П.С, Дурак он на то и дурак, что ничего вообще не знает )))
Последний раз редактировалось AKYLA; 04.09.2009 в 23:20..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|