Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Countdown während der Laufzeit wieder auf Anfang stellen und erst wenn t0 erreicht, dann ein bestimmtes Programm starten. Lösung als vbscript wäre schön

Mitglied: reinhr

reinhr (Level 1) - Jetzt verbinden

12.02.2018 um 14:47 Uhr, 344 Aufrufe, 9 Kommentare

Hallo Leute,

bestimmte Nutzer erzeugen zeitweise über eine Software mehrere Transaktionen in einer DB und nach
jeder einzelnen Transaktion wird automatisch ein bestimmtes Programm (A) gestartet.
Das hat zur Folge, dass das Programm möglicherweise mehrmals hintereinander gestartet wird.

Abhilfe soll ein Countdown schaffen.
Das Programm (A) soll nicht mehr direkt gestartet werden, sondern erst nach einem zuvor bei z.B. (t=30s) gestarteten Countdown,
welcher bei (t=0s) dann tätig wird. Wird jedoch während der Laufzeit des Countdown eine weitere Transaktion getätigt,
so soll der Countdown wieder von vorne bei (t=30s) beginnen.

Erst wenn keine Transaktionen mehr innerhalb der Laufzeit des Countdown getätigt werden, soll das Programm (A) gestartet werden.

Ideal wäre es, wenn das Ganze mit vbscript lösbar wäre.

Danke vorab für eure Lösungen

Gruß
Roland
Mitglied: Penny.Cilin
12.02.2018 um 15:57 Uhr
Hallo,

und hast Du schon einen Code?
Oder müssen wir für Dich die Arbeit machen?

Gruss Penny
Bitte warten ..
Mitglied: reinhr
12.02.2018 um 16:28 Uhr
Hallo Penny,

leider hab' ich noch keinen Code und auch keine Idee, sondern nur meine
Anforderung die euch übergeben habe, weil ich es alleine bestimmt nicht hin bekomme.

Gruß
Roland
Bitte warten ..
Mitglied: rubberman
12.02.2018 um 17:33 Uhr
bestimmte Nutzer erzeugen zeitweise über eine Software mehrere Transaktionen in einer DB und nach jeder einzelnen Transaktion wird automatisch ein bestimmtes Programm (A) gestartet.
Da musst du mal etwas konkreter werden. Denn entweder musst du genau an diesem Punkt ansetzen und die transaktions-erzeugende Software muss prüfen ob Programm A bereits läuft oder du musst zumindest beschreiben woher ein Script wissen soll, ob/wann eine Transaktion gestartet wurde um prüfen zu können ob in diesem Fall Programm A bereits läuft. Wobei letzteres nicht hilft wenn Software 1 Programm A trotzdem mehrfach automatisch ausführt. Irgendwie wird das so noch überhaupt nicht rund.

Steffen
Bitte warten ..
Mitglied: reinhr
12.02.2018 um 20:26 Uhr
Hallo Steffen,

wenn das Programm (A) bereits gestartet wurde - kein Problem - dann soll es bis zum Ende weiterlaufen.
Ein vorzeitiges Beenden ist dann nicht notwendig.

Programm (A) kann ja mehrfach gestartet werden, ich möchte nur nicht, dass das nach jeder Transaktion geschieht.

Die zeitliche Abfolge kann folgendermaßen aussehen:
5 Personen machen 10 einzelne Transaktionen innerhalb von 1 min., wobei sich die Personen nacheinander anmelden und zwischen
den nächsten Transaktionen gerne mal 2 min. vergehen.
Es entstehen also in 13 min. 50 Transaktionen.

Jede Transaktion stößt HEUTE über den Befehlsaufruf (X) das Programm (A) an.
Daraus folgt, dass das Programm (A) 50x innerhalb von 13 min. gestartet wird und das möchte ich nicht.

Ich möchte folgendes erreichen:
Befehlsaufruf (X) ZUKUNFT (LaunchProgramAfterCountdown Programm) soll gestartet werden.
Timer eingestellt auf z.B. (3 min = 180s)
Solange Transaktionen getätigt werden, wird der nun aktuell herunterzählende Countdown wieder mittels (X) auf 180s zurückgesetzt.
Erst wenn keine Transaktionen mehr während der Laufzeit des Countdown anfallen , wird am Ende das Programm (A) vom (bsp. LPAC.vbs Programm) 1x gestartet.

Gruß und Danke schon mal
Roland
Bitte warten ..
Mitglied: rubberman
12.02.2018 um 22:09 Uhr
Zitat von reinhr:
Solange Transaktionen getätigt werden ...
Erst wenn keine Transaktionen mehr während der Laufzeit des Countdown anfallen ...

Und da wären wir wieder bei meiner Frage:
woher ein Script wissen soll, ob/wann eine Transaktion gestartet wurde

Steffen
Bitte warten ..
Mitglied: reinhr
12.02.2018 um 23:04 Uhr
...ich dacht es ist dadurch möglich, weil ja das gleiche Script erneut gestartet wird.
Ggf. kann man ja folgenden Ansatz verfolgen:

Wenn der Task gestartet ist, dann beende den Prozess und starte den Prozess (Countdown) neu.

Roland
Bitte warten ..
Mitglied: rubberman
13.02.2018 um 00:57 Uhr
Das ganze ist schon ziemlich abstrakt für jemanden der nicht vor deinem Rechner sitzt.
Versuch:
01.
Option Explicit 
02.
 
03.
Const wait = 30 
04.
Const progPath = "C:\Windows\notepad.exe" 
05.
 
06.
Dim objFSO, objWSH, objWMI, colItems, objItem, ownPID 
07.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
08.
Set objWSH = CreateObject("WScript.Shell") 
09.
Set objWMI = GetObject("winmgmts:\\.\root\CIMV2") 
10.
 
11.
' Prozess ID des eigenen Scriptprozesses 
12.
ownPID = objWMI.Get("Win32_Process.Handle='" & objWSH.Exec("mshta.exe").ProcessID & "'").ParentProcessId 
13.
 
14.
' Alle evtl. sonstigen Prozesse dieses Scripts beenden 
15.
Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name='wscript.exe' " & _ 
16.
                                "AND CommandLine LIKE '%" & WScript.ScriptName & "%' " & _ 
17.
                                "AND ProcessID <> " & ownPID) 
18.
For Each objItem In colItems 
19.
  objItem.Terminate 
20.
Next 
21.
 
22.
' Warten 
23.
WScript.Sleep wait * 1000 
24.
 
25.
' Alle evtl. bereits laufendeden Instanzen des Programms beenden 
26.
Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name='" & objFSO.GetFileName(progPath) & "'") 
27.
For Each objItem In colItems 
28.
  objItem.Terminate 
29.
Next 
30.
 
31.
' Programm starten 
32.
objWSH.Run """" & progPath & """"
Da du auf ein VBScript abgezielt hast, gehe ich davon aus dass du den Code verstehst und eventuelle Anpassungen oder Korrekturen selbst vornimmst.

Steffen
Bitte warten ..
Mitglied: reinhr
14.02.2018 um 09:20 Uhr
Hallo Steffen,

Du bist der der Hammer!!! Genau so ausgestaltet wie ich es brauche - habe es eben ausprobiert.
Spitzen Arbeit ohne Fehler!

Vielen, vielen Dank!


Gruß
Roland
Bitte warten ..
Mitglied: rubberman
14.02.2018 um 12:02 Uhr
Da du explizit auf eine Timeout-Lösung hingearbeitet hast, bin ich davon ausgegangen, dass die offensichtlich einfachste Lösung nicht infrage kommt. Die wäre nämlich, dass das Script prüft ob schon eine Instanz des Programms läuft und nur dann eine neue Instanz des Programms startet, falls nicht. Aber wie gesagt, deine Erklärungen sind zu unspezifisch, als dass ich hätte entscheiden können ob das eine Option wäre.

Steffen
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless
Countdown-Lösung für LAN
Frage von keine-ahnungLAN, WAN, Wireless27 Kommentare

Moin miteinander, kennt zufällig jemand eine Software, die einen (leicht) einstellbaren countdown im LAN propagieren kann? Um das mal ...

Windows Tools
Programm auf bestimmten Monitor starten
gelöst Frage von djevil-adWindows Tools4 Kommentare

Hallo, ich hab da mal eine recht simple Frage, aber ich weiss nicht wie ich es am Besten machen ...

Batch & Shell

Batch erst starten wenn bestimmte Datei vorhanden ist

gelöst Frage von pdiddoBatch & Shell7 Kommentare

Hi Jung, in meiner batch wird eine .txt Datei bearbeitet. Diese .txt ist aber nur bei einer bestimmten Ereignisauslösung ...

VB for Applications

Per VBScript Zeile nach bestimmter Stelle einfügen dabei mit numerierung fortfahren!

gelöst Frage von aletriVB for Applications4 Kommentare

Guten Abende allerseits Dies ist ein Auszug der Datei an der eine Zeile eingefügt werden soll:

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 1 TagBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 3 TagenHumor (lol)7 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 3 TagenExchange Server9 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 4 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
E-Mail
Deutsche e-Mail Adresse auf iPhone in Katar. Nur Probleme
gelöst Frage von vanTastE-Mail25 Kommentare

Moin, ich habe hier in Deutschland auf einem Exchange 2013 eine e-Mail Adresse (name@domain.de) für einen Kollegen in Katar ...

Windows Server
Domäne beitreten nicht möglich, unter VMWare windows Server 2016 Core
Frage von AmanuelWindows Server11 Kommentare

Ich habe auf meinem Mac unter VMWare Windows Server 2016 Core und Windows Server 2016 Desktopversion installiert. Beide Systeme ...

RedHat, CentOS, Fedora
OTRS 5 kann keine Mails mehr abrufen
gelöst Frage von opc123RedHat, CentOS, Fedora11 Kommentare

Hallo, OTRS kann keine Mails mehr abrufen. Verschicken ja. Dadurch kommen keine Tickets mehr rein. Gibt es Anlaufpunkte was ...

Windows Server
Server 2016 Autotiering Storage Space
Frage von HenereWindows Server11 Kommentare

Servus, ich habe jetzt ein StorageSpace auf einem Server 2016 in Betrieb zum Testen. 1x M2 mit 512GB (970pro) ...