Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Prozess beenden bei Dateinamen mit Leerzeichen
#1
Hallo,

habe folgendes Problem:

Rufe mit folgendem Befehl eine PDF Datei auf:
CreateObject("WScript.Shell").Run  str

wobei str für einen String steht, der zu der betreffenden PDF Datei führt.

Jetzt möchte ich aber die geöffnete Datei auch wieder per VBA schließen.

Also benutze ich in meinem Programmcode diesen Befehl:
Shell "taskkill /im  Foxit PhantomPDF.exe/f"

Das geht aber leider nicht, da der Dateiname ein Leerzeichen enthält.
Wie löse ich das Problem?
Antworten Top
#2
Entweder a) den DOS 8.3-Namen verwenden oder b) die Datei umbenennen. 

Ob man ihn c) in Anführungszeichen (' oder ") setzen kann, weiß ich nicht. Könnte evtl. in der Dokumentation stehen.
Antworten Top
#3
Servus,

versuch mal mit double quotes ...

Shell "taskkill /im  ""Foxit PhantomPDF.exe""/f"

LG Gerd
Antworten Top
#4
Hallo Leute,
danke für euer Interesse und die angebotene Hilfe. Leider haben eure gutgemeinten Ratschläge bei mir nicht funktioniert.

Möchtet ihr ein Programm schließen, könnt ihr das folgendermaßen machen:
(hier am Beispiel: Foxit PhantomPDF.exe)

Zitat:Sub Programm_Schliessen()
  strComputer = "."
  'zu schließendes Programm: 
  strProgramm = "'Foxit PhantomPDF.exe'"
  Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = " & strProgramm)
  For Each objProcess In colProcessList
    objProcess.Terminate
  Next
End Sub
Antworten Top
#5
Danke für die Info, die vielleicht füe den ein oder anderen relativ neu ist.

Mit VBA kann man direkt auf die Task-Liste zugreifen, allerdings nicht unter Excel, sondern mit Word. Das kann man wiederum ais xl öffnen.

VG
Antworten Top
#6
Hallo hi,

Zitat:Mit VBA kann man direkt auf die Task-Liste zugreifen
hast Du da auch mal ein Beispiel dazu?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Servus André,

vor ein paar Tagen hatte ich mal n Progrämmchen gestrickt ...
DiaShow durch die TASKLEISTE

LG Gerd
Antworten Top
#8
Hallo Gerd,

Danke, feine Sache Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste