Jump to content
«ПЛАНАР-СИТИ»
  • Announcements

    • DVN

      Борьба за Авторское право

      Предупреждаю всех и сразу, чтобы потом не было обид и обиженных. Согласно п.4.2.3 Правил форума с 13.03.2007 года все посты содержащие разного рода статьи, стихи, рассказы, обзоры и рецензии и т.д., и т.п. БЕЗ УКАЗАНИЯ копирайта будут сразу же удаляться в Корзину.
    • DVN

      Борьба за Авторское право-2

      Предупреждаю ЕЩЁ РАЗ, всех и сразу, чтобы потом не было обид и обиженных. Согласно п.4.2.3 Правил форума все посты содержащие разного рода статьи, стихи, рассказы, обзоры и рецензии и т.д., и т.п. БЕЗ УКАЗАНИЯ копирайта (авторства, ссылки на источник, откуда Вы взяли эту информацию) будут сразу же удаляться в Корзину. Если Вы автор представленной информации, так и пишите - © ник
Sign in to follow this  
ЗАРАЗА

X-Puzzle для кодера.

Recommended Posts

Случайно на старом диске обнаружила СОМ-файл размером всего 5 байт.

Его 16-ричный код: EA 00 00 FF FF

Что эта программа делает?

Share this post


Link to post
Share on other sites
Лучше задачки были б о паскале

48665[/snapback]

 

А это и есть задачка из учебника "Turbo Paskeal 6.0"

Тема называется "вставка коммандной строки в текст программы". :)

Share this post


Link to post
Share on other sites
Не шарю в машинных кодах. :lf_178:  :lf_gj:

48760[/snapback]

 

Это просто проверить.

Создай файл и впиши в него эти значения. Можно даже припомощи Паскаля.

Назови его "MOZOK.COM" перезагрузи комп в DOS или 98 командную строку. Можно загрузиться с загрузочного 98 или дискеты. Запусти файл MOZOK.COM и результат опиши в этой ветке. Гарантирую, что комп из-за программы не испортиться. :)

 

Зато потом на мониторе сможешь написать: LEVEL UP! (про машинные коды) :)

Edited by ЗАРАЗА

Share this post


Link to post
Share on other sites

У меня ничё с этим не получается, можно ещё задач, о паскале там, делфи, прологе, фортране. Их я знаю-эт точно!!! :blink:

Share this post


Link to post
Share on other sites

У меня ничё с этим не получается, можно ещё задач, о паскале там, делфи, прологе, фортране. Их я знаю-эт точно!!! :blink:

Могу поспорить ,что у тебя стоит ХРюша.ЗАРАЗка :D же написала,что пробовать на 98 винде.Или в DOS'е

Share this post


Link to post
Share on other sites

Ну что, герои нашего времени?!

Отдохнули?

Теперь пора поднимать рейтинги своего мозга!!! :blink:

 

Итак, очередная задача.

(по малочисленным просьбам)

 

Есть 1 комп, 2 видеокарты и 2 монитора.

Написать программу на Delphi, которая показывает заданный видеоролик (*.avi сжатый DivX 5) на втором (!) мониторе на полный экран.

 

TMediaPlayer не использовать.

_______________________________________________________

Мне на решение этой задачи понадобилось 3 ночи

Задействованы системы Delphi 7, DirectX 9c.

Хочу увидеть текст в исходнике с описанием.

_______________________________________________________

Кто первый? :D

Share this post


Link to post
Share on other sites

на втором (!) мониторе на полный экран.

А можно сначала на первом? :blink:

Share this post


Link to post
Share on other sites
Ну что, герои нашего времени?!

Отдохнули?

 

Задействованы системы Delphi 7

Скинь для начала данную версию...на ФТП

 

Ну что, герои нашего времени?!

Написать программу на Delphi

Это тогда на какой??

Share this post


Link to post
Share on other sites

А можно сначала на первом? <_<

 

На первом и я могу.

 

Скинь для начала данную версию...на ФТП

 

Это тогда на какой??

 

На любой! (включи фантазию)

А 7-я уже давно на фтп.

Даже 2006-я триал есть.

Edited by ЗАРАЗА

Share this post


Link to post
Share on other sites

А 7-я уже давно на фтп.

Даже 2006-я триал есть.

Ты живёшь на 1 площе. Я в городе.

На городсаом ФТП нет. На фтп площадки выйти я не могу... Нет доступа

Share this post


Link to post
Share on other sites

А 7-я уже давно на фтп.

Даже 2006-я триал есть.

Ты живёшь на 1 площе. Я в городе.

На городсаом ФТП нет. На фтп площадки выйти я не могу... Нет доступа

Share this post


Link to post
Share on other sites

Ты живёшь на 1 площе. Я в городе.

На городсаом ФТП нет. На фтп площадки выйти я не могу... Нет доступа

 

На сколько мне известно, то у каждого, кто программирует на паскалеподобных языках, есть хот одна из версий Делфи. Можно скачать с инета любую из версий, если уметь пользоваться поиском. В конце концов попроси DVNа продублировать с площадки на город Делфи.

 

А вообще: кто хочет, тот ищет возможность, а кто не хочет - тот ищет причину!

 

В интернете есть бесплатная альтернатива Делфи - это для любителей просить серийники и кряки.

Я не взламываю программы на заказ, не продаю серийные номера и не торгую номерами кредиток.

 

Блин. Просто слов нет. Тем кто не догадался: любая моя задача - это тест на выявление потенциального работника для той или иной организации. Программа на Делфи с видео - это шанс работат в информационно-рекламной компании с солидной зарплатой. Возраст и пол значения не имеет.

Мне это нафиг не нужно - я уже работаю. А ВЫ?!

 

Вот ответ на первую половину задачи:

Form1.BoundsRect:=Screen.Monitors[1].WorkareaRect;// или .BoundsRect; - выводит форму на второй монитор на полный экран.

 

Неужели так сложно??? Всего одна строка.

Ссылки по DirectX 9c написать для второй половины задачи? А вот не буду. :)

До понедельника (29.01.2007) жду ответ.

Share this post


Link to post
Share on other sites

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, OleCtrls, WMPLib_TLB, StdCtrls, ComCtrls;

 

type

TForm1 = class(TForm)

animate: TAnimate;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

animate.FileName:='e:\music\gg.swf';

animate.Play(1,an.FrameCount,1);

Form1.BoundsRect:=Screen.Monitors[1].WorkareaRect;

end;

 

end.

Edited by -Andre-

Share this post


Link to post
Share on other sites

А можно задачку на пхп :D ? просто кроме пхп и штмл ничо не изучал :)

Edited by Акито

Share this post


Link to post
Share on other sites

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, WMPLib_TLB, StdCtrls, ComCtrls;

type
 TForm1 = class(TForm)
animate: TAnimate;
Button1: TButton;
procedure Button1Click(Sender: TObject);
 private
{ Private declarations }
 public
{ Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
animate.FileName:='e:\music\gg.swf';
animate.Play(1,an.FrameCount,1);
Form1.BoundsRect:=Screen.Monitors[1].WorkareaRect;
end;

end.

 

Вот тут есть ошибки.

Даже не запуская код программы видно невооружённым глазом.

 

При нажатии на кнопку Button1 Форма Form1 развернётся на второй монитор, и то при наличии второй видеокарты (иначе программа выдаст ошибку) а окно анимации останется маленьким.

Кроме того для воспроизведения Флэш-анимации нужен другой подход. Класс TAnimate воспроизводит ТОЛЬКО (!) несжатые AVI-файлы. Это вторая ошибка.

 

Для воспроизведения Флэш-анимации нужен модуль ShockwaveFlashObjects_TLB и класс TShockwaveFlash. Ставится как дополнительный компонент в Делфи. Это же касается и DirectX.

Но вернёмся к нашим ... хм... правильно догадались. :D

 

Вот так выглядит сама процедура:

[b]procedure PlayClip(ClipName:String);
begin[/b]
 if Assigned(pGraphBuilder) then pGraphBuilder := nil;
 if Assigned(pCaptureGraphBuilder2) then pCaptureGraphBuilder2 := nil;
 if Assigned(pSourceFile) then pSourceFile := nil;
 if Assigned(pMediaControl) then pMediaControl := nil;
 if Assigned(pMediaEvent) then pMediaEvent := nil;
 if Assigned(pVideoWindow) then pVideoWindow := nil;

CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder, pGraphBuilder);
CoCreateInstance(CLSID_CaptureGraphBuilder2, nil, CLSCTX_INPROC, IID_ICaptureGraphBuilder2, pCaptureGraphBuilder2);
pCaptureGraphBuilder2.SetFiltergraph(pGraphBuilder);
pGraphBuilder.AddSourceFilter(StringToOleStr(ClipName), '', pSourceFile);
pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
pCaptureGraphBuilder2.RenderStream(nil, nil, pSourceFile as IBaseFilter, nil, nil);

[color=#3366FF] //На втором мониторе[/color]
pGraphBuilder.QueryInterface(IID_IVideoWindow, pVideoWindow);
pVideoWindow.put_Owner(Form2.Panel1.Handle);
pVideoWindow.put_WindowStyle(WS_CHILD);

 pVideoWindow.put_Left(0);
 pVideoWindow.put_Width(Form2.Panel1.Width);
 pVideoWindow.put_Top(0);
 pVideoWindow.put_Height(Form2.Panel1.Height);

[color=#3366FF]//Спрятать курсор на окне воспроизведения[/color]
 pVideoWindow.HideCursor(True);

[color=#3366FF]//проигрываем видео[/color]
pMediaControl.Run;
[color=#3366FF]//Задержка до конца воспроизведения[/color]
 pMediaEvent.WaitForCompletion(INFINITE, evCode);

end;

 

Так что незачёт.

Share this post


Link to post
Share on other sites

Так это само решение? Или нет? :D Я с графикой ваще никогда не работал, единственное, что знаю-сеть(чуть) и криптографию(хотя тоже не очень...). А, и чёто там с файлами пытался...

Edited by -Andre-

Share this post


Link to post
Share on other sites

Так это само решение? Или нет? :D Я с графикой ваще никогда не работал, единственное, что знаю-сеть(чуть) и криптографию(хотя тоже не очень...). А, и чёто там с файлами пытался...

 

У меня это работает.

 

Чтобы нарисовать данную процедуру пришлось полазить по инету, Чего и Вам советую.

Share this post


Link to post
Share on other sites

На сколько мне известно, то у каждого, кто программирует на паскалеподобных языках, есть хот одна из версий Делфи. Можно скачать с инета любую из версий, если уметь пользоваться поиском. В конце концов попроси DVNа продублировать с площадки на город Делфи.

 

читаем подробнее ТУТ

Share this post


Link to post
Share on other sites

Мнда......

Ну и дела...

 

 

Ну и где же эти крутые програмеры???

Вот доработанный код, который проигрывает видео любого формата (avi, mpg, mp4, flv, mov .. при наличии кодеков).

procedure PlayClip(ClipName:String);
var evCode, lpParam1, lpParam2: Integer;
tim1, tim2, dim: Int64;
{__________ВСЁ РАБОТАЕТ___________}
begin
// Инициализация 
CoInitialize(nil);
// Открытие интерфейса
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, pGraphBuilder);
// Установка буфера управления
 pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
// Установка реакции на отклик
 pGraphBuilder.QueryInterface(IID_IMediaEventEx, pMediaEvent);
// Связь с видеофайлом
 pGraphBuilder.RenderFile(PWideChar(WideString(ClipName)), Nil);
// Установка буфера счётчика
 pGraphBuilder.QueryInterface(IID_IMediaSeeking, pSeek);
// получение длинны клипа по времени
 pSeek.GetDuration(tim1);
// Открытие выходного интерфейса
 pGraphBuilder.QueryInterface(IID_IVideoWindow, pVideoWindow);
// Установка области вывода видео
 pVideoWindow.put_Owner(Form.Panel1.Handle);
// Установка позиции окна
 pVideoWindow.SetWindowPosition(0,0,Form.Panel1.ClientRect.Right,Form.Panel1.ClientRect.Bottom);
// Установка стиля окна - без рамок
pVideoWindow.put_WindowStyle(WS_CHILD);
// то же что и pVideoWindow.SetWindowPosition можно удалить
 pVideoWindow.put_Left(0);
 pVideoWindow.put_Width(Form.Panel1.Width);
 pVideoWindow.put_Top(0);
 pVideoWindow.put_Height(Form.Panel1.Height);
//Спрятать курсор на окне воспроизведения
 pVideoWindow.HideCursor(True);

 weiter:=true;
// Запуск потока просмотра
 pMediaControl.Run;

 while weiter do
 begin
if pMediaEvent.GetEvent(evCode, lpParam1, lpParam2, 0)<>E_ABORT then
begin
  if evCode=EC_COMPLETE then weiter:=false;
  pMediaEvent.FreeEventParams(evCode, lpParam1, lpParam2);
end;
// Определить позицию по времени
pSeek.GetPositions(tim2, dim);
Application.ProcessMessages;
 end;
//  Очистить буфер
 pVideoWindow.put_Visible(FALSE);
 pVideoWindow.put_Owner(0);
 pVideoWindow._Release;
 Pointer(pVideoWindow):=Nil;
 pMediaControl._Release;
 Pointer(pMediaControl):=Nil;
 pMediaEvent._Release;
 Pointer(pMediaEvent):=Nil;
 pGraphBuilder._Release;
 Pointer(pGraphBuilder):=Nil;

// Возврат в нормальный режим
CoUninitialize;

end;

 

Нате, пользуйтесь!!! :D

Фактически это готовый мультимедиаплеер!

_____________________________________________________

 

Вот новая задача на DELPHI 7:

Передать и принять данные через RS232 (COM1)

Длинна данных - 8 байт

Это просто.

Share this post


Link to post
Share on other sites

 
var
f:file;
str:string;
begin
assignfile(f,com1); reset(f,1);
if length(memo1.text)>8 then str:=copy(memo1.text, 1, memo1.text[8]);
write(f,str);
end.

 

Через UDP:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
 IdUDPClient, StdCtrls, IdSocketHandle, abcexctl, MPlayer, ExtCtrls,
 IdIPWatch;

type
 TForm1 = class(TForm)
CL: TIdUDPClient;
Sr: TIdUDPServer;
Memo1: TMemo;
Button1: TButton;
Edit2: TEdit;
abcBackground1: TabcBackground;
Memo2: TMemo;
Button2: TButton;
Label1: TLabel;
Button3: TButton;
mp: TMediaPlayer;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure SrUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
 private
{ Private declarations }
 public
{ Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin										 
cl.Send(edit2.Text+' '+ edit1.Text);		   
end;

Share this post


Link to post
Share on other sites

Неплохо, для 9х пойдёт, а вот с 32-разрядными версиями и выше будут проблемы, темболее, что было ясно указано для какой версии Делфи нужно разработать решение задачи.

 

Как решить эту задачу для 2000/XP/2003?

Share this post


Link to post
Share on other sites

Да есть она, просто лшицензия собака... ну вобщем ты понял. Если что, пиши, скину. :D

Share this post


Link to post
Share on other sites

Да есть она, просто лшицензия собака... ну вобщем ты понял. Если что, пиши, скину. :D

давай на город

заранее спс!!!

 

Неплохо, для 9х пойдёт, а вот с 32-разрядными версиями и выше будут проблемы, темболее, что было ясно указано для какой версии Делфи нужно разработать решение задачи.

 

Как решить эту задачу для 2000/XP/2003?

Должно идти... А UDP точно пойдёт!! Пробовал(типа чат писал...)

Share this post


Link to post
Share on other sites

Да есть она, просто лшицензия собака... ну вобщем ты понял. Если что, пиши, скину. :D

 

Вот ключ на Делфи 7

reg107.zip

 

Там всё написано как пользоваться на англ. :)

Пользуйтесь!

Share this post


Link to post
Share on other sites

Так как с COM портом никто не разобрался

Привожу правильный ответ:

 

Несложно найти в сети простую и бесплатную компоненту bcomport.zip, котороая правильно реализует вызов API-функции для работы с портом. Именно с этой компонентой в программе устройство заработало.

В Архиве содержаться примеры и описание установки компоненты.

 

Отмечаю -Andre- за старательные попытки разобраться в программировании на языке Паскаль ООП, и присваиваю ему звание СОИСКАТЕЛЬ :)

 

Остальные - леньтяи.

По просьбе желающих, следующие задачи будут на ПХП!

Share this post


Link to post
Share on other sites

По просьбе желающих, следующие задачи будут на ПХП!

ОК! Бросаю делфи, учу ПШП!!!

Share this post


Link to post
Share on other sites

Блиц

Так как вы научились пользоваться поисковыми системами, а думать не научились:

 

В листинге программы есть серьёзная уязвимось безопасности.

Найти и устранить!

 

<?
if (isset($_GET[dir]))
{
$dir = $_GET[dir];
system("echo $dir");
}
?>

 

Кто первый? :post-732-1162280670:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×