RunProgramm geht zwar aber nicht wie erwünscht

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

RunProgramm geht zwar aber nicht wie erwünscht

Beitrag von Tsuki-Namida »

Hallo,
Gut bei dem titel ist mir kein besserer eingefallen...

Ich habe eine Programmstruktur angelegt die so ausieht.

Streamer.exe
StreamerS.exe
Server.txt
Version.txt

Streamer.exe liest zuerst die Server.txt aus und läd sie erneut runter vom dort drinnestehenden Server (Ist eine sicherheit fals der Server gewechselt wird)
Anschliesend wird Version.txt ausgelesen und auch ebenfals neu heruntergeladen und ein weiteres mal ausgelesen in einem weiteren String$.
Somit wird die Version überprüft und wenn sie ungleich (<>) wie vorher wardann wird die StreamerS.exe runtergelagen und anschliesend gestartet.

Soweit gibt es kein Problem.
Ich möchte nun aber den Updater Updaten und die Programmstruktur so ändern.

Streamer.exe
StreamerS.exe
Streamer.Update

Da man ja keine geöffneten Programme bzw. Anwendungsdateien überschreiben kann habe ich das wie folgt gemacht.
In der Beschreibung habe ich die quellentexte (*.pb) verlinkt für die Übersichtlichkeit.

ich habe meine Daten auf den Server hochgeladen und die Version.txt Geändert.
Nun starte ich wie gewohnt die Streamer.exe diese Stellt fest das sich die Version geändert hat und läd StramerS.exe runter. Diese ist aber nicht mehr die gewohnte anwendung sondern ein weiterer Updater.
Dierser läd nun die Stramer.exe runter und die Streamer.Update wird erstellt anschliesend 1000 Millisekunden warten und dann startet anschliesend die Stramer.exe
Diese Liest dann die Streamer.Update Datei aus und läd dann die gewünschte Anwendung runter und speichert sie als StreamerS.exe und Startet sie.

Mein proplem ist Das die hauptsächliche Anwendung nicht geladen wird aber denn noch die StreamerS.exe gestartet wird die sich noch im Verzeichnis befindet. Was passiert ist dann eigentlich logisch Die Anwendungen Streamer.exe und StreamerS.exe werden im wechsel geöffnet und geschlossen....
Ich weis nicht mehr weiter was ich noch machen könnte...
Benutzeravatar
kaitec
Beiträge: 120
Registriert: 07.11.2005 00:50
Wohnort: Langenselbold
Kontaktdaten:

RunProgramm geht zwar aber nicht wie erwünscht

Beitrag von kaitec »

Post ma Soures-Code
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

http://streamer.cybton.com/forum/streamer.exe.pb
http://streamer.cybton.com/forum/streamers.exe.pb

Diese adressen habe ich oben schon verlinktda es so übersichtlicher wegen der beschreibung ist da man bei diesem hin unher schnell durein ander kommen kann
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

Ich weis jetzt schon mal wo ein fehler zu finden sein müsste, und zwar im Neuen Updater.
hier der code:

Code: Alles auswählen

Procedure.s GetExePath()
  Prg.s = Space(#MAX_PATH)
  GetModuleFileName_(GetModuleHandle_(0), @Prg, #MAX_PATH)
  Prg = GetPathPart(Prg)
  If (FindString(prg,"\PureBasic\Compilers\", 1))
    Prg.s = Space(#MAX_PATH)
    GetCurrentDirectory_(#MAX_PATH,@Prg)
  EndIf
If Right(Prg, 1) <> "\" : Prg + "\" : EndIf
  ProcedureReturn Prg
  teste$ = Prg.s
EndProcedure
NeuServer:
UpDate$ = GetExePath() + "Streamer.Update"
If ReadFile(0, UpDate$)
  Server$ = ReadString()
  Version$ = ReadString()
  Message_on_off$ = ReadString()
  Message$ = ReadString()
  CloseFile(0)
Else
  MessageRequester("Information","Verson konnte nicht überprüft werden.")
EndIf
Url.s = Server$ + "streamer.update"
Dateiname.s = GetExePath() + "Streamer.Update"
URLDownloadToFile_(0, URL.s, Dateiname.s, 0, 0)
If ReadFile(0, UpDate$)
  Server_2$ = ReadString()
  Version_2$ = ReadString()
  Message_on_off_2$ = ReadString()
  Message_2$ = ReadString()
  CloseFile(0)
EndIf
MessageRequester("Information",Server$)
MessageRequester("Information",Server_2$)
If Server$ <> Server_2$
  Gosub NeuServer
  Return
EndIf
MessageRequester("Information",Version$)
MessageRequester("Information",Version_2$)
If Version$ <> Version_2$
  Url.s = Server_Date$ + "update.exe"
  MessageRequester("Information",Url.s)
  Dateiname.s = GetExePath() + "StreamerS.exe"
  MessageRequester("Information",Dateiname.s)
EndIf
If Message_on_off_2$ = "1"
  MessageRequester("Information",Message_2$)
  Message_on_off_2$ = "0"
EndIf
UD_Datei$ = GetExePath() + "Streamer.Update"
If CreateFile(0, UD_Datei$)
  WriteStringN(Server_2$)
  WriteStringN(Version_2$)
  WriteStringN(Message_on_off_2$)
  WriteStringN(Message_2$)
  CloseFile(0)
EndIf
Run$ = GetExePath() + "StreamerS.exe"
RunProgram(Run$,"","",0)
End
Ich hoffe das mir da jemand helfen kann.....

PS: Nicht wundern wegen den ganzen MessageRequester... die habe ich als Debug verwendet...
Antworten