DLL aufruf bricht einfach ab
Verfasst: 22.12.2007 09:59
Hallo,
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:
Client:
Wenn ich beide Programme starte und dann auf "Neustarten" drücke dann wird der String: "FileFile" von dem Server an den Client gesendet. Wenn der Client das empfängt dann startet er den DLL. Das DLL Beendet den Client und startet ihn wieder neu.
Aber das Klappt nur im Editor.
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.