Loop until Excel closes

Ist Excel schon offen bevor du dein Programm testest?

Wenn ja, wird die Datei im bereits gestarteten Excel geöffnet und kein neuer Prozess gestartet. Daher ist der Rückgabewert von Process.Start null.
Testen kannst du das, in dem du die bereits von mir genannte Process.GetProcessesByName-Methode verwendest, und nachsiehst ob du Excel findest.

lg..
 
Hallo,

nein habe es nochmal auf einer anderen Maschine getestet und auch nichts.
Habe nochmal komplett von vorne angefangen um Fehler auszufiltern.
Habe eine neue Windows Applikation erstellt wo ich nur auf meiner Form ein Button habe.
In diesem Button habe ich folgendes stehen:

Dim TestProcess() As Process
> > Try
> > TestProcess= Process.GetProcessesByName("2DDrwg")
> > If TestProcess.Length = 0 Then
> > MsgBox("Not running", MsgBoxStyle.OKOnly)
> > Else
> > MsgBox("Running", MsgBoxStyle.OKOnly)
> > End If
> > Catch ex As Exception
> > MsgBox("Error!")
> > End Try

So ich bekomme auch mit diesem Code keine richtige Antwort, ob das Document geschlossen oder geoeffnet ist, bekomme ich die selbe messagebox welche sagt "Not running"****?

Ich habe sogar mit kompletten Pfad und dateinamen versucht, doch auch nichts.

Noch eine andere Idee****?
 
Mal zuerst ein Hinweis: setze deine Codeauszüge doch bitte in die passenden Code-Tags, bei VB.net wäre dies [ vbnet ] - dann lässt sich das ganze besser lesen.

Zu deinem Problem.. was soll "2DDrwg" sein? Wenn du sehen willst ob Excel läuft, müsstest du Process.GetProcessesByName("Excel") verwenden.
 
Also ich habe diesmal statt "2DDrwg" "Excel" geschrieben und dieses ausgefuehrt mit Excel geoffnet und ohne, jedoch auch hier bekomme ich jedesmal die gleiche Messagebox Benachrichtigung.

Dim TestProcess() As Process
Try
TestProcess= Process.GetProcessesByName("Excel")
If TestProcess.Length = 0 Then
MsgBox("Not running", MsgBoxStyle.OKOnly)
Else
MsgBox("Running", MsgBoxStyle.OKOnly)
End If
Catch ex As Exception
MsgBox("Error!")
End Try

Muss ich vielleicht irgendeine Properties aendern?
 
Normalerweise sollte es so funktionieren, alle von mir erwähnten Methoden etc hab ich nochmal ausprobiert bevor ich sie hier gepostet habe.

Du kannst gerne auch mal mit Process.GetProcesses arbeiten und nachsehen was für Elemente du da so findest, und welche Namen da bei den einzelnen Objekten hinterlegt sind.

Ein wenig mit den Klassen rumspielen, ausprobieren, debuggen, Doku lesen schadet nie... ;)
 
Hallo,

Also ich habe nochmal Computer neu gestartet. Also wenn ich process.getprocessesbyname("Excel") schreibe funktioniert dies jetzt, jedoch nicht wenn ich anstatt "Excel" meinen kompletten Pfad mit Datainamen schreibe wie z.B.: process.getprocessesbyname("C:\temp\2DDrwg.xlsx")

Hast du eine Erklaerung warum dies nicht anerkannt wird?
 
Ja, der Prozess heisst nunmal "Excel" - und Excel hat deine Datei öffnen. Du kannst (auf diesem Weg) nur prüfen ob Excel läuft, bzw. darauf warten, dass das ganze Excel geschlossen wird.
 

Neue Beiträge

Zurück