Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Name des aktuellen Dialogfensters (Drucken)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Name des aktuellen Dialogfensters (Drucken) (527 mal gelesen)
Heiko76
Mitglied
Applikationsingenieur


Sehen Sie sich das Profil von Heiko76 an!   Senden Sie eine Private Message an Heiko76  Schreiben Sie einen Gästebucheintrag für Heiko76

Beiträge: 589
Registriert: 21.03.2002

Win10 64bit
Autodesk Produkte 2018
VB.net / Powershell

erstellt am: 25. Nov. 2005 09:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

weiß jemand wie man den Namen des aktuellen Forms raus kriegt. Ich habe in meinem Code einen Aufruf:

AcroPDF1.PrintwithDialog

Dabei kommt das Dialogfenster zum drucken auf. Wie heißt dieses Dialogfenster? mit Me.... kann ich nichts anfangen. Ich möchte auf dieses Dialogfenster reagieren, so das mein Tool eine Pause einlegt, bis der User das Fenster schließt.

Danke

------------------

cu
Heiko

Schau mal rein www.mertens-bb.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 03. Dez. 2005 14:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heiko76 10 Unities + Antwort hilfreich

Hallo Heiko,

versuch es mal damit:

Option Explicit

Private Declare Function EnumWindows Lib "user32.dll" ( _
    ByVal lpEnumFunc As Long, _
    ByVal lParam As Long) As Boolean
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" ( _
    ByVal hWnd As Long, _
    ByVal lpString As String, _
    ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" ( _
    ByVal hWnd As Long) As Long
Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" ( _
    ByVal hWnd As Long, _
    ByVal lpClassName As String, _
    ByVal nMaxCount As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
    ByVal hWnd As Long, _
    ByVal wIndx As Long) As Long

Private Const GWL_STYLE = -&H10
Private Const WS_VISIBLE = &H10000000
Private Const WS_BORDER = &H800000
   
Private lngRow As Long

Public Sub prcStart()
    lngRow = 0
    With ThisWorkbook.Worksheets(1)
        .UsedRange.ClearContents
        EnumWindows AddressOf fncWindows, ByVal 0&
        .Columns.AutoFit
        .Columns("A:C").Sort Key1:=Cells(1, 2)
    End With
End Sub

Private Function fncWindows(ByVal hWnd As Long, ByVal lParam As Long) As Boolean
    Dim strTemp As String, lngReturn As Long, strClassName As String * 100
    Dim lngStyle As Long
    lngStyle = GetWindowLong(hWnd, GWL_STYLE) And (WS_VISIBLE Or WS_BORDER)
    lngReturn = GetWindowTextLength(hWnd)
    strTemp = Space(lngReturn)
    GetWindowText hWnd, strTemp, lngReturn + 1
'    If lngStyle = (WS_VISIBLE Or WS_BORDER) And lngReturn <> 0 Then 'sichtbare Fenster
    If lngReturn <> 0 Then 'alle Fenster
        lngRow = lngRow + 1
        GetClassName hWnd, strClassName, 100
        With ThisWorkbook.Worksheets(1)
            .Cells(lngRow, 1) = hWnd
            .Cells(lngRow, 2) = strTemp
            .Cells(lngRow, 3) = Trim(strClassName)
        End With
    End If
    fncWindows = True
End Function

Die Klassennamen, Titel und Handles werden in einer Exceltabelle ausgegeben. Über den Klassennamen kannst du mit FindWindow prüfen, ob das Fenster angezeigt wird. Benutz dazu einen Timer, der das in 10ms - Takt prüft.

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz