extern gestartete Anwendung in Vordergrund holen

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Moin!
    ich wundere mich, dass Du diesen Code in einer Zeile schreiben kannst!

    VB.NET-Quellcode

    1. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> Private Shared Function FindWindow(ClassName As String, WindowName As String) As IntPtr : End Function


    Ich bekomme dann die Meldung



    Gruß Jan
    Ich nutze VS2017CE oder auch mal VS2019 Preview. Darin problemlos möglich.
    Bilder
    • AllInOneLine.png

      5,44 kB, 1.214×121, 11 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Moin!

    nachdem wir nun eine Klippe umschifft haben stehe ich vor der nächsten.

    Ich habe folgende Zeile nun eingebaut

    VB.NET-Quellcode

    1. Dim hWnd = FindWindow(Nothing, "EBL GSE Dokumenten-Historie")


    und bekomme diese Fehlermeldung:

    PInvokeStackImbalance ist aufgetreten.
    Message: Der Assistent für verwaltetes Debugging ""PInvokeStackImbalance"" hat ein Problem in ""C:\VSProjects\Konsolenanwendungen\DLL-Dateien\EBL_GStkHistorie.vshost.exe"" festgestellt.
    Zusätzliche Informationen: Ein Aufruf an die PInvoke-Funktion "EBL_GStkHistorie!EBL_GStkHistorie.Form1::SetForegroundWindow" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.


    hWnd hat eine Wert bekommen.

    ???

    Gruß an

    jan99 schrieb:

    PInvokeStackImbalance
    Dann schmeiß die alte mistige falsche VB6-Deklaration raus und nutze eine .NET-Deklaration dieser Prozedur.
    Gugst Du pinvoke.net/
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    Es stellt sich jetzt eben die Frage, ob noch die alte Deklaration verwendet wird oder die neuere, die ich gepostet habe.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.