Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 21:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Batch Problem - prozess erkennen

Discussion on Batch Problem - prozess erkennen within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Oberbratze's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 166
Received Thanks: 15
Batch Problem - prozess erkennen

hi leute

ich brauche eure hilfe.
mein plan is folgender: eine batch datei, die eine seite aufrufen soll und anschließend nach einer pause wieder schließen soll.
ist der prozess, sprich firefox vorher offen gewesen soll er offen bleiben. ist er nicht offen gewesen soll er danach wieder geschlossen werden.

ich kenne mich eig gar nich aus damit , habe jedoch durch googlen und bisschen ausprobieren/basteln mir ein paar zeilen geschrieben und brauche eine kleine fehleranalyse
von der hälfte weiß ich nichma was es genau bedeutet/macht

Meine Idee:
Code:
if tasklist /FI "IMAGENAME eq firefox.exe" | find /i "firefox.exe" && GOTO nokill
else GOTO killfirefox

:nokill
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "Internetseite"
ping -n 4 127.0.0.1 > NUL
GOTO End

:killfirefox
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "Internetseite"
ping -n 4 127.0.0.1 > NUL
taskkill /F /IM firefox.exe
GOTO End

:End
Oberbratze is offline  
Old 03/29/2012, 14:43   #2
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Benutz doch einfach eine vernünftige Programmiersprache.
jacky919 is offline  
Old 03/29/2012, 15:27   #3
 
Oberbratze's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 166
Received Thanks: 15
hehe
ich brauche das aber für den jdownloader als reconnect methode.

von daher würde ich mich über hilfe immernoch freuen
Oberbratze is offline  
Old 03/29/2012, 16:29   #4
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
Dein If-Konstrukt ist doppelt-gemoppelt, da der &&-Operator eine indirekte If-Abfrage ist. Außerdem weiß ich nicht, ob sich das else einfach so dahinterstellen lässt, ansonsten müsste der Rest funktionieren.
Hab's gerade mal bei mir getestet:
Code:
@echo off

tasklist | find /i "opera.exe" > nul
if errorlevel == 1 (
set WasAlreadyRunning=
) else (
set WasAlreadyRunning=Yep
)

if "%ProgramFiles(x86)%"=="" ( 
  set "x86root=%ProgramFiles%" 
) else ( 
  set "x86root=%ProgramFiles(x86)%" 
) 

start "%x86root%\opera\opera.exe" "http://google.de"
ping -n 4 127.0.0.1 > nul

if "%WasAlreadyRunning%"=="" (
  taskkill /IM "opera.exe" > nul
)
Du könntest das aber auch mit Netcat ohne Umweg über den Browser machen, also das HTTP-Request direkt an das WebInterface deines Routers senden.
Hab mir irgendwann mal ein kleines Batch-Skript dafür geschrieben und könnte es raussuchen, falls du es brauchst (das Request hängt natürlich immer vom Interface des Routers ab, ist also nicht universell)
link is offline  
Thanks
1 User
Old 03/29/2012, 17:04   #5
 
Oberbratze's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 166
Received Thanks: 15
danke für deine Antwort. Jedoch gibts es noch ein kleines Problem damit ich es für mich zurechtbasteln kann.

Quote:
Originally Posted by link View Post
Code:
@echo off

tasklist | find /i "opera.exe" > nul
if errorlevel == 1 (
[B]set WasAlreadyRunning=                         //Ab hier verstehe ich nicht 
) else (                                                    //ganz die Vorgehensweise
set WasAlreadyRunning=Yep
)

if "%ProgramFiles(x86)%"=="" ( 
  set "x86root=%ProgramFiles%" 
) else ( 
  set "x86root=%ProgramFiles(x86)%" 
) [/B]                                                      // Bis hier :D

start "%x86root%\opera\opera.exe" "http://google.de"
ping -n 4 127.0.0.1 > nul

if "%WasAlreadyRunning%"=="" (
  taskkill /IM "opera.exe" > nul
)
Oberbratze is offline  
Old 03/29/2012, 17:13   #6
 
elite*gold: 0
Join Date: Mar 2012
Posts: 1
Received Thanks: 0
Ok, ja das stimmt.
0x539 is offline  
Old 03/29/2012, 17:23   #7
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
1. Tasklist erstellt eine Liste aller laufenden Prozesse
2. Über den Pipe-Operator wird diese Liste in den Find-Befehl eingespeist
3. Dieser sucht nach "opera.exe", wenn nichts gefunden wird, wird die vordefinierte Variable errorlevel (Rückgabewert des letzten Aufrufs) auf 1 (bzw. höher als 0) gesetzt
4. Heißt wenn opera.exe gefunden wurde, wird die Variable WasAlreadyRunning auf "Yep" gesetzt, ansonsten wird sie als leer definiert
5. Da sich Opera auf einem 64bit-System im 32bit-Programme-Verzeichnis befindet, unter 32bit aber lediglich im Programme-Verzeichnis, wird überprüft, ob es ein 32bit-Programme-Verzeichnis gibt (Indikator für 64bit) und dementsprechend wird das richtige Programme-Verzeichnis ausgewählt
6. Jetzt wird Opera mit dem gewünschten Parameter gestartet
7. Das Ping localhost dient als Sleep, um den Programmablauf kurzzeitig zu pausieren
8. Als letztes wird abgefragt, ob Opera beim Start des Skripts schon lief, wenn nicht (Opera also erst durch das Skript gestartet wurde), wird es wieder geschlossen

Btw. ohne "@echo off" werden die einzelnen Befehle, die du aufrufst, nochmal selber ausgegeben
und "> nul" sorgt dafür, dass die Rückgaben der einzelnen Befehle nicht ausgegeben werden (find gibt z.B. die Zeile zurück, in der der gesuchte String gefunden wurde, und durch "> nul" wird's einfach verworfen und es wird nichts angezeigt)

@0x539:
Tasklist gibt nur 0 zurück, weshalb sich dann mit errorlevel nicht arbeiten lässt
link is offline  
Thanks
1 User
Old 03/29/2012, 17:41   #8
 
Oberbratze's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 166
Received Thanks: 15
wow super, danke dir
hab nur schnell opera mit firefox ersetzt und alles hat geklappt.

is ja auch nur reine vorbeugung damit nich firefox 1000 tabs öffnet sollte ich mal afk sein
wenn ich da bin schließe ich die tabs dann manuell, deswegen der aufwand.
Oberbratze is offline  
Reply


Similar Threads Similar Threads
Batch Hatcher problem
01/27/2012 - EO PServer Hosting - 0 Replies
I'm not sure if this has already been posted but I couldn't find anything on it. I have a bug where after I purchase eudemons from the batch hatcher and then close the hatching screen, the eudemons dissapear after they get hatched. I have to open and close the batch hatcher screen a few times before my pets become visible again. Does anyone know a way to fix this?
Problem mit einer .exe/es startet kein Prozess
12/10/2010 - Technical Support - 12 Replies
Hi, ich würde gerne ein Spiel spielen. Dazu muss ich immer eine Patcher.exe starten, die patcht meinen Spielordner auch ordnungsgemäß! Anschließend minimiert sie sich und sollte eigentlich die Game.bin starten....es passiert aber nichts! Ich habe schon versucht die .bin einfach in eine .exe umzubennen, die .bin mit einer .bat Kommandodatei zu starten und mit einem Patcher-Bypass! Nichts davon startet den Spielclient..... Kaspersky will schon beim downloaden etwas aus dem Ordner...
Batch hatcher Problem
11/14/2009 - EO PServer Hosting - 9 Replies
hello...i have got a problem...in my batch hatcher you cannot purchase eudemons to hatch...you have to buy them from shoping mall and then put them into the batch hatcher...i would like to know how to fix this problem. i have got a screen shot of it so you get the idea what i am talking about. Thanks will be included.
Problem mit asm in dll die von einen prozess geladen wird :/
09/29/2009 - General Coding - 8 Replies
Hat sich erledigt!



All times are GMT +1. The time now is 21:28.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.