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

Instanzen sehen und beenden (code z.T vorhanden)

Instanzen sehen und beenden (code z.T vorhanden)
18.02.2009 11:31:00
chris
Hallo VBA experten,
ich suche mal wieder Hilfe.
Hoffe ihr könnt mir helfen.
ich habe hier einen Code mit diesem sehe ich die Anzahl aller
Excelinstanzen die gestartet wurden auch wenn Sie unsichtbar sind.
Ich wollte den Code so modifizieren das ich die einzelnen Instanzen beendet kann oder sichtbar machen bzw. Unsichtbar machen kann.
Aber leider klappt das nicht.
ich habe es mit dieser zeile versucht->
.sinProcess.Quit'beenden
.sinProcess.visible = true 'Sichtbar machen
würde mich freuen wenn ihr mir helfen könntet.
Dafür vielen dank im vorraus !
gruß Chris
Option Explicit

Sub test()
Dim l As Long
l = ReadProcessData("EXCEL.EXE")
MsgBox l & " Excel-Instanzen offen"
End Sub



Function ReadProcessData(ByVal Prozess As String) As Long
Dim objWMIService As Object, colProcesses As Object, sinProcess As Object
Set objWMIService = GetObject("winmgmts:")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
ReadProcessData = 0
For Each sinProcess In colProcesses
With sinProcess
If .Name = Prozess Then
ReadProcessData = ReadProcessData + 1
'.sinProcess.Quit
End If
End With
Next
Set objWMIService = Nothing
Set colProcesses = Nothing
End Function


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Instanzen sehen und beenden (code z.T vorhanden)
18.02.2009 12:03:00
Renee
Hi Chris,
Du vermischst da verschiedene Sachen.
VB-Scripting Objekte haben andere Eigenschaften / Methoden wie VBA Objekte.
Manchmal bekommt man bei deinen Codes das Gefühl, du betätigst dich als Viren-Schreiber ;-)
Um z.B. die 2te Instanz zu beenden, müsste es statt:

sinProcess.Quit
heissen:
If ReadProcessData = 2 Then .Terminate


Vielleich findest du auch über Hiding und Unhiding was unter diesem Link.
GreetZ Renée

Anzeige
AW: Instanzen sehen und beenden (code z.T vorhanden)
18.02.2009 12:07:00
chris
nein Virenschreiber nicht.
Wie kommst du da drauf ?
ich brauche die Codes für die Arbeit und für mich Priivat ein bischen.
Bin am dazu lernen immer ein bischen deshalb auch manchmal abstrackte wünsche :)
Aber leider komme ich mit deinem Code nicht so klar ?
Wo muss ich den einbauen ? Weil ich habe z.b 5 INstanzen von excel geöffnet und will die eine Öffnen die z.b den Namen Mappe4 hat.
Danke dir gruß Chris
AW:habe es hinbekommen.Danke noch einmal o.t
18.02.2009 12:10:00
chris
AW: noch mal offen - noch eine frage dazu
18.02.2009 12:24:00
chris
Hallo muss doch noch einmal aufmachen.
Renee du hast mir diesen Code gegeben.
"If ReadProcessData = 2 Then .Terminate"
Mit diesem Code bekomme ich auch z.b die zweite Excel Instanz geschlossen.
Wie gehe ich vor das ich nur ein bestimmtes Workbook terminiere.
Also schon die Appliction aber eines Bestimmten workbooks.
Z.b bei der zweiten instanz dann "Mappe2"
Weil ja jede Instanz ein Workbook Namen hat.
Habe es schon so versucht aber klappt nicht.
if sinProcess.activeworkbook.name = "Mappe2" then .terminate
Danke noch einmal für die Hilfe !!
gruß Chris
Anzeige
Wieder Durcheinander!
18.02.2009 12:33:00
Renee
Hi Chris,
Und wieder benutzt du Objekte/Eigenschaften von VBA im VBScript. DAS FUNKTIONIERT NICHT.
Wenn die Kontrolle der Instanzen nicht in Excel/VBA-Environment liegt, kannst du nicht auf die VBA-Objekte wie .Workbooks() zugreifen. Für WMI heisst die Instanz EXCEL.EXE und das war's in die Innereien (Name der Mappe) kommst du mit VBScripting nicht! Du musst dich entscheiden ob VBA, VBScripting oder API-Funktionen oder gemischt, aber wen Du die WINDOWS-Kontrolle über Instanzen und Threads umschreiben willst, dann kann ich dir dabei nicht helfen!
GreetZ Renée
AW: Hilfe bei Auflösung des durcheinanders
18.02.2009 13:19:00
chris
Hallo Renee,
danke für deine msg und deine Tipps.
Nur leider verstehe ich nicht alles zu 100% :(
Würde mich aber freuen wenn du mir das erklären könntest ?
Was meinst du damit
"Objekte/Eigenschaften von VBA im VBScript. "
"Wenn die Kontrolle der Instanzen nicht in Excel/VBA-Environment liegt, kannst du nicht auf die VBA-Objekte wie .Workbooks() zugreifen."
Wie erlange ich anders die namen der Dateien ?
Mein wunsch ist es alle instanzen von Excel angezeigt zu bekommen.
Dafür verwende ich den code von ersten thread.
Und diesen Code möchte ich so umbauen das ich einzelne Instanzen schliesen kan und auch Ihren Namen heraus bekomme.
Ich ´habe kein konkretes Beispiel ich will es einfach nur "lernen" das bessere verstehen und 'können' von VBA.
Wäre super wenn du mir dabei Hilfst oder mich zumindest unterstützen könntest.
Danke schon im vorraus !
gruß Chris
P.s Was meinst du damit ?
VBA, VBScripting oder API-Funktionen oder gemischt, aber wen Du die WINDOWS-Kontrolle über Instanzen und Threads umschreiben willst, dann kann ich dir dabei nicht helfen!
Anzeige
VBE bietet genügend Hilfe
18.02.2009 13:40:00
Renee
Hi Chris,
Mach dich mit dem Objektmodell von Excel/VBA vertraut.
Dazu gibts in der VB-Hilfe genügend Angaben und sieh dir den ObjektKatalog im VBE an.
Das was du vorhast, kann nicht mit reinem VBA funktionieren, da es keine INSTANZ-ÜBERGREIFENDE Funktionen gibt. Und für WMI sind die Objekte bis zu einem gewissen Grad geschützt.
Bevor du solch 'exotische' und z.T. 'gefährliche' Eingriffe in die Instanzkontrolle machst, musst du dich unbedingt mehr mit den Grundlagen auseinandersetzen.
GreetZ Renée
AW: VBE bietet genügend Hilfe
18.02.2009 14:00:00
chris
Bringt mich zwar nicht weiter.
Weiß weder wo noch unter was ich suchen bzw. nachlesen soll aber ich schau es mir an.
Danke und schönen Tag noch !
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige