SolidWorks API - Macro-onderbreking via Escape-toets

Hoi allemaal

Ik wou dat ik een MsgBox kon weergeven als de gebruiker op de "ESCAPE" -toets drukt terwijl mijn macro wordt uitgevoerd.

Ik voegde aan het begin van mijn macro toe:

     Excel.Application.OnKey "{ESC}", "Escape"

En stel de MsgBox in de volgende Sub in:

Sub Ontsnapping()
        Als MsgBox("Macro stoppen?", vbYesNo + vbQuestion) = vbYes Dan
            Sub afsluiten
        Anders
            Samenvatting  'Hervat uitvoering
        Einde als
Einde Sub

 

Maar het werkt niet. Heeft iemand een idee?

Bij voorbaat dank.

1 like

Hallo

Gebruik je SW of Excel?

Is het niet een beetje gevaarlijk om de code op elk moment te kunnen stoppen? Je leest alleen op je SW-bestanden hoop ik?

Tot ziens...

1 like

Hallo

Als de code niet wordt gestart, gebeurt er niets. Ik heb getest met alleen Application.OnKey en het werkt geweldig.

Aan de andere kant moet deze functie te allen tijde actief zijn, dus deze moet waarschijnlijk in het blad worden geplaatst waar de controle van de acties van de gebruiker moet worden uitgevoerd.

1 like

@Remrem

Ik zit op SW, maar Application.OnKey maakt deel uit van de Excel-bibliotheek. Ik lees niet alleen, maar mijn macro communiceert met onze ERP via WebServices...

@Cyril.f

Werkt het vanuit een SW- of Excel-macro?

1 like

Excel, niet getest op SW.

Naar mijn mening zal het niet mogelijk zijn om Excel-procedures in SW te gebruiken. Kijk na een snelle zoekopdracht naar het vbkey-niveau dat van toepassing is op de forums.

Dank je wel Cyril.

Het werkt naar wens.

Sub Control_KeyDown()
   
    Doe-evenementen
    Als (GetAsyncKeyState(vbKeyEscape)) dan
        Als MsgBox("Macro stoppen?", vbYesNo + vbQuestion) = vbYes Dan
            Einde
        Anders
        Einde als
    Einde als
        
Einde Sub

Geen dank.