Moin Zusammen,
was mache ich hier falsch:
Delphi-Quellcode:
procedure TfrmMAIN.Button2Click(Sender: TObject);
var
mciErr : DWORD;
pBuf : PChar;
dwLen : DWORD;
begin
dwLen := 250;
pBuf := AllocMem(dwLen);
try
mciErr := mciSendString(PChar('
open mpegvideo!c:\test.mpg alias video parent '+IntToStr(self.Handle)),
nil,0,self.Handle);
if mciErr <> 0
then exit;
mciErr := mciSendString('
put video destination at 0 0 170 156',
nil,0,self.Handle);
if mciErr <> 0
then exit;
mciErr := mciSendString(PChar('
window video handle '+IntToStr(self.Handle)),
nil,0,self.Handle);
if mciErr <> 0
then exit;
// mciErr := mciSendString('play video',nil,0,self.Handle);
// if mciErr <> 0 then exit;
mciErr := mciSendString('
capture video as c:\test.bmp',
nil,0,self.Handle);
finally
if mciErr <> 0
then begin
mciGetErrorString(mciErr,pBuf,dwLen);
ShowMessage(trim(pBuf));
end;
FreeMem(pBuf,250);
end;
end;
Die Funktion mciSendString('capture video ...) kommt mit einem
"Das verwendetet MCI-Gerät unterstützt diesen Befehl nicht"
zurück. Gleiches gilt für copy und save.
Sollte ja im Prinzip an Deutlichkeit nicht zu überbieten sein, wenn da nicht noch zwei Dinge wären:
Zum einen ist die Unterstützung für diese Kommandos dokumentiert (muss zugegebener Massen ja nichts heissen), zum anderen funktioniert aber in einem mit MCICreateWnd erzeugten mci Fenster die Tastenkombination Strg-C zum Kompieren.
Was mach' ich also falsch, übersehe ich, oder hab' ich vergessen?