Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Fenster per Netzwerk ...

Fenster per Netzwerk ...

CamDam
CamDam29.03.1123:52
Ich würde nur zu gerne wissen wollen, wie die folgenden Programme funktionieren (Apple Framework, Example Code, ...):

"Air Display" (zu finden im App Store )
"ScreenRecycler"

Bitte schreibt mir, was ihr vermutet. Ein bißchen Code und/oder Links würde die Sache abrunden.

Bitte schreibt nicht "VNC" o.a.
Mir geht es darum, wie man selber sowas entwickelt und nicht wie man andere Programme nutzt.
0

Kommentare

Navier-Stokes
Navier-Stokes30.03.1119:46
Mit ein paar Zeilen Example Code ist es wohl nicht getan.
Es sind ja auch mehrere Aspekte, die hier eine Rolle spielen. Und wie und was und wie genau willst Du es wissen?

Ganz grob fällt mir dazu ein:
(Ich muss dazu sagen, dass ich keine Erfahrung/Ahnung mit den Apple Frameworks habe)

1) Auf dem Master muss irgendwie ein vorhandenes zweites Display vorgegaukelt werden!
Grafik-Treiber fake? Oder es läuft ein Zusatztool im Hintergrund, welches den Bildschirm dirket abfilmt.
Letzteres kann man bestimmt mit Quarz, Core image & Co machen. Dann hat man aber nur eine Kopie des Masterschirms.

2) Auf dem Slave nimmt ein Tool die Daten entgegen und stellt sie mit Quarz, Core image & Co oder so im Vollbild dar.

3) Der transport könnte low level über Sockets laufen, das ist sehr einfach. Dann wird vielleicht bei einer initiierten Verbindung ein PIN abgefragt, der auf beiden Seiten der gleiche sein muss, damit der Master Bilder übers Netz schickt. Könnte man aber auch beliebig aufwändiger machen mit verschlüsselung, Zertifikaten und so.

Ob DIr diese vagen Überlegungen weiterhelfen, weiß ich nicht.

Gruß

Navier
„Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)“
0
CamDam
CamDam30.03.1122:39
@Navier-Stokes:
Danke. Die Transportschicht ist klar.

Hab mal folgendes zusammengestückelt. Es entspricht nicht ganz meinen obigen Anforderungen, ist aber mal ein Anfang. Es soll mir den Screen in einem Fenster wiedergeben.
- (IBAction) refresh:(id)sender
{
    float scaleFactor = 0.1;
    
    NSRect screenRect = [[NSScreen mainScreen] frame];
    NSImage *screenImg = [[NSImage alloc] initWithSize:NSMakeSize(screenRect.size.width, screenRect.size.height)];
    [screenImg setScalesWhenResized:YES];
    NSWindow *win = [[NSWindow alloc] initWithContentRect:screenRect
                                                   styleMask:NSBorderlessWindowMask backing:NSBackingStoreNonretained
                                                       defer:NO];
    NSView *myView = [[NSView alloc] initWithFrame:screenRect];
    [win setLevel:NSScreenSaverWindowLevel + 100];
    [win setHasShadow:NO];
    [win setAlphaValue:0.0];
    [win setContentView:myView];
    [win orderFront:self];
    [myView lockFocus];
    NSBitmapImageRep *screenRep= [[NSBitmapImageRep alloc] initWithFocusedViewRect:screenRect];
    [screenImg addRepresentation:screenRep];
    [myView unlockFocus];
    [win orderOut:self];
    [win close];
    
    NSImage *scaledImage = [[NSImage alloc] initWithSize:NSMakeSize([screenImg size].width * scaleFactor, [screenImg size].height * scaleFactor)];
    [scaledImage lockFocus];
    [screenImg drawInRect:NSMakeRect(0,0,[scaledImage size].width,[scaledImage size].height)
                 fromRect:NSMakeRect(0,0,[screenImg size].width,[screenImg size].height)
                operation:NSCompositeCopy fraction:1.0];
    [scaledImage unlockFocus];
    
    //###
    
    [imgView setFrame:NSMakeRect([imgView frame].origin.x, [imgView frame].origin.y, [scaledImage size].width, [scaledImage size].height)];
    [imgView setImage:scaledImage];
    [imgView scrollRectToVisible:NSMakeRect([imgView frame].origin.x, [imgView frame].origin.y + [imgView frame].size.height, 1, 1)];
}

Leider funktionierts nicht ganz so wie gewollt. Ich erhalte nur ein graues Bild (siehe Pic). Kann mir jemand meinen Fehler zeigen/sagen.
0
bmc desgin01.04.1104:13
Welches Bild soll denn dargestellt werden???
Da fehlt doch die Reference...

InitWithURL z.b.


Cheers
„Ask your questions...“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.