Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wscript.Shell

Wscript.Shell
14.02.2020 20:24:02
cryser88
Hallo,
ich möchte gerne mit der Shell ein Programm starten, das funktioniert auch ohne Probleme. Jedoch würde ich gerne die Position des Programmes (Top,Left) auf dem Bildschirm festlegen.
hier mein Code:
Dim WshShell, objNotepad As Object
Set WshShell = CreateObject("Wscript.Shell")
Set objNotepad = WshShell.Run("C:\Windows\notepad.exe", 1, False)
With objNotepad
.Top = 100
.Left = 100
End With
Bei Set objNotepad kommt die Fehlermeldung Objekt erforderlich.
Vielleicht gibt es ja auch eine ganz andere Möglichkeit.
Ich Sag dann jetzt schonmal Danke für eure Hilfe.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wscript.Shell
14.02.2020 21:24:12
Cryser88
Hallo,
Ja sowas hab ich mir schon gedacht.
Kennt Jemand vielleicht eine andere Lösung?
AW: Wscript.Shell
15.02.2020 00:55:11
volti
Hallo cryser88,
m.E. gibt die Run-Funktion weder Handle noch Objekt zurück, sondern den Error-Code. 0 ist hierbei die fehlerfreie Ausführung des Befehls.
Ich gehe davon aus, dass Du das Script unter Excel-VBA einsetzt und nicht in einer Script-Datei.
Hier eine Möglichkeit, wie Du Dein Ziel erreichen kannst. Hierbei unterstelle ich, dass der Fenstertext "Unbenannt -Editor" ist…
Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hWnd As LongPtr, _
        ByVal hWndInsertAfter As LongPtr, ByVal x As Long, ByVal y As Long, _
        ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
       
Sub Test()
 Dim WshShell, lNotepad As Long
 Set WshShell = CreateObject("Wscript.Shell")
 lNotepad = WshShell.Run("C:\Windows\notepad.exe", 1, False)
 Sleep 100
 SetWindowPos FindWindow(vbNullString, "Unbenannt - Editor"), _
              0&, 100, 100, 0, 0, SWP_NOSIZE
End Sub
viele Grüße
Karl-Heinz

Anzeige
AW: Wscript.Shell
15.02.2020 10:40:21
cryser88
Hallo,
Super vielen Dank. Klappt hervorragend. Ich setzte es zwar nicht in Excel-VBA ein sondern bei einer Industrie HMI Software, die sind sich aber sehr ähnlich.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige