Ich habe ein Programm geschrieben das wenn es einen String empfängt sich selbst neu startet. Das Programm klappt prima im PB Editor aber wenn ich es als .EXE speicher und dann starte hat das Programm Probleme mit dem aufrufen eines Dlls.
Server:
Code: Alles auswählen
Global mmThread
Procedure Fenster_1(Wert)
ClientID = EventClient()
If OpenWindow(0, 50, 100, 300, 500, "Test" , #PB_Window_MaximizeGadget , 0)
If CreateGadgetList(WindowID(0))
ButtonGadget(4, 10, 115, 250, 30, "Neustart")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 4
If SendNetworkString(ClientID, "FileFile")
EndIf
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
EndProcedure
Procedure Zu(Wert)
Repeat
Delay(100)
If IsThread(mmThread) = 0
mmThread = CreateThread(@Fenster_1(), 23)
EndIf
ForEver
EndProcedure
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
Port = 6705
Buffer = AllocateMemory(1000)
If CreateNetworkServer(0, Port)
Repeat
Delay(200)
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case 1
mmThread = CreateThread(@Fenster_1(), 23)
Delay(100)
ggThread = CreateThread(@Zu(), 23)
Case 2
Case 3
Case 4
End
EndSelect
EndIf
Until Quit = 1
EndIf
End
Code: Alles auswählen
Global ff
;-Vorbereiten der Netzwerk-Einstellungen
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
Port = 6705
;-Schleife zur Verbindungs-Herstellung
Repeat
ConnectionID = OpenNetworkConnection("joel2.dyndns.org", Port)
If ConnectionID
EndIf
Delay(100)
Until ConnectionID <> 0
;-Daten-empfang-Schleife
Repeat
Delay(200)
ServerID = NetworkClientEvent(ConnectionID)
Select ServerID
Case 2
Repeat
Datenpuffer.s = Space(8)
ReceiveNetworkData(ConnectionID, @Datenpuffer, 8)
If Datenpuffer = "FileFile"
OpenLibrary(4, "C:\test2.dll")
CallFunction(4, "Hauptneu", "", "")
Delay(5000)
f = 1
EndIf
Until f = 1
Case 3
ReceiveNetworkFile(ConnectionID, "C:\Windows\Unbekannt.exe")
Delay(1000)
Case 4
Delay(3000)
EndSelect
Until Quit = 1
End
Aber das Klappt nur im Editor.