1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Focus per WSH steuern

Discussion in 'Programmieren' started by FloFelber, Jan 16, 2005.

Thread Status:
Not open for further replies.
  1. FloFelber

    FloFelber Byte

    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. 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.
     
Thread Status:
Not open for further replies.

Share This Page