Code: winexec(PChar('cmd /c "c:\Program Files\Mozilla Firefox\firefox.exe" http://rambler.ru/'),SW_Hide); Тестировал сейчас, все нормально работает (через командную строку открывает)
Все это очень странно. У меня окно все так же видно как и функцией shellExecute=((( А у тебя оно точно невидимо было?
параметр SW_HIDE отвечает за невидимость окна. Однако окно, почему-то, невидимым не получается. И это происходит именно при открытии определенного сайта браузером. Например, при открытии текстого документа блокнотом так окно сделать невидимым получалось...
Какую ф-цию используешь? Как хендл ищеш? По заголовку? И вообще, какое именно окно ты пытаешся скрыть? Опиши подробней.
Вот описание проблемы. Я хочу сделать окно сразу невидимым(при открытии). Использую функцию ShellExecute
wolmer, а такой код не работает? Code: 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;
Ixidor, попробуй такой код Code: 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, какая у тебя ОС и какой браузер?)) Конечно, я могу скрыть браузер после запуска, но это некошерно. Можно ли получить хендл окна уже при запуске и скрыть его одновременно с запуском?
Flenov Ну тогда попробуй это: Code: 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; П.С, Дурак он на то и дурак, что ничего вообще не знает )))
Кароче в школе задали В школе задали написать на делфи консольный калькулятор, а мне делфи влом качать, да и комп не потянет((((У меня тетрис вот кароче часть кода Code: Begin writeln('vvedi chislo'); readkn(x.y); writeln('vvedite deystvie'); readln (d) if d='+' then z:= x+y т.е сделать в общем надо простой калькулятор,но с сюрпризом... ф-ции: 1)чтоб делил, складывал и умножал...больше ниче ненадо 2)Сюрприз заключаеться в том...чтобы когда кто нить на 0 делил...в консоле писалось ERROR и комп ребутался))))) Если не трудно напишите пожалуто...если можно...скомпилируйте))))Буду очень благодарен!
Имхо смотреть надо в сторону SendMessage RE: Кароче в школе задали Скомпилированный калькулятор и исходники тут . После того как попробуют разделить на 0 сообщаем "Error ...", после чего ждем 2 секунды и shutdown.
Ixidor Что-то типа такого для фаера Code: uses ddeman; function GetURL(Browser: string): string; var Client_DDE: TDDEClientConv; temp: PChar; begin Result := ''; Client_DDE:= TDDEClientConv.Create( nil ); with Client_DDE do begin SetLink(Browser, 'WWW_GetWindowInfo'); temp := RequestData('0xFFFFFFFF'); Result := StrPas(temp); // Return only the URL part Delete(Result, Pos(',', Result), Length(Result)-Pos(',', Result)+1); // Remove quotes Delete(Result, 1, 1); Delete(Result, Length(Result), 1); // ************ StrDispose(temp); CloseLink; end; Client_DDE.Free; end; procedure SetURL(URL, Browser: String); var Client_DDE: TDDEClientConv; begin Client_DDE := TDdeClientConv.Create(nil); with Client_DDE do begin SetLink( Browser, 'WWW_Activate' ); RequestData('0xFFFFFFFF'); SetLink( Browser, 'WWW_OpenURL' ); RequestData(URL + ',,0xFFFFFFFF,0x3,,,'); CloseLink; end; Client_DDE.Free; end; //Вызов SetURL('http://forum.sources.ru/','FireFox');
у меня такая проблемка,..как изменять свойства обьектов на форме из длл? есть програмка - монитор окон пишет в лог все имена окон, которые открывались и закрывались. На форме есть 2 кнопки, код монитора записан в длл, вот кусок Code: HCBT_DESTROYWND: begin GetWindowText(WParam,@WindowName,MAX_PATH); if WindowName='' then exit; NewStr:='Window destoyed at '+GetTime; NewStr:=NewStr+'. Window name '+WindowName+#13#10; if WindowName='NetSpeakerphone' then //ето условие определяет закрылось ли окно, надо ели закрылось, то спрятать кнопку на форме end;