vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Dialogbox ansprechen ? 
Autor: Dirk.B
Datum: 09.01.10 12:37

Hallo Angelus!

Vielen Dank für die Info.
Das hört sich ja gut an, nur leider habe ich davon null Ahnung, wie ich es umsetzen müßte.
Hier noch mal der Teil des Programmcodes, mit der Stelle markiert, an der die Dialogbox
auftaucht. Der Titel der Dialogbox lautet "AutoCAD".

Private Sub cmdDurchlauf_Click()
 
Dim tAcadApp As AcadApplication
Set tAcadApp = ThisDrawing.Application
Dim tAcadDoc As AcadDocument
 
If TextBox1.Text = "" Then GoTo MyErrorHandler
Dim Dateiname As String
Dim ImportPfad As String
ImportPfad = TextBox1.Value & "\"
Dim DateiZahl As String
Dim i As Integer
i = 0
DateiZahl = Dir$(ImportPfad & "*.dwg")
Do While DateiZahl <> ""
    i = i + 1
    DateiZahl = Dir$()
Loop
Me.ProgressBar1.Max = i
Dateiname = Dir(ImportPfad & "*.dwg")
 
Do While Dateiname <> ""
    Set tAcadDoc = tAcadApp.Documents.Open(ImportPfad & Dateiname)
    Me.Caption = Dateiname
'------------------------------------------------------------------
'??Nachdem die Zeichnung geladen/geöffnet wurde, erscheint nun eine
'??Dialogbox mit folgender Abfrage:
 
'###Titel = AutoCAD
'###Info = ...dwg enthält Erstellungselemente
'          In Blockeditor öffnen?
'###Auswahl = OK/Button     NEIN/Button     ABBRUCH/Button
'###Der Focus steht auf dem OK/Button
'------------------------------------------------------------------
 
    With tAcadDoc
        .SendCommand ("_shademode" & vbCr & "2d" & vbCr)
        .Regen acActiveViewport
        .PurgeAll
    ZoomExtents
        .Save
        .Close
    End With
 
    Dateiname = Dir
    If ProgressBar1 + 1 > ProgressBar1.Max Then Exit Do
    ProgressBar1 = ProgressBar1 + 1
    DoEvents
Loop
 
Me.Caption = "Durchlauf beendet"
ProgressBar1.Value = 0
 
    Exit Sub
MyErrorHandler:
    MsgBox "Es wurde kein Verzeichnis ausgewählt", 64, "Hinweis"
 
End Sub
Wie müßte ich das hier einsetzen?
Könntest Du mir, oder evtl. jemand anderer hierbei auf die Sprünge helfen?

Vielen Dank im voraus.

Angeregt durch Deinen Link, bin ich noch auf dies Sache mit dem kybd_event-Funktion gestoßen.
Wäre das auch noch ne Möglichkeit?
Nach dem die Dialogbox ja auf dem Bildschirm erschienen ist, kann ich manuell mit der Tab - Taste
von dem OK/Button auf den NEIN/Button wechseln und anschließend mit der Enter/Return - Taste die Dialogbox schließen.

Dieses hatte ich versucht wie folgt umzusetzen, jedoch ohne Erfolg.
Ich habe WinXP SP3 und Vista im Einsatz.

'--Programmpause erzwingen (ca. 2 Sekunden) bis Dialogbox da ist--
Private Declare Sub apiSleep Lib "kernel32" Alias "Sleep" (ByVal _
lngMilliSeconds As Long)
 
'--zunächst die benötigten API-Deklarationen----------------------
Private Declare Sub keybd_event Lib "user32.dll" ( _
  ByVal bVk As Byte, _
  ByVal bScan As Byte, _
  ByVal dwFlags As Long, _
  ByVal dwExtraInfo As Long)
 
'--keybd_event dwFlags-Konstanten
Private Const KEYEVENTF_EXTENDEDKEY = &H1   'Erweiterte Tastatureingabe
Private Const KEYEVENTF_KEYUP = &H2         'Die angegebene Taste wird 
' losgelassen
 
Private Const VK_TAB = &H9                  'Tab Taste
Private Const VK_RETURN = &HD               'Enter Taste
...
...
Do While Dateiname <> ""
    Set tAcadDoc = tAcadApp.Documents.Open(ImportPfad & Dateiname)
    Me.Caption = Dateiname
'------------------------------------------------------------------
'??Nachdem die Zeichnung geladen/geöffnet wurde, erscheint nun eine
 
    Call apiSleep(2000)
 
    'Tab Taste drücken
    Call keybd_event(VK_TAB, 0&, 0&, 0&)
    'Tab Taste wieder loslassen
    Call keybd_event(VK_TAB, 0&, KEYEVENTF_KEYUP, 0&)
 
    'Enter Taste drücken
    Call keybd_event(VK_RETURN, 0&, 0&, 0&)
    'Enter Taste wieder loslassen
    Call keybd_event(VK_RETURN, 0&, KEYEVENTF_KEYUP, 0&)
...
...
Hier der Link dazu:
http://www.vbarchiv.net/api/api_kybd_event.html

Wie gesagt, für Hilfe bei der Problemlösung wäre ich sehr dankbar.

VG

Dirk

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Dialogbox ansprechen ?4.226Dirk.B05.01.10 09:28
Re: Dialogbox ansprechen ?3.088Angelus1908.01.10 11:36
Re: Dialogbox ansprechen ?3.374Dirk.B09.01.10 12:37
Re: Dialogbox ansprechen ?3.028Angelus1909.01.10 15:17
Re: Dialogbox ansprechen ?2.976Dirk.B10.01.10 13:13
Re: Dialogbox ansprechen ?2.972wb-soft10.01.10 13:36
Re: Dialogbox ansprechen ?3.028Dirk.B11.01.10 11:13
Re: Dialogbox ansprechen ?2.940Angelus1911.01.10 14:22
Re: Dialogbox ansprechen ?2.961Dirk.B12.01.10 11:42
Re: Dialogbox ansprechen ?2.921Angelus1912.01.10 12:12
Re: Dialogbox ansprechen ?2.934Dirk.B12.01.10 14:33
Re: Dialogbox ansprechen ?2.996Angelus1912.01.10 16:32
Re: Dialogbox ansprechen ?2.957Dirk.B12.01.10 19:03
Re: Dialogbox ansprechen ?2.941Dirk.B13.01.10 15:03
Re: Dialogbox ansprechen ?2.960wb-soft13.01.10 15:26
Re: Dialogbox ansprechen ?2.910Angelus1914.01.10 08:08
Re: Dialogbox ansprechen ?2.970Dirk.B18.01.10 08:22
Re: Dialogbox ansprechen ?2.912ModeratorDieter18.01.10 08:26
Re: Dialogbox ansprechen ?2.888Dirk.B24.01.10 18:14

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel