Focus per WSH steuern

Dieses Thema im Forum "Programmieren" wurde erstellt von FloFelber, 16. Januar 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. FloFelber

    FloFelber Byte

    Registriert seit:
    2. September 2001
    Beiträge:
    32
    Hallo,

    bei folgendem WSH-Script nimmt sich das Programm xyz.exe beim Starten immer den Focus. Ich habe schon versucht mit dem TweakUI-Tool die Option einzustellen, dass sich das Ding keinen Focus nehmen kann, aber es hilft alles nix.

    Kann ich per WSH den Focus des Programmes xyz.exe beeinflussen? Das Programm soll überigens nicht in der Taskleiste erscheinen, darum habe ich es mit Parameter ,0 versehen.

    Das Script prüft, ob ich online bin und führt dann die xyz.exe aus.

    Danke!

    Gruß

    Flo

    WMI_Ping2 ' Start des Skripts

    Sub WMI_Ping2()

    Set ShellWSH = CreateObject("WScript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")

    Const COMPUTER = "www.google.com"
    Const COMPUTER2 = "www.yahoo.com"
    Const COMPUTER3 = "www.ripe.net"
    Const COMPUTER4 = "www.t-com.de"
    Const COMPUTER5 = "www.strato.de"
    Const COMPUTER6 = "www1.schlund.de"

    Dim objPing
    Set objPing = GetObject("winmgmts:\\./root/cimv2:NetDiagnostics=@")
    'msgbox objPing.Ping(COMPUTER)
    'msgbox objPing.Ping(COMPUTER2)
    'msgbox objPing.Ping(COMPUTER3)
    'msgbox objPing.Ping(COMPUTER4)
    'msgbox objPing.Ping(COMPUTER5)
    'msgbox objPing.Ping(COMPUTER6)


    If objPing.Ping(COMPUTER) = "Wahr" Or objPing.Ping(COMPUTER2) = "Wahr" Or objPing.Ping(COMPUTER3) = "Wahr" Or objPing.Ping(COMPUTER4) = "Wahr" Or objPing.Ping(COMPUTER5) = "Wahr" Or objPing.Ping(COMPUTER6) = "Wahr" Then

    ShellWSH.Run "C:\Programme\xyz.EXE" ,0
    'msgbox "yes"
    Else
    'msgbox "no"
    End If
    if fso.fileExists("C:\Programme\böldefile.EXE") then
    Set f1 = fso.GetFile("C:\Programme\böldefile.EXE")
    f1.Delete
    'msgbox "del"
    else
    'msgbox "nodel"
    end if
    End Sub
     
  2. Christoph_vW

    Christoph_vW Byte

    Registriert seit:
    20. Oktober 2004
    Beiträge:
    37
    Du kannst mit der SetActiveWindow API einem anderen Fenster den Focus zuweisen.
    Da sich natürlich keine API aus einem VB Script aufrufen lässt müsstest du den Umweg über eine ActiveX Dll machen.

    Wenn du kein Visual Basic hast, kannst du dir auch die VB5 CCE Edition runterladen (kostenlos) und damit die Dll schreiben.

    In dem Script lässt sich dann die Dll wie gewohnt mit Set meineDll = CreateObject("ProjektName.Klassenname") aufrufen.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen