| |
ActiveX-ProgrammierungVirtualBox API - TakeScreenShotToArray | | | Autor: KaiBart1986 | Datum: 20.09.10 16:43 |
| Hallo,
so mein erster Thread und es geht um die VirtualBox API als COM-Schnittstelle (hier ist zwar ActiveX, aber das ist meiner Meinung nach das nächstgelegendste).
Also... ich möchte von meinem Display Object ein ScreenShot speichern und die Daten hierfür in einem Array erhalten. Es geht zwar auch über den Framebuffer, aber da treff ich auf das gleiche Problem.
Da es immer so schön heisst: RTFM... =) Hier die Funktionsbeschreibung:
--------------------------------------------------------
octet[] IDisplay::takeScreenShotToArray(
[in] unsigned long screenId,
[in] unsigned long width,
[in] unsigned long height)
screenId Monitor to take screenshot from.
width Desired image width.
height Desired image height.
......
and returns it as an array of bytes in
uncompressed 32-bit RGBA format. A pixel consists of 4 bytes in order: R, G, B, 0xFF.
----------------------------------------------------------
Also... kein Ding...
einfach mal initialisieren in der Hoffnung das das Array so angeordnet ist:
{R,G,B,A,R,G,B,A} ...
Dim data() as Byte
//Screenshot von Monitor 0 in der größe 120x120...
idisplay.takeScreenShotToArray(0,120,120) Keine Chance. "Specified array was not of the expected type."
Ok also noch einmal gucken was genau der Return-Type in VB ist... System.Array... hm etwas allgemein aber probieren als System.array => Specified array...
2 Dimension in der FOrm
[ [RGBA],[RGBA],[RGBA] ] ist es allerdings auch nicht.
Nützliche Tipps wie ich hier weiter vorgehen kann?
hier noch ein link zur Doku:
http://download.virtualbox.org/virtualbox/SDKRef.pdf
Seite 88
Gruß und ich hoffe ihr könnte mir helfen.
Kai B. | |
Re: VirtualBox API - TakeScreenShotToArray | | | Autor: sudave | Datum: 20.09.10 18:18 |
| Du hast es schon aufgerufen mit
data = idisplay.takeScreenShotToArray(0,120,120) oder?
Wenn ich im Objekt Browser nach der Funktion suche, steht da jedenfalls Byte() als Rückgabewert, die Funktions-Attribute sind aber scheinbar nicht zulässig.
Noch eine Idee: Hast du es mal mit dem Monitor 1 (statt 0) versucht? | |
Re: VirtualBox API - TakeScreenShotToArray | | | Autor: KaiBart1986 | Datum: 20.09.10 19:18 |
| Ups sry war ein kopierfehler. Natürlich mit Zuweisung an data.
Probier ich gleich mal aus. Hab das Programm auf der Arbeit, vondaher muss ich das mal fix neu bauen.
Aber ich denke wir sind einer Meinung das ein 1-dimensionales Byte-Array der Rückgabetyp ist? | |
Re: VirtualBox API - TakeScreenShotToArray | | | Autor: KaiBart1986 | Datum: 21.09.10 09:18 |
| So gerade mal ausprobiert... kein Erfolg
vbConsole = session.Console
display = vbConsole.Display
Dim data() As Byte
Try
data = display.TakeScreenShotToArray(1, 120, 120)
Console.Write("Success")
Catch ex As Exception
Console.WriteLine(ex.Message) //Specified array was not of the _
expected type.
End Try Bin langsam echt ratlos | |
Re: VirtualBox API - TakeScreenShotToArray | | | Autor: KaiBart1986 | Datum: 21.09.10 11:19 |
| Nachtrag:
Es handelt sich hierbei um eine Exception des Typs:
"System.Runtime.InteropServices.SafeArrayTypeMismatchException"
Tja... nuuuur... wie implementiere ich ein SafeArray als byte?
Private Structure SAFEARRAYBOUND
Public cElements As Long
Public lLbound As Long
End Structure
Private Structure SAFEARRAY
Public cDims As Integer
Public fFeatures As Integer
Public cbElements As Long
Public cLocks As Long
Public pvData As Long
Public Bounds() As SAFEARRAYBOUND
End Structure Das sagt mir MSDN....
*ratlos weiterhin* | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|