*.bat Datei => Programme sollen nicht nochmal gestartet werden und maximiert starten

  • Allgemein

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Link275.

    *.bat Datei => Programme sollen nicht nochmal gestartet werden und maximiert starten

    Hallo,

    ich schreibe mir derzeit (zum rumprobieren und weil nützlich) ein paar *.bat-Dateien.
    Dabei gehts darum, die Programme, die ich sowieso immer öffne und meistens brauche, zu öffnen, ohne mich durch die Taskleiste klicken zu müssen (Win7 Ultimate) oder durch Ordner schlängeln.

    Dazu habe ich ein paar Fragen:

    1. Wie kann ich überprüfen, ob gewisse Prozesse schon laufen (Oder eher nicht laufen)? Ich möchte keine Programme sinnlos doppelt starten.

    Dazu habe ich folgendes im Internet gefunden:

    Quellcode

    1. if tasklist |find /i "Skype%.exe" >nul (
    2. echo Skype is running!
    3. ) else (
    4. START C:\Programme\Skype\Phone\Skype.exe
    5. )
    6. if tasklist |finf /i "MediaMonkey.exe" >nul (
    7. echo MediaMonkey is running!
    8. ) else (
    9. START C:\Programe\MediaMonkey\MediaMonkey.exe
    10. )


    Das jetzt nur exemplarisch, aber beide Befehle werden ignoriert, auch ein dahinter notiertes "oause" oder auch "@pause" werden ignoriert, wenn ich dann schauen will, ob irgendetwas ausgegeben wurde.

    Das brauche ich vor allem bei der Spiele-Entwicklung, da ich dort viele Sachen habe, die ich auf mache...

    2. Ist es möglich, anhand des Fenstertitels einer Anwendung abzufragen, ob eine bestimmte Datei darin geöffnet ist? geht hier um Wrd und RPG XP, dort passen sich die Fenstertitel entsprechend an...

    Wenn ich bspw. nur kurz was geschaut habe, dann aber weiter daran arbeiten will und die anderen Programme und Dokumente brauche, wäre eine *.bat praktisch, will aber auch da nicht irgendwelche Fenster doppelt und dreifach öffnen.


    ich habe bei cmd selbst nichts in der Richtung gefunden...

    3. Kann ich einem Programm einen Parameter mitgeben, welcher das Fenster maximiert startet? Habe auch da nichts gefunden, oder ist das von der Anwendung abhängig?



    Wenn es da nicht überall was passendes gibt, kann ich mir auch eine VB-Anwendung schreiben, aber wozu das Rad neu erfinden?...

    Danke im Voraus.


    Edit by Dodo:
    Hat wirklich nicht das geringste mit Visual Basic zu tun desswegen
    -> Topic verschoben (Hauptforum => weitere Programmiersprachen)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()

    Ist das hier nicht etwas falsch im Hauptforum?

    Möglichkeit a

    Batch only:

    Quellcode

    1. @echo off
    2. tasklist /FI "IMAGENAME eq explorer.exe" 2>NUL | find /I /N "myapp.exe">NUL
    3. if "%ERRORLEVEL%"=="0" echo Programm is running
    4. if "%ERRORLEVEL%"=="0" start explorer.exe
    5. pause


    Oder du schreibst dir einfach ein Programm in VB welches überprüft ob ein prozess läuft

    VB.NET-Quellcode

    1. if Process.GetProcessesByName("explorer").count > 0 then msgbox("Explorer is running") else msgbox("Explorer is not running")
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    das steht oben verwürrt mich aber :

    Hauptforum
    Für alles zu Visual Basic, was in keines der nachfolgenden Spezialforen gehört. Auch für allgemeine Fragen zur Softwareentwicklung. Für Anfängerfragen bitte das Grundlagen-Forum benutzen

    wobei mich dann der hintere teil wider verwürrt ?(
    Das Hauptforum ist für allgemeine Fragen zu Visual Basic gedacht, welche nicht in ein Spezialforum passen.

    Batch ist aber eindeutig nicht Visual Basic und gehört eher in OffTopic bzw. in weitere Programmiersprachen...
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    Hi,

    alternativ kannste dir doch in VB auch ne Konsolenanwendung basteln die die ganzen Sachen erledigt. Die fertige .exe dann in %systemroot%->system32 kopieren und dann in deiner Batch aufrufen, ggf. mit Argumenten (wie der Prozessname -> in VB dafür dann ne Funktion is_running(...) z.B.). Wäre denk ich mal die beste Lösung.


    Gruß
    Link :thumbup:
    Hello World