Ich möchte ein Programm erzeugen dass den Desktop meines einen Computers (Computer-A) fotographiert und auf Computer-B anzeigt.
Erklärung:
Wenn ich auf ein Symbol drücke wird ein String ("Desktops") von dem Client an den Server gesendet und dieser empfängt es. Wenn der Client den String "Desktops" empfängt wird die Aktion darunter Ausgeführt.
Dann wird mit:
Eine Datei gestartet die alles Fotographiert udn es in "C:\Windows\gsm.bmp" speichert.
Dann wird noch die PNG umgebung geladen (Dazu später mehr).
Als nächstes wird dass Bild "gsm.bmp" dass Vorher Fotografiert und gespeichert wurde geladen.
Mit:
Wird das Bild im PNG Format gespeichert.
Und:
sendet dass Bild Natürlich.
Nun Zum Server: Der Server empfängt das .PNG Bild mit der Schleife:
Code: Alles auswählen
Repeat
em = ReceiveNetworkFile(ClientID, "C:\empf.png")
Until em <> 0
Mit:
wird dass Bild geladen und mit:
Code: Alles auswählen
SaveImage(m, "C:\save.bmp" , #PB_ImagePlugin_BMP , 10)
Wird dass Bild wieder zurück in das .BMP Format Convertiert.
Mit dem Letzten Load...Befehl wird dass .BMP-Bild geladen und Der Rest Zeigt dass Bild auf dem PC an.
Problem:
Bis zu dem Befehl der die Datei in dass .PNG Format umwandelt läuftalles Glatt aber dann tritt das Problem auf. Die Datei wird Gesendet und gespeichert und der Debugger Meldet "1" aber trotzdem wird die Datei statt Normalgröße (58,6MB) nur in 16 MB gesteichert. Und ich habe dann bei demBefehl nach dem Laden nämlich Saveimage ein problem, da steht: #Image Gadget not Initalizet.
Edit: Problem gelöst
Ich habe den Code etwas verändert und dass Programm im Unicode-Modus laufen lassen, und jetzt klappts.
Jetzt hab ich aber ein Anderes Problem: Der Code wird ab dem Befehl "If Datenpuffer = "Desktops"" und wenn ich auf Stop drücke passiert auch nichts.
Ich Poste den Code nocheinmal (Ich weiß auch nciht mehr genau was ich dran Verändert habe). Ich Poste am Besten malden Ganzen Code. Und wie gesagt den Code im Unicode-Modus Kompillieren.
Server:
Code: Alles auswählen
Procedure Tool()
ClientID = EventClient()
If OpenWindow(0, 50, 100, 300, 500, "Server" , #PB_Window_SystemMenu , 0)
If CreateGadgetList(WindowID(0))
ButtonGadget(1, 10, 15, 250, 30, "Monitor Abbild")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_Event_Gadget
If EventGadget() = 1
ClientID = EventClient()
UsePNGImageDecoder()
UsePNGImageEncoder()
SendNetworkString(ClientID, "Desktops")
Repeat
em = ReceiveNetworkFile(ClientID, "C:\empf.png")
Until em <> 0
m = LoadImage(#PB_Any, "C:\empf.png")
SaveImage(m, "C:\save.bmp" , #PB_ImagePlugin_BMP)
LoadImage(3, "C:\save.bmp" , 0)
If OpenWindow(0, 1, 1, 1050, 730, "Arbeit" , #PB_Window_BorderLess | #PB_Window_Maximize, 0)
StickyWindow(0, 0)
If CreateGadgetList(WindowID(0))
ImageGadget(200, 1, 1, 1, 1, ImageID(3) , 0)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
EndIf
EndIf
EndIf
Until lol = 1
EndIf
EndIf
EndProcedure
Procedure Net(aso.l)
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
Port = 6880
Buffer = AllocateMemory(1000)
If CreateNetworkServer(0, Port)
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case 1
If Tool()
EndIf
Case 3
Case 4
MessageRequester("Error", "Case 4 ist aktiv", 0)
EndSelect
EndIf
Until Quit = 1
EndIf
EndProcedure
;-----------------------------------------------------------------------------------------
prThread = CreateThread(@Net(), 456)
Repeat
If WaitThread(prThread)
abc = 5
EndIf
Until abc = 5
Client:
Code: Alles auswählen
Procedure Main(Dummy.l)
;-Vorbereiten der Netzwerk-Einstellungen
InitNetwork()
Port = 6880
;-Schleife zur Verbindungs-Herstellung
Repeat
ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID
EndIf
Delay(100)
Until ConnectionID <> 0
Repeat
ServerID = NetworkClientEvent(ConnectionID)
Select ServerID
Case 2
Repeat
Datenpuffer.s = Space(8)
ReceiveNetworkData(ConnectionID, @Datenpuffer, 66)
If Datenpuffer = "Desktops"
Debug mh
RunProgram("C:\Windows\System\loli.exe")
Delay(1100)
UsePNGImageEncoder()
image = LoadImage(#PB_Any,"C:\Windows\gsm.bmp")
If image
EndIf
If SaveImage(image, "C:\mssm.png",#PB_ImagePlugin_PNG)
EndIf
Delay(1000)
Repeat
sm = SendNetworkFile(ConnectionID, "C:\mssm.png")
Until sm <> 0
Delay(3000)
EndIf
ForEver
Case 3
Case 4
MessageRequester("Error", "Can't load the movie...", 0)
exit = 3
End
EndSelect
Until Quit = 1
exit = 3
EndProcedure
;----------------------------------------------------------------------------------------
amThread = CreateThread(@Main(), 123)
Repeat
If WaitThread(amThread)
adf = 2
EndIf
Until adf = 2