urkrossi Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 @All Ich benötige Hilfe bei Programierung einer Batch Datei unter Windows XP. 1. Diese soll prüfen ob ein Netzlaufwerk verbunden ist und wenn dies erfolgreich war ein Programm öffnen. 2. Sollte das Netzlaufwerk nicht verbunden sein dieses verbinden und das Programm öffnen. 1. und 2. funzen soweit siehe Quelltext. 3. Das Fenster der Eingabeaufforderung soll nicht sichtbar sein bzw. nach Ablauf geschlossen werden!! (besser ersteres) 4. Ist das Netzlaufwerk nicht eingeschaltet bzw. nicht auffindbar ein Fehlermeldung ausgeben z.B.: "Netzlaufwerk nicht eingeschaltet" oder ähnlich. Ich Danke euch im Vorraus Gruß urkrossi Edit: Quelltext @ECHO OFF CLS :START IF NOT EXIST K: goto noK goto ende :noK ping -n 1 Fnd >NUL if "%errorlevel%"=="0" NET USE K: \\Fnd\AVDaten ping -n 5 localhost>NUL IF EXIST K: goto ende rem ping -n 5 localhost>NUL rem GOTO START :ende C:\Programme\Aktenverwaltung\Aktenverwaltung.exe Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 @All Ich benötige Hilfe bei Programierung einer Batch Datei unter Windows XP. 1. Diese soll prüfen ob ein Netzlaufwerk verbunden ist und wenn dies erfolgreich war ein Programm öffnen. 2. Sollte das Netzlaufwerk nicht verbunden sein dieses verbinden und das Programm öffnen. 1. und 2. funzen soweit siehe Quelltext. 3. Das Fenster der Eingabeaufforderung soll nicht sichtbar sein bzw. nach Ablauf geschlossen werden!! (besser ersteres) 4. Ist das Netzlaufwerk nicht eingeschaltet bzw. nicht auffindbar ein Fehlermeldung ausgeben z.B.: "Netzlaufwerk nicht eingeschaltet" oder ähnlich. Ich Danke euch im Vorraus Gruß urkrossi Edit: Quelltext @ECHO OFF CLS :START IF NOT EXIST K: goto noK goto ende :noK ping -n 1 Fnd >NUL if "%errorlevel%"=="0" NET USE K: \\Fnd\AVDaten ping -n 5 localhost>NUL IF EXIST K: goto ende rem ping -n 5 localhost>NUL rem GOTO START :ende C:\Programme\Aktenverwaltung\Aktenverwaltung.exe Moin... Ich hatte das Problem auch schon mal und hab mit den GPOs unter Windows experimentiert. Bringt aber nicht wirklich was. Was aber ganz gut funktioniert ist das hidden32 Tool. http://www.tutorials.de/forum/microsoft-wi...ausblenden.html Dann kannst du deine Batch folgendermassen aufrufen: start hidden32 example.bat Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
amdinside Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 Oder alles mit Autoit realisieren und eine exe kompiliert... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 @DrHouse77 Antivir meldet mir In der Datei 'N:\hidden32\hidden32.exe'wurde ein Virus oder unerwünschtes Programm 'SPR/HideWindow' [riskware] gefunden. Ausgeführte Aktion: Datei löschen @amdinside Gibts dafür eine Anleitung? Hab davon nicht alt so viel Ahnung hab die batch auch nur gefunden und angepasst. urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
amdinside Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 Kann morgen mal im Geschäft gucken...da hab ich Beispiele Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 @DrHouse77 Antivir meldet mir @amdinside Gibts dafür eine Anleitung? Hab davon nicht alt so viel Ahnung hab die batch auch nur gefunden und angepasst. urkrossi Servus... hmm... OfficeScan meldet das nicht... Na ja.. geht aber auch anders. VBScript ist hier ein sehr probates Mittel. Vorausgesetzt der Windows Scripting Host ist installiert. Sollte aber ab XP bzw. Win 2003 Server und aufwärts standardmässig dabei sein. Kopier mal folgenden Text in einen Editor (z.B. Notepad und speicher das Ganze mit der Dateiendung .vbs) Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "C:\example.bat" & Chr(34), 0 Set WshShell = Nothing Damit wir über den Parameter 0 eine nicht sichtbare Shell geöffnet, die dein Batch ausführt. Ausserdem hast du dann auch die Möglichkeit eine MsgBox auszugeben, da VBScript. Bei Fragen fragen... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 @amdinside Danke das wär nett. @DrHouse77 Das funzt schon mal mit dem versteckten ausführen der *.bat. Kann man das auch komplett in vbs ausführen? Also ohne die bat Datei! Und zusätzlich noch eine Meldung ausgeben wenn das Netzlaufwerk nicht verbunden werden kann. (z.B. wenn es ausgeschaltet ist) Gruß urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 @amdinside Danke das wär nett. @DrHouse77 Das funzt schon mal mit dem versteckten ausführen der *.bat. Kann man das auch komplett in vbs ausführen? Also ohne die bat Datei! Und zusätzlich noch eine Meldung ausgeben wenn das Netzlaufwerk nicht verbunden werden kann. (z.B. wenn es ausgeschaltet ist) Gruß urkrossi Ja... Geht auch... Hier mal der fertige Inhalt der .vbs '----------------------------------------------------------------------------- On Error Resume next Dim fileSys Dim objRet Dim objNet 'Zuweisen zum Scripting.FileSystemObject Set filesys = CreateObject("Scripting.FileSystemObject") 'Prüfen ob K: schon existiert If not filesys.DriveExists("K:") Then Set objNet = CreateObject("WScript.Network") objNet.MapNetworkDrive "K:" , "\\Fnd\AVDatene" End If 'Nochmals prüfen ob Verbindung erfolgreich If not filesys.DriveExists("K:") Then objRet = Msgbox("Laufwerk K: existiert nicht und konnte auch nicht verbunden werden") End if Set filesys = Nothing Set objNet = Nothing '--------------------------------------------------------------------------------------------------------- Sollte soweit funktionieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 @DrHouse77 Aber fehlt da nicht noch der Aufruf zum Start des Programms? Edit: Hab jetzt mal die zeilen aus deinem anderen Post eingefügt. Dann startet auch das Programm nach dem das Netzlaufwerk verbunden wurde. Ist aber das Laufwerk ausgeschaltet erscheint die Fehlermeldung vom Programm das der Pfad nicht gefunden wurde und nicht die Meldung: "Laufwerk K: existiert nicht und konnte auch nicht verbunden werden". On Error Resume next Dim fileSys Dim objRet Dim objNet 'Zuweisen zum Scripting.FileSystemObject Set filesys = CreateObject("Scripting.FileSystemObject") 'Prüfen ob K: schon existiert If not filesys.DriveExists("K:") Then Set objNet = CreateObject("WScript.Network") objNet.MapNetworkDrive "K:" , "\\Fnd\AVDaten" End If 'Nochmals prüfen ob Verbindung erfolgreich Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "C:\Programme\Aktenverwaltung\Aktenverwaltung.exe" & Chr(34), 0 Set WshShell = Nothing If not filesys.DriveExists("K:") Then objRet = Msgbox("Laufwerk K: existiert nicht und konnte auch nicht verbunden werden") End if Set filesys = Nothing Set objNet = Nothing urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 @DrHouse77 Aber fehlt da nicht noch der Aufruf zum Start des Programms? Edit: Hab jetzt mal die zeilen aus deinem anderen Post eingefügt. Dann startet auch das Programm nach dem das Netzlaufwerk verbunden wurde. Ist aber das Laufwerk ausgeschaltet erscheint die Fehlermeldung vom Programm das der Pfad nicht gefunden wurde und nicht die Meldung: "Laufwerk K: existiert nicht und konnte auch nicht verbunden werden". On Error Resume next Dim fileSys Dim objRet Dim objNet 'Zuweisen zum Scripting.FileSystemObject Set filesys = CreateObject("Scripting.FileSystemObject") 'Prüfen ob K: schon existiert If not filesys.DriveExists("K:") Then Set objNet = CreateObject("WScript.Network") objNet.MapNetworkDrive "K:" , "\\Fnd\AVDaten" End If 'Nochmals prüfen ob Verbindung erfolgreich Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "C:\Programme\Aktenverwaltung\Aktenverwaltung.exe" & Chr(34), 0 Set WshShell = Nothing If not filesys.DriveExists("K:") Then objRet = Msgbox("Laufwerk K: existiert nicht und konnte auch nicht verbunden werden") End if Set filesys = Nothing Set objNet = Nothing urkrossi Jepp, da hast du Recht. Asche auf mein Haupt... Ich geh mal davon aus, du möchstest das Programm nur starten wenn das Laufwerk da ist. Das sieht dann so aus: '----------------------------------------------------------------------------- On Error Resume next Dim fileSys Dim objRet Dim objNet Dim objShell Dim objBin 'Zuweisen zum Scripting.FileSystemObject Set filesys = CreateObject("Scripting.FileSystemObject") 'Prüfen ob K: schon existiert If not filesys.DriveExists("K:") Then Set objNet = CreateObject("WScript.Network") objNet.MapNetworkDrive "K:" , "\\Fnd\AVDatene" End If 'Nochmals prüfen ob Verbindung erfolgreich If not filesys.DriveExists("K:") Then objRet = Msgbox("Laufwerk K: existiert nicht und konnte auch nicht verbunden werden") Else Set objShell = WScript.CreateObject("WScript.Shell") Set objBin = objShell.run("C:\Programme\Aktenverwaltung\Aktenverwaltung.exe") End if Set filesys = Nothing Set objNet = Nothing '--------------------------------------------------------------------------------------------------------- Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 Genau so wäre es Ideal, bin beim testen. Moment noch. urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 Genau so wäre es Ideal, bin beim testen.Moment noch. urkrossi Alles klar... dann mal gutes Gelingen... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 So das Programm startet wenn das Laufwerk verbunden wurde. Aber wenn es nicht verfügbar ist kommt immer noch die Fehlermeldung von der Aktenverwaltung und nicht wie gewünscht: "Laufwerk K: existiert nicht und konnte auch nicht verbunden werden". urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 Kann es sein, dass das Laufwerk innerhalb des Explorers denn immer noch angezeigt wird, aber nicht mehr verfügbar ist? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 Lasse grad den Testrechner nochmal neu starten mit ausgeschaltem Netzlaufwerk. urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 Habs gerade noch mal angepasst. Jetzt wird das Laufwerk erstmal getrennt wenns vorhanden ist und dann neu verbunden. Ist zwar ziemlich braun, sollte aber funktionieren: '----------------------------------------------------------------------------- On Error Resume next Dim fileSys Dim objRet Dim objNet Dim objShell Dim objBin 'Zuweisen zum Scripting.FileSystemObject Set filesys = CreateObject("Scripting.FileSystemObject") 'Prüfen ob K: schon existiert If not filesys.DriveExists("K:") Then Set objNet = CreateObject("WScript.Network") objNet.MapNetworkDrive "K:" , "\\Fnd\AVDatene" Else Set objNet = CreateObject("WScript.Network") objNet.RemoveNetworkDrive "K:", True, True objNet.MapNetworkDrive "K:" , "\\Fnd\AVDatene" End If 'Nochmals prüfen ob Verbindung erfolgreich If not filesys.DriveExists("K:") Then objRet = Msgbox("Laufwerk K: existiert nicht und konnte auch nicht verbunden werden") Else Set objShell = WScript.CreateObject("WScript.Shell") Set objBin = objShell.run("C:\Programme\Aktenverwaltung\Aktenverwaltung.exe") End if Set filesys = Nothing Set objNet = Nothing '--------------------------------------------------------------------------------------------------------- Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 Nach einem Neustart wird die Meldung richtig angezeigt. Hab das Laufwerk immer nur ausgeschaltet und die vbs neu ausgeführt. Mit der braunen Funktion ist vielleicht nicht verkehrt, wenn das Programm neu gestartet wird und das Laufwerk in Standby gegangen ist. Ich danke dir erstmal für deine Super Hilfe. urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DrHouse77 Geschrieben 11. August 2008 Melden Share Geschrieben 11. August 2008 Nach einem Neustart wird die Meldung richtig angezeigt.Hab das Laufwerk immer nur ausgeschaltet und die vbs neu ausgeführt. Mit der braunen Funktion ist vielleicht nicht verkehrt, wenn das Programm neu gestartet wird und das Laufwerk in Standby gegangen ist. Ich danke dir erstmal für deine Super Hilfe. urkrossi Kein Thema.... sodele, werd jetzt mal langsam den Schlaf der gerechten schlafen.... bis denne mal... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 11. August 2008 Autor Melden Share Geschrieben 11. August 2008 Ja geh ruhig schlafen will dich nicht um den wohl verdienten bringen. Kurzes Testergebnis noch, es werden jetzt beide Fehlermeldungen angezeigt wenn die Verbindung verlorengegangen ist. Edit: Nach mehrmaligem Testen erscheint nur noch die gewünschte Fehlermeldung. urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
amdinside Geschrieben 12. August 2008 Melden Share Geschrieben 12. August 2008 Na die VBS Lösung ist die eleganteste...da halt ich mich mit Autoit mal zurück ! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
urkrossi Geschrieben 12. August 2008 Autor Melden Share Geschrieben 12. August 2008 @amdinside trotzdem Danke für die Angebotene Hilfe. @DrHouse77 Ich hab jetzt nochmal alles mögliche durchprobiert und es funzt wunderbar. Im Falle das noch Fragen auftreten meld ich mich bei dir. MfG und Danke urkrossi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.