Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как программно захватить картинку с вебкамеры? 
:(
    Опции темы
Гога
Дата 25.12.2003, 21:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите, пожалуйста, как из программы захватить картинку с вебкамеры (USB)?
  Вверх
Guest
Дата 8.6.2004, 14:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

Graphics::TBitmap* BMP= new Graphics::TBitmap;

//Создаем пустую картинку
BITMAPINFO BmpInfo;                                                            
memset(&BmpInfo,0,sizeof(BmpInfo));                                            
BmpInfo.bmiHeader.biSize=sizeof(BmpInfo);                                      
BmpInfo.bmiHeader.biBitCount=24;                                            
BmpInfo.bmiHeader.biWidth=320;                                              
BmpInfo.bmiHeader.biHeight=240;                                            
BmpInfo.bmiHeader.biPlanes=1;                                                  
BmpInfo.bmiHeader.biCompression=BI_RGB;                                        
BmpInfo.bmiHeader.biSizeImage=320*240*3;

HWnd=capCreateCaptureWindow("Okno",WS_CHILD, 0,0,320,240,Handle,0); //Окно захвата
SendMessage(HWnd,WM_CAP_DRIVER_CONNECT,0,0);                                  
capSetVideoFormat(HWnd,&BmpInfo,sizeof(CAPSTATUS));                            
SendMessage(HWnd,WM_CAP_PAL_AUTOCREATE,0,0);                                    
CAPDRIVERCAPS CDC;                                                          
capDriverGetCaps(HWnd,&CDC,sizeof(CDC));                                  
capSetUserData(HWnd,(long)this);                                              
ShowWindow(HWnd,SW_SHOWNORMAL);                                                
SendMessage(HWnd,WM_CAP_SET_CALLBACK_FRAME,0,int(&FrameCallback);            
SendMessage(HWnd,WM_CAP_GRAB_FRAME,0,0); //Грабим картинку

LRESULT CALLBACK FrameCallback(HWND HWnd, LPVIDEOHDR lpVHdr)                            
{
unsigned long size=capGetVideoFormatSize(HWnd);                                
BITMAPINFO *lpINF=(BITMAPINFO*)(new char[size]);                                
capGetVideoFormat(HWnd,lpINF,size);                                                  
LPBITMAPINFOHEADER lpIST=(LPBITMAPINFOHEADER)lpINF;
BMP->Width=lpIST->biWidth;                                                
BMP->Height=lpIST->biHeight;                                              
SetDIBits(BMP->Canvas->Handle,BMP->Handle,0,lpIST->biHeight,lpVHdr->lpData,lpINF,DIB_RGB_COLORS);      
delete lpINF;
return true;
}

  Вверх
Guest
Дата 23.9.2004, 18:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











//---------------------------------------------------------------------------

#include <vcl.h> // Библиотека компонентов Buildera
#include <MmSystem.h> // Библиотека системных потоков
#include <vfw.h> // Библиотека драйверов WDM
#include <wingdi.h> // Библиотека диспечеров вывода потока
#include <winuser.h> // Библиотека пользователя WDM
#include <Clipbrd.hpp> // Библиотека ScreenServera (клиборд)
#include <Sysutils.hpp> // Библиотека определения свободного места
#include <mmsystem.h> // Привод CDR
#include <fstream.h>; // Поток файла
#include <systdate.h>; // системное время
#include <process.h> // процессорный момент
#pragma hdrstop // Библиотека указателей функций
#include "Unit1Panel.h" // Библиотека портатипов функций
//---------------------------------------------------------------------------
#pragma package(smart_init)// Быстрая инициализация
#pragma link "LMDCustomComboBox"
#pragma link "LMDDriveComboBox"
#pragma link "LMDCustomComponent"
#pragma link "LMDIniCtrl"
#pragma link "LMDBaseDialog"
#pragma link "LMDContainerComponent"
#pragma link "LMDDirDlg"
#pragma link "LMDGlobalHotKey"
#pragma link "LMDStarter"
#pragma resource "*.dfm" // Подключаемый ресурс
TForm1 *Form1; // Конструктор формы
Graphics::TBitmap *Bitmap = new Graphics::TBitmap();
_SECURITY_ATTRIBUTES *lpSecAttrib;
HWND VFWAPI hWndC; // Handle драйвера захвата видео
HWND hVideo; // Handle окна драйвера захвата
CAPTUREPARMS SetupVideo; // Настройки драйвера захвата
CAPSTATUS s; // Положение параметров драйвера захвата
CAPDRIVERCAPS cpDriver; // Определяет возможности драйвера захвата
ICINFO Cinfo;
int errs;
//---------------------------------------------------------------------------
// Структуры Устройства захвата
BOOL VFWAPI wfDriver; // Присутствие платы
WORD wSize=0xfffffff; // Структура Длинны
WORD wDriverIndex; // Индекс драйвера 0.....9
LPSTR lpszName; // Указатель на буфер с именем устройства захвата
INT cbName=255; // Размер буфера для имени драйвера
LPSTR lpszVer; // Указатель на буфер с версией драйвера захвата
INT cbVe=255; // Размер для буфера с версией драйвера захвата
DWORD dwRequestMicroSecPerFrame = 33333;//скорость кадров в микросекундах
BOOL fMakeUserHitOKToCapture; // включает диалог подтверждения записи
UINT wPercentDropForError; // максимально допустимый процент выпадения кадров
BOOL fYield; // включает создания дополнительного фонового подтока для захвата видео
DWORD dwIndexSize; // максимальное количество индексов файла
UINT wChunkGranularity;
BOOL fUsingDOSMemory; // Использование памяти
UINT wNumVideoRequested;
BOOL fCaptureAudio; // указывает, записывать ли звук
UINT wNumAudioRequested;
UINT vKeyAbort; // устанавливает кнопку, нажатием которой можно прервать запись
BOOL fAbortLeftMouse; // активизирует прерывание записи нажатием левой клавиши мыши
BOOL fAbortRightMouse; // активизирует прерывание записи нажатием правой клавиши мыши
BOOL fLimitEnabled;
UINT wTimeLimit;
BOOL fMCIControl;
BOOL fStepMCIDevice;
DWORD dwMCIStartTime;
DWORD dwMCIStopTime;
BOOL fStepCaptureAt2x;
UINT wStepCaptureAverageFrames;
DWORD dwAudioBufferSize;
BOOL fDisableWriteCache;
UINT AVStreamMaster;
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
//---------------------------------------------------------------------------
UINT uiImageWidth;
UINT uiImageHeight;
BOOL fLiveWindow;
BOOL fOverlayWindow;
BOOL fScale;
POINT ptScroll;
BOOL fUsingDefaultPalette;
BOOL fAudioHardware;
BOOL fCapFileExists;
DWORD dwCurrentVideoFrame;
DWORD dwCurrentVideoFramesDropped;
DWORD dwCurrentWaveSamples;
DWORD dwCurrentTimeElapsedMS;
HPALETTE hPalCurrent;
BOOL fCapturingNow;
DWORD dwReturn;
UINT wNumVideoAllocated;
UINT wNumAudioAllocated;

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Переменные используемые в программе
__int64 FreeSpaceDisk; // Свободное место на диске в байтах
float FreeSpaceDiskC; // Свободное место на диске в килобайтах
int HeightW; // Ширина окна WDM
int WidthW; // Высота окна WDM
bool DriverWDM = 0; // По умолчанию плат захвата нет
char *Name_; // Имя устройства захвата видео
int TempDriver; // Времянная переменная
AnsiString Expansion; // расширение нмини файла
AnsiString FileNameStart; // созданое мимя файла
AnsiString FileNamePatch; // Путь к файлу
AnsiString FULLFILENAME; // Полное имя файла
bool Codek = false; // по умолчанию кодек не используется
int KeyPres = 0; // Флаг нажатия кнопки REC \ PAUSE
const char *DIR; // Служебная
int hor,minut,minut2,sec,sec2;// часы минуты секунды
AnsiString OLDRECORDFILE; // последний записанный файл
bool Limited = 0; // от чайников
AnsiString Temp; // служебная
AnsiString Temp1; // служебная
bool CDR_W = 0; //
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
int i; // Для зачистки ненужного
AnsiString str_data =DateToStr(Date()); // Дата начала операции
i=str_data.AnsiPos("."); // Убираем ненужное
str_data.Delete(i,1); // Убираем ненужное
i=str_data.AnsiPos("."); // Убираем ненужное
str_data.Delete(i,1); // Убираем ненужное
str_data = "C:\\ARCHIV\\" + str_data; // полный путь к базе
DIR = str_data.c_str(); // Получаем дату
CreateDirectory("C:\\ARCHIV\\",lpSecAttrib); // Место для хранения
CreateDirectory(DIR,lpSecAttrib); // Создаем директорию с датой
HWND hVideo = WDMWindows->Handle; // Получаем Handle окна видео
FreeSpaceDiskC = DiskFree(3)/1024; // Свободное место на диске С в Kb
HeightW = WDMWindows->Height; // Ширина окна сбора
WidthW = WDMWindows->Width; // Высота окна сбора
// Создаем окно сбора видео "WDMWindows"
hWndC = capCreateCaptureWindow (" ",WS_CHILD | WS_VISIBLE,0,0,WidthW,HeightW,hVideo,0);
// Проверяем наличие плат захвата
capDriverConnect(hWndC,0); // Конектимся к драйверу
capGetStatus(hWndC,&s,sizeof(s)); // Читаем настройки
capOverlay(hWndC,1); // Работаем через оверлей
capCaptureGetSetup(hWndC,&SetupVideo,sizeof(SetupVideo)); // Читаем настройки
SetupVideo.dwRequestMicroSecPerFrame = 33333;// 30 кадров в секунду
SetupVideo.fMakeUserHitOKToCapture = 0; // Отключаем подтверждение записи
SetupVideo.fYield = 1; // Запускаем 2 поток
SetupVideo.wPercentDropForError=100; // Допускаем выпадение 100 %
SetupVideo.wChunkGranularity=sizeof wChunkGranularity;//1000; //
SetupVideo.fUsingDOSMemory = true; // Блокируем остановку
SetupVideo.fAbortLeftMouse=0; // Блокируем остановку по мышке
SetupVideo.fAbortRightMouse=0; // Блокируем остановку по мышке
SetupVideo.fLimitEnabled=0; // Снимаем блокировку на лимит времени
SetupVideo.dwIndexSize=0xffffffff; // Максимальный номер индексных данных в файле AVI
SetupVideo.AVStreamMaster=AVSTREAMMASTER_NONE;//длительность аудио и видео потоков может отличиться
SetupVideo.fMCIControl=false; // Контроль по времени обрубаем
SetupVideo.fStepMCIDevice=false; // на всякий случай
//SetupVideo.fStepCaptureAt2x=true; // двойное качество
//SetupVideo.dwAudioBufferSize=sizeof dwAudioBufferSize; // Сформируется сам
SetupVideo.fDisableWriteCache=1;
capCaptureSetSetup(hWndC,&SetupVideo,sizeof(SetupVideo)); // Заполняем структуру настроек
capDriverGetCaps(hWndC,&cpDriver,sizeof(cpDriver));
capGetStatus(hWndC,&s,sizeof(s));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
SystemTime->Caption = DateToStr(Date())+ " "+ TimeToStr(Time()); // отображаем на фоне
capGetStatus(hWndC,&s,sizeof(s)); // Проверяем статус
FreeSpaceDiskC = DiskFree(3);
if(s.fCapturingNow==1) // Запись пошла ?
{
Label1->Caption="Записано : "+ IntToStr(hor) + " час. "
+ IntToStr(minut2)+ " мин. "
+ IntToStr(sec2) + " сек. ";

sec = (s.dwCurrentTimeElapsedMS/1000); // получаем секунды
sec2 = sec; // некоторые преобразования
if (sec2>=60) sec2=sec2-(60*minut); // получаем минуты
minut = (s.dwCurrentTimeElapsedMS/60000);// преобразования
minut2 =minut;
if (minut2>=60) minut2=minut2-(60*hor);
hor = minut / 60; // соответственно часы
Label2->Caption="Обработано : "+IntToStr(s.dwCurrentVideoFrame)+" кадров.";
Label4->Caption="Стробовых : "+IntToStr(s.dwCurrentVideoFramesDropped)+" кадров.";
Label3->Caption="Свободно : " + FloatToStr(FreeSpaceDiskC)+" Байт";
StatusBar1->Panels->Items[1]->Text = " Идет Запись "; // С статус бар путь с именем
}
else
{
Label1->Caption=" "; // в случае если нет записи
Label2->Caption=" "; // в случае если нет записи
Label3->Caption=" "; // в случае если нет записи
Label4->Caption=" ";
StatusBar1->Panels->Items[1]->Text = " ";// С статус бар путь с именем
}
Application->ProcessMessages(); // перерисовка заполнения
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonARCClick(TObject *Sender)
{
ButtonARC->Font->Color=clRed; // кнопку красным
ButtonEDT->Font->Color=clBlack; // кнопку черным
Expansion= ".MPEG"; // Расширение .MPEG
FileNameStart = "A_"; // Заголовок файла
LMDIniCtrl1->WriteBool("Состояние","ARC",true); // Состояние кнопки ARC - вкл
LMDIniCtrl1->WriteBool("Состояние","EDT",false); // Состояние кнопки EDT - выкл
Codek = true; // Покажем кодеки
BYTE keys[256]; // имитация комбинации
GetKeyboardState(keys); // имитация комбинации
keys[17]=128; // имитация комбинации
SetKeyboardState(keys); // имитация комбинации
keybd_event(87,0,0,0); // имитация комбинации
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonEDTClick(TObject *Sender)
{
ButtonEDT->Font->Color=clRed; // кнопку красным
ButtonARC->Font->Color=clBlack; // кнопку черным
Expansion= ".AVI"; // Расширение .AVI
FileNameStart = "E_"; // Заголовок файла
LMDIniCtrl1->WriteBool("Состояние","ARC",false); // Состояние кнопки ARC - выкл
LMDIniCtrl1->WriteBool("Состояние","EDT",true); // Состояние кнопки EDT - вкл
Codek = false; // Диалок с кодеками не кажем
BYTE keys[256]; // имитация комбинации
GetKeyboardState(keys); // имитация комбинации
keys[17]=128; // имитация комбинации
SetKeyboardState(keys); // имитация комбинации
keybd_event(69,0,0,0); // имитация комбинации
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonHDDClick(TObject *Sender)
{
ButtonHDD->Font->Color=clRed; // кнопку красным
ButtonCDR->Font->Color=clBlack; // кнопку черным
LMDIniCtrl1->GetIniName(); // Откроем INI файл
FileNamePatch = LMDDirDlg1->Path; // Директория пути к файлу
LMDIniCtrl1->WriteBool("Состояние","HDD",true); // Состояние кнопок в INI
LMDIniCtrl1->WriteBool("Состояние","CDR",false); // Состояние кнопок в INI
CDR_W = 0;
LMDIniCtrl1->WriteString("Путь","Каталог",Temp1); // последний каталог
BYTE keys[256]; // имитация комбинации
GetKeyboardState(keys); // имитация комбинации
keys[17]=128; // имитация комбинации
SetKeyboardState(keys); // имитация комбинации
keybd_event(67,0,0,0); // имитация комбинации
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonCDRClick(TObject *Sender)
{

ButtonCDR->Font->Color=clRed; // кнопку красным
ButtonHDD->Font->Color=clBlack; // кнопку черным
LMDIniCtrl1->WriteBool("Состояние","HDD",false); // CD-R Активен
LMDIniCtrl1->WriteBool("Состояние","CDR",true); //Состояние кнопок в INI
CDR_W = 1;
BYTE keys[256]; // имитация комбинации
GetKeyboardState(keys); // имитация комбинации
keys[17]=128; // имитация комбинации
SetKeyboardState(keys); // имитация комбинации
keybd_event(88,0,0,0); // имитация комбинации
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonREC_PAUSEClick(TObject *Sender)
{
if (LMDIniCtrl1->ReadBool("Состояние","ARC",1)==1) ButtonARC->Click(); // ARC -вкл
if (LMDIniCtrl1->ReadBool("Состояние","ARC",1)==0) ButtonEDT->Click(); // ARC -выкл
if (LMDIniCtrl1->ReadBool("Состояние","HDD",1)==1) ButtonHDD->Click(); // ARC -вкл
if (LMDIniCtrl1->ReadBool("Состояние","HDD",1)==0) ButtonCDR->Click(); // ARC -выкл

FileNamePatch = LMDIniCtrl1->ReadString("Путь","Каталог","C:\\"); //Активная или НЕТ
BYTE keys[256];
GetKeyboardState(keys); // имитация комбинации
keys[17]=128; // имитация комбинации
SetKeyboardState(keys); // имитация комбинации
keybd_event(45,0,0,0); // имитация комбинации
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StartRECORDKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
KeyPres++; // выставили флаг записи
ButtonREC_PAUSE->Caption="RECORD"; // надпись на кнопке
ButtonREC_PAUSE->Font->Color=clRed; // красным цветом
ButtonARC->Enabled=false; // отключаем все кнопки
ButtonEDT->Enabled=false; //
ButtonCDR->Enabled=false; //
ButtonHDD->Enabled=false; //
ButtonPLAY->Enabled=false; //
STARTRECORDING(); // запуск функции записи
Timer2->Enabled=true;
if (KeyPres==2) // Второе нажатие на клавишу
{
ButtonREC_PAUSE->Font->Color=clBlack; //надпись черным
ButtonREC_PAUSE->Caption="REC/AUTO"; // меняем название
KeyPres=0; // флаг сбросили
ButtonARC->Enabled=true; // включаем
ButtonEDT->Enabled=true; // все
ButtonCDR->Enabled=true; // кнопки
ButtonHDD->Enabled=true; //
ButtonPLAY->Enabled=true; //
Codek = false; // Диалок с кодеками не кажем
Timer2->Enabled=false;
Timer3->Enabled=false;
StaticText1->Font->Color=clBlack;
STOPRECORDING(); // функция стоп записи
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKey1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
SendMessage(hWndC,WM_CAP_DLG_VIDEOSOURCE,0,0L); // Диалог выбора устройства
}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKey2KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
SendMessage(hWndC,WM_CAP_DLG_VIDEOCOMPRESSION,0,0L); // Диалог компрессии
}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKey3KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
SendMessage(hWndC,WM_CAP_DLG_VIDEOFORMAT,0,0L); // Формат видео
}
//---------------------------------------------------------------------------
void __fastcall TForm1::LMDGlobalHotKeyARCKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
// Действие по нажатию Ctrl+W
ButtonARC->Font->Color=clRed; // кнопку красным
ButtonEDT->Font->Color=clBlack; // кнопку черным
Expansion= ".MPEG"; // Расширение .MPEG
FileNameStart = "A_"; // Заголовок файла
LMDIniCtrl1->WriteBool("Состояние","ARC",true); // Состояние кнопки ARC - вкл
LMDIniCtrl1->WriteBool("Состояние","EDT",false); // Состояние кнопки EDT - выкл
Codek = true; // Покажем кодеки

}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKeyEDTKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
// Действие по нажатию Ctrl+У
ButtonEDT->Font->Color=clRed; // кнопку красным
ButtonARC->Font->Color=clBlack; // кнопку черным
Expansion= ".AVI"; // Расширение .AVI
FileNameStart = "E_"; // Заголовок файла
LMDIniCtrl1->WriteBool("Состояние","ARC",false); // Состояние кнопки ARC - выкл
LMDIniCtrl1->WriteBool("Состояние","EDT",true); // Состояние кнопки EDT - вкл
Codek = false; // Диалок с кодеками не кажем
}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKeyCDRKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
// Действие по нажатию Ctrl+X
ButtonCDR->Font->Color=clRed; // кнопку красным
ButtonHDD->Font->Color=clBlack; // кнопку черным
LMDIniCtrl1->WriteBool("Состояние","HDD",false); // CD-R Активен
LMDIniCtrl1->WriteBool("Состояние","CDR",true); //Состояние кнопок в INI
}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKeyHDDKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
// Действие по нажатию Ctrl+C
ButtonHDD->Font->Color=clRed; // кнопку красным
ButtonCDR->Font->Color=clBlack; // кнопку черным
LMDIniCtrl1->GetIniName(); // Откроем INI файл
FileNamePatch = LMDDirDlg1->Path; // Директория пути к файлу
LMDIniCtrl1->WriteBool("Состояние","HDD",true); // Состояние кнопок в INI
LMDIniCtrl1->WriteBool("Состояние","CDR",false); // Состояние кнопок в INI
LMDIniCtrl1->WriteString("Путь","Каталог",FileNamePatch); // последний каталог

}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKeyREC_STOPKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
// Действие по нажатию Ctrl+S
KeyPres++;
ButtonREC_PAUSE->Caption="RECORDING";
ButtonREC_PAUSE->Font->Color=clRed;
ButtonARC->Enabled=false;
ButtonEDT->Enabled=false;
ButtonCDR->Enabled=false;
ButtonHDD->Enabled=false;
ButtonPLAY->Enabled=false;
STARTRECORDING();

if (KeyPres==2)
{
ButtonREC_PAUSE->Font->Color=clBlack;
ButtonREC_PAUSE->Caption="REC/AUTO";
KeyPres=0;
ButtonARC->Enabled=true;
ButtonEDT->Enabled=true;
ButtonCDR->Enabled=true;
ButtonHDD->Enabled=true;
ButtonPLAY->Enabled=true;
STOPRECORDING();
}

}
//---------------------------------------------------------------------------

void __fastcall TForm1::LMDGlobalHotKeyPLAYKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
// Действие по нажатию Ctrl+D
LMDStarter1->Command=OLDRECORDFILE;
LMDStarter1->Execute();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::STARTRECORDING()
{
// ЗАПИСЬ
int i;
if (Limited==1) return;
Limited =1;
ShortTimeFormat ="hh:mm";
if (CDR_W==1)
{
capFileAlloc(hWndC,4535334);
errs=3;
}
AnsiString str_time =TimeToStr(Time()); // Время начала операции
AnsiString str_data =DateToStr(Date()); // Дата начала операции
i=str_data.AnsiPos("."); // Убираем ненужное
str_data.Delete(i,1); // Убираем ненужное
i=str_data.AnsiPos("."); // Убираем ненужное
str_data.Delete(i,1); // Убираем ненужное
Temp1 = "C:\\ARCHIV\\" + str_data+"\\"; // Укажем путь
FileNamePatch = Temp1; // сл. преобразования
if (Codek==1) SendMessage(hWndC,WM_CAP_DLG_VIDEOCOMPRESSION,0,0L);
Temp = FileNameStart+str_data+"_"+str_time; // Формируем имя файла
i=Temp.AnsiPos("."); // Убираем ненужное
Temp.Delete(i,1); // Убираем ненужное
i=Temp.AnsiPos("."); // Убираем ненужное
Temp.Delete(i,1); // Убираем ненужное
i=Temp.AnsiPos(":"); // Убираем ненужное
Temp.Delete(i,1); // Убираем ненужное
i=Temp.AnsiPos(":"); // Убираем ненужное
Temp.Delete(i,1); // Убираем ненужное
i=Temp.Length(); // Убираем ненужное
Temp.Delete(i,1); // Убираем ненужное
Temp.Delete(i-1,1); // Убираем ненужное
FULLFILENAME = Temp + Expansion; // Полное имя файла
OLDRECORDFILE = FileNamePatch = FileNamePatch + Temp + Expansion; // С путем
LMDIniCtrl1->WriteString("Путь","Последний записанный",OLDRECORDFILE);
StatusBar1->Panels->Items[0]->Text = FileNamePatch; // С статус бар путь с именем
StatusBar1->Panels->Items[1]->Text = " Идет Запись "; // С статус бар путь с именем
char *b=FileNamePatch.c_str(); // имя файла записи
capFileSetCaptureFile(hWndC,b); // непосредственно запись
capGetStatus(hWndC,&s,sizeof(s)); // получаем статус
capCaptureSequence(hWndC); // САМ ЗАХВАТ


}
//---------------------------------------------------------------------------

void __fastcall TForm1::STOPRECORDING()
{
// СТОП
Limited = 0; // к первому нажатию
capCaptureStop(hWndC); // тормозим захват
if(errs==3)
{Application->MessageBox("Невозможно найти Nero Burning Rom v 7.0.11.0 \n файл сохранен на HDD диске"," Ошибка записи на DVD-R ",MB_OK|MB_ICONHAND);}




}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonPLAYClick(TObject *Sender)
{
ButtonPLAY->Font->Color=clRed; // кнопку красным
ButtonREC_PAUSE->Font->Color=clBlack; // кнопку черным
LMDStarter1->Command=LMDIniCtrl1->ReadString("Путь","Последний записанный","");
LMDStarter1->Execute(); // читаем INI
BYTE keys[256]; // имитация комбинации
GetKeyboardState(keys); // имитация комбинации
keys[17]=128; // имитация комбинации
SetKeyboardState(keys); // имитация комбинации
keybd_event(68,0,0,0); // имитация комбинации
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
StaticText1->Font->Color=clBlack;
Timer3->Enabled=true;
Timer2->Enabled=false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer3Timer(TObject *Sender)
{
StaticText1->Font->Color=clRed;
Timer2->Enabled=true;
Timer3->Enabled=false;
}
//---------------------------------------------------------------------------


  Вверх
Gigabyte
Дата 2.11.2004, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Студент-халявщик
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 1.11.2004
Где: ПЫтер

Репутация: нет
Всего: 3



Всё проще: на Windows xp есть хорошая програмка называется она Windows Movie Maker лежит она в стандартных. Так чот дерзай.


--------------------

user posted image
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.