schauan
Goto Top

Unsichtbare Anwendung sichtbar machen - Windows 7 - Microsoft Excel

Hallo zusammen,

gibt es eine Möglichkeit, eine Anwendung, die per Task mit einem bestimmten user "unsichtbar" gestartet wurde, während des Laufens sichtbar zu machen? Konkret geht es darum, dass Excel startet und es sich aufgehängt hat. Das passiert unmittelbar beim Start, sodass ein Log aus Excel heraus nichts bringt face-sad

Ich vermute, dass es um einen speziellen Fehler geht ("Excel konnte zuletzt nicht korrekt gestartet werden ...").

In den Ereignisprotokollen finde ich ein entsprechendes Ereignis:

Protokollname: OAlerts
Quelle: Microsoft Office 14 Alerts
Datum: 24.10.2016 03:01:28
Ereignis-ID: 300
Aufgabenkategorie:Keine
Ebene: Informationen
Schlüsselwörter:Klassisch
Benutzer: Nicht zutreffend
Computer: xxxxxxxxxxxxxxx
Beschreibung:
Microsoft Excel
Das Dokument xxxxxxxxxxxxxxx.xlsm' verursachte ein Problem, als es zuletzt geöffnet wurde. Möchten Sie mit dem Öffnen fortfahren?
P1: 700164
P2: 14.0.7015.1000
P3: 5f1w
P4:

Dieser Fehler tritt äußerst selten auf, den hab ich in den letzten 10 Jahren so etwa ein bis zwei mal pro Jahr, dann zum Teil aber auf mehreren Rechnern.

Wenn man normal mit excel arbeitet, klickt man den weg und gut ist.

Das Problem ist, dass dieser Fehler im konkreten Fall in der "unsichtbaren" Situation auftritt und unbedingt weggeklickt werden muss.

Starte ich Excel mit dem entsprechenden user normal, funktioniert Excel, es kommt keine Meldung, ich habe nichts zum wegklicken face-sad .


Bislang habe ich dazu noch keine Lösung gefunden. Neustart des Rechners - Null Punkte. Löschen und Neuanlegen des users, unter dem Excel "unsichtbar" ausgeführt wird - bringt nichts. Ebenso andere Maßnahmen wie Office neu installieren usw. Ich musste die Rechner immer neu aufsetzen.

Wenn ich mich als entsprechender user auf dem System anmelde, sehe ich nun ja leider nur im Taskmanager, dass Excel läuft. Aber wie hole ich es auf den Desktop?
Oder weiß jemand, wo dieser Fehler im System registriert wird, dass sich Excel jedes mal daran "erinnert" ? Wie kann man den dann löschen?

Content-Key: 318937

Url: https://administrator.de/contentid/318937

Printed on: April 26, 2024 at 07:04 o'clock

Mitglied: 131223
131223 Oct 24, 2016 updated at 06:35:46 (UTC)
Goto Top
Application.DisplayAlerts = False

im Startup-Event von Excel setzen.
Member: schauan
schauan Oct 24, 2016 at 06:51:08 (UTC)
Goto Top
Hallo,

das bringt leider nichts. Der Fehler tritt beim Start von Excel noch vor Ausführung jeglichen Codes auf.
Mitglied: 131223
131223 Oct 24, 2016 updated at 06:57:07 (UTC)
Goto Top
Diese Einstellung wird über einen Neustart von Excel hinaus gespeichert!
Einmaliges anwenden mit dem User reicht also.

Das sichtbar machen der anderen Session geht nicht, da andere Usersession. Du musst dich schon als dieser User interaktiv anmelden.
Member: schauan
schauan Oct 24, 2016 at 07:48:44 (UTC)
Goto Top
Hallöchen,

Excel wurde, wie im Auszug vom Ereignisprotokoll ersichtlich, heute Nacht 3:01 gestartet.
Ich habe mich heute früh als entsprechender user angemeldet.

Wie gesagt, Excel behandelt hinsichtlich dieses Fehlers den angemeldeten und den abgemeldeten Zustand irgendwie unterschiedlich. Als wären es zwei verschiedene "Versionen". Angemeldet erscheint er nicht, abgemeldet ist er da.

Die Fehlermeldung kann man nicht unterdrücken, auch nicht mit DisplayAlerts=False. Da gibt es in Excel den einen oder anderen Fehler, und dieser gehört dazu.
Mitglied: 131223
131223 Oct 24, 2016 updated at 07:53:16 (UTC)
Goto Top
Das Windows-Profil des Users (Profilordner) löschen reicht, da muss man Windows nicht neu aufsetzen face-big-smile
Member: schauan
schauan Oct 24, 2016 at 08:26:52 (UTC)
Goto Top
Hallöchen,

das meinte ich mit "Löschen und Neuanlegen des users"
Member: schauan
schauan Oct 26, 2016 at 07:25:53 (UTC)
Goto Top
Hallöchen,

habe inzwischen einen code gefunden, mit dem man unsichtbare Anwendungen sichtbar machen kann. Allerdings funktioniert der unter den speziellen Bedingungen nicht. "unsichtbar" ist Excel, das durch weitere Scripte und Programme über die Aufgabenplanung unter dem entsprechenden user, mit höchsten Privilegien, ausgeführt wird.
Im Taskmanager sehe ich Excel und den zugehörigen user und hatte die Hoffnung, dass das funktioniert face-sad

Hier mal der Vollständigkeit halber noch der Code zum sichtbar machen.

Imports System
Imports System.Text
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim excel As New ExcelBase
        excel.Init()
    End Sub
End Class
Public Class ExcelBase
    Private Declare Auto Function IsWindowVisible Lib "user32.dll" (ByVal hWnd As IntPtr) As Integer  
    Private Declare Auto Function ShowWindowAsync Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Integer  
    Private Declare Auto Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As EnumWindowsProcDeleg, ByVal lpParam As IntPtr) As Integer  
    Private Declare Auto Function GetClassName Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer  
    Dim sb As New StringBuilder(255)
    Private Function ClassName(ByVal hWnd As IntPtr) As String
        sb.Length = 0
        GetClassName(hWnd, sb, 255)
        Return sb.ToString.ToLower
    End Function
    Public Sub Init()
        Call EnumWindows(AddressOf EnumWindowsProc, 0)
    End Sub
    Private Delegate Function EnumWindowsProcDeleg(ByVal hWnd As IntPtr, ByVal lpParam As IntPtr) As Integer
    Private Function EnumWindowsProc(ByVal hWnd As IntPtr, ByVal lpParam As IntPtr) As Integer
        Threading.Thread.Sleep(20)
        ' Only need to check hidden windows  
        If IsWindowVisible(hWnd) = False Then
            If ClassName(hWnd).Equals("xlmain") Then  
                Console.WriteLine(hWnd.ToInt32)
                ' Show the hidden excel windows.  
                ShowWindowAsync(hWnd, 5)
            End If
        End If
        Return 1 '// push enumeration  
    End Function
End Class
Member: Pedant
Pedant May 10, 2017 at 17:45:26 (UTC)
Goto Top
Hallo schauan,

Zitat von @schauan:
..."unsichtbar" ist Excel, das durch weitere Scripte und Programme über die Aufgabenplanung unter dem entsprechenden user, mit höchsten Privilegien, ausgeführt wird.
Wie verhält sich das wenn Du das auslösende Skript per Hand startest und dabei als der entsprechende User angemeldet bist?
Dann sollte es doch sichtbar sein und eventuell dieselben Problem haben, die Du dann aber wenigstens sehen kannst.

Gruß Frank