Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
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

TaskID von Shell.Application geöffnetem Programm

TaskID von Shell.Application geöffnetem Programm
03.01.2018 09:22:19
Shell.Application
Hallo zusammen,
ich habe folgendes Problem und zwar habe ich eine Ordnerstruktur mit mehreren Bildern darin, die alle samt nacheinander geöffnet, bewertet und anschließend wieder geschlossen werden müssen. Das nacheinander Öffnen und Bewerten funktioniert bereits, lediglich das Schließen macht mir Probleme.
Zum Öffnen der Bilder habe ich mich bereits an einem Forumseintrag orientiert (https://www.herber.de/forum/archiv/1188to1192/1188974_externen_Bild_per_VBA_oeffnen.html). Hier der Code aus diesem Beitrag
Sub DateiPerShellObjectStarten()
Dim appSh As Object
Set appSh = CreateObject("Shell.Application")
appSh.Open "C:\Temp\KLE.jpg"
Set appSh = Nothing
End Sub
Nachdem ich in verschiedenen Foren herumgestöbert habe, bin ich immer wieder auf Code zum schließen einer Anwendung über deren TaskID gestoßen. Nun lautet meine Frage wie man konkret die TaskID ermitteln kann bei so einem Programmaufruf oder ob es nicht vielleicht eine viel einfachere Lösung für das Problem gibt.
Vielen Dank für eure Mühen,
Beste Grüße
Tobi

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TaskID von Shell.Application geöffnetem Programm
03.01.2018 11:28:30
Shell.Application
Hallo Tobi,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
  ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_CLOSE = &H10
Private lnghWnd As Long

Sub DateiPerShellObjectStarten()
Dim appSh As Object
Set appSh = CreateObject("Shell.Application")
appSh.Open "E:\Forum\test.jpg" ' "C:\Temp\KLE.jpg"

DoEvents
lnghWnd = GetForegroundWindow
Set appSh = Nothing
End Sub

Sub closeFile()
If lnghWnd > 0 Then Call SendMessage(lnghWnd, WM_CLOSE, 0, 0)
End Sub

Gruß Sepp

Anzeige
TaskID von Shell.Application geöffnetem Programm
03.01.2018 12:02:58
Shell.Application
Hallo Sepp,
tausend Dank. Ich konnte deine Lösung zwar nicht genauso umsetzen, da zwischen Öffnen und Schließen noch eine Inputbox war, habe dann jedoch einfach AppActivate vor die GetForegroundWindow-Anweisung gepackt und siehe da, alles funktioniert wie es soll.
Nochmals vielen Dank, ich wünsche noch einen schönen Tag.
Beste Grüße
Tobi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige