Hallo!
kennt sich hier zufälig mit visual basic 6.0 aus?
ich hab nämlich mal, (da mich die andern aus dem internet genervt haben) einen Shutdown Timer programmiert! also nach einer bestimmten zeit, (mit timer) wird der rechner je nach auswahl runtergefahren, neu gestartet oder abgemeldet.
aber ich würde gerne machen, dass man den sd timer mit z.b. den parametern -0/3/20 startet, und dann der timer gleich mit der restzeit 0 stunden, 3minuten und 20 sekunden startet... wie bring ich vb das bei?
Kommandozeilen Parameter in Visual Basic6.0
-
-
hmm ja das hab ich schonmal gemacht. Ich such es mal und wenn ichs finde post ichs.
Gruß
xmms -
-
den Parameter kannst du mit Command() anfragen. Der Liefert einen String zurück, den du dann z.B. mit Split() aufteilen kannst, und die einzelnen Werte Extrahieren kannst.
Edit: Unter http://www.Activevb.de is ubrigens ein guten VB-Forum. :wink:
-
Ich habs auch nicht mehr im Kopf hier ist auf jedenfall eine Methode, es gab aber glaube ich noch eine Nettere:
Code
Alles anzeigenManchmal möchte man ein VB-Programm mit bestimmten Optionen aufrufen, z.B. "programm.exe /s /p". Dies ist grundsätzlich kein Problem, die Parameter sind in der von VB mitgelieferten Funktion Command$ abrufbar, allerdings als ein String. Man muß also selbst prüfen, ob ein bestimmter Text darin vorkommt. Beispiel: If " " & LCase$(Command$) & " " Like "* /s *" Then 'Option /s gesetzt Else 'Option /s nicht gesetzt End If Wenn man die Übergabe der Optionen als Parameter testen will, kann man unter Projekt/Eigenschaften den entsprechenden String einstellen.
Ich werd noch mal suchen, im Augenblick komm ich aber leider nicht an mein VB ran.
Gruss PM
-
hm... kannst du das mit dem split genauer erklären? auserdem muss ich vb ja den cmd parameter als variable definieren lassen.... wie mach ich das?
(und wie geht split? hab da noch nie was von gehört.. ich machs auch noch net so lange) -
Zitat von agib
hm... kannst du das mit dem split genauer erklären? auserdem muss ich vb ja den cmd parameter als variable definieren lassen.... wie mach ich das?
(und wie geht split? hab da noch nie was von gehört.. ich machs auch noch net so lange)Zu Split kannst du hier was lesen! Link
Du bekommst die Parameter ja als ein String über die Command Funktion.
Der String wird dann so aussehen z.B. "/0/3/20".
Diesen String kann man dann mit der Split- oder einer anderen Stringfunktion auseinander schneiden, so das die Zahlen übrig bleiben.
Diese wandelst du in Integer um und ordnest sie dne Variabeln zu!
Fertig!Gruss PM
-
Code
Alles anzeigenPrivate Sub Form_Load() Dim parameter As String, zeiten() As String Dim stunden&, minuten&, sekunden& parameter = Command$() parameter = Mid(parameter, 2) 'erstes minus abtrennen zeiten = Split(parameter, "/") 'splitten If UBound(zeiten) <> 2 Then MsgBox "Falscher parameter!": Exit Sub stunden = val(zeiten(0)) minuten = val(zeiten(1)) sekunden = val(zeiten(2)) MsgBox "Stunden: " & stunden & vbNewLine & _ "Minuten: " & minuten & vbNewLine & _ "Sekunden: " & sekunden End Sub
-
is klar!
aber ich kann ja net schreiben split(command$) wie sorg ich dafür, dass vb dieses command$ als 03/94/84 sieht
also z.b cmdpar = 03/94/84
und ohne dass es zugewiesen wird... sondern dass es einfach ausgibt, was da steht -
-
JUCHU! es klappt!
Code
Alles anzeigenPrivate Sub Form_Load() Dim parameter As String, zeiten() As String Dim stunden&, minuten&, sekunden& parameter = Command$() parameter = Mid(parameter, 2) 'erstes minus abtrennen zeiten = Split(parameter, "/") 'splitten If UBound(zeiten) <> 2 Then MsgBox "Falscher parameter!": Exit Sub stunden = val(zeiten(0)) minuten = val(zeiten(1)) sekunden = val(zeiten(2)) MsgBox "Stunden: " & stunden & vbNewLine & _ "Minuten: " & minuten & vbNewLine & _ "Sekunden: " & sekunden End Sub
Das hat sehr geholfen! es sieht jetzt folgendermaßen aus:
Code
Alles anzeigenPrivate Sub Form_Load() cmdpar = Command$() cmdpar = Mid(cmdpar, 2) zeiten = Split(cmdpar, "/") If UBound(zeiten) <> 2 Then GoTo a: Text2.Text = Val(zeiten(0)) Text3.Text = Val(zeiten(1)) Text4.Text = Val(zeiten(2)) Dann der Code was pasiert (ist bissl lang zum posten) und dann: a: End Sub
DANKE!