Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: MSG-Boxen unter Win7/64Bit

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen
Autor Thema:  API: MSG-Boxen unter Win7/64Bit (2731 mal gelesen)
Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 16. Apr. 2012 19:53    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 an alle,
damit auch MSG-Boxen unter Win7/64Bit im Vordergrund zu sehen sind, habe ich die Schreibweise

MsgBox " Kein Dokument geöffnet!", vbCritical

bisher durch diese Ersetzt.

Call MsgBox("Kein Dokument geöffnet!", vbSystemModal, "Information")


Allerdings funktioniert dies nicht in dieser Schreibweise.

vbAW = MsgBox("Die Datei ist nicht freigegeben, soll trotzdem gedruckt werden?", vbSystemModal + vbYesNo)
If vbAW = vbNo Then

Die MSG-Box kommt nicht in den Vordergrund.
Gibt es eine Alternative, bei der die Box im Vordergrund erscheint?

Für sachdienliche Hinweise freut sich……….

Grüße, Andi  

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Winni-two
Mitglied
Ing. Maschb.


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

Beiträge: 154
Registriert: 12.03.2010

SW 2021 SP5
Intel Xenon W2135 @3.7GHz
Win 10 64 bit
Graka: Nvidia Quadro P4000
32 GB Ram

erstellt am: 16. Apr. 2012 19:59    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi

Ich habe alle MsgBox durch Int = swApp.SendMsgToUser2("Text!", 1, 1)  ersetzt.

Gruß Winni

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 16. Apr. 2012 23:33    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


Msg-Box-01.JPG

 
Hallo Winni,
danke für die Antwort.
Nun habe ich es mit folgendem Test-Code mal Probiert.

    Dim vbAW As Long
    vbAW = swApp.SendMsgToUser2("Wie hättest du es denn gerne!", swMbQuestion, swMbYesNo)
    If vbAW = 6 Then
        Call MsgBox("Du hast Ja gesagt!", vbSystemModal, "Ja-Sager")
    Else
        Call MsgBox("Du hast Nein gesagt!", vbSystemModal, "Nein-Sager")
    End If

Leider bleibt auch diese MsgBox hinter dem Hauptfenster zurück.
Ich muss nun darauf achten, dass sie räumlich nebeneinander Positioniert werden.
Aber sicherlich bleibt sie bei dieser Methode nicht hinter dem SW-Fenster verborgen, was noch schlimmer ist.

Evtl. fällt dir noch etwas anderes ein.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 17. Apr. 2012 07:40    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo ANdi,

du hattest doch selbst auch schon im Beitrag Makro Meldungsfenster im Hintergrund geschrieben und ein paar der Hinweise dort ausprobiert, das müsste doch auch mit den Messageboxen klappen. Im absoluten Zweifelsfall eine eigene Dialogbox basteln, die so aussieht wie eine Messagebox.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

Winni-two
Mitglied
Ing. Maschb.


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

Beiträge: 154
Registriert: 12.03.2010

SW 2021 SP5
Intel Xenon W2135 @3.7GHz
Win 10 64 bit
Graka: Nvidia Quadro P4000
32 GB Ram

erstellt am: 17. Apr. 2012 09:40    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi

Kann es sein, dass du das du das Schriftfeld Formular mit FindWindow und SetWindowPos in den Vordergrund holst?

Falls ja dann versuch mal:

Int8 = FindWindow(vbNullString, "Schriftfeld Informationen")
Int9 = SetWindowPos(Int8, -1, 0, 0, 0, 0, 3)
Int9 = SetWindowPos(Int8, -2, 0, 0, 0, 0, 3)

Bei mir ist dann die MsgBox im Vordergrund.

Mfg Winni

[Diese Nachricht wurde von Winni-two am 17. Apr. 2012 editiert.]

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 17. Apr. 2012 18:46    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

Zitat:
Original erstellt von Winni-two:

Kann es sein, dass du das Schriftfeld Formular mit FindWindow und SetWindowPos in den Vordergrund holst?

Hallo Winni,
Gratuliere deiner Glaskugel, haarscharf kombiniert, ja so ist es. 

Ich habe deinen Vorschlag eingebaut und er funktioniert auch, allerdings mit einem unschönen Efekt.
Für die Zeit, da eine Msg-Box auf ist, verschwindet das Schriftfeld Formular auch hinter das Fenster von SolidWorks und kommt wieder zum Vorschein nach beenden der Box. Man hat den Eindruck, das Makro wird aus- und eingeblendet.

Schöner wäre es, wenn das Makro noch vor SolidWorks bleibt und die Msg-Box zuoberst.
Dies funktioniert ja auch schon mit den einfachen Call MsgBoxen.
Nur die Dialog-Msg-Boxen machen das nicht.
Solange ich noch Platz habe, die Boxen neben mein Fenster zu plazieren, benötige ich diesen Wunsch noch nicht.
Nur für den Fall, dass ich Platzprobleme bekomme, ist deine jetzige Lösung wenigstens ein Ansatz.

Besten Dank erstmal, und wenn du noch eine Idee hast, nur zu.

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 17. Apr. 2012 19:17    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

Zitat:
Original erstellt von StefanBerlitz:

du hattest doch selbst auch schon im Beitrag Makro Meldungsfenster im Hintergrund geschrieben und ein paar der Hinweise dort ausprobiert,

Hallo Stefan,
du hast schon recht, und seit diesem Beitrag habe ich meine User-Forms im Griff (hoffentlich).
Mit den Call MsgBoxen habe ich auch keine Probleme.
Nur die Boxen die z.B. eine Ja/Nein Option haben, wollen noch nicht wie ich.
In dem von dir erwähnten Beitrag habe ich dafür keine Lösung gesehen, oder ich habe etwas übersehen.

Winni hat ja nun schon eine fast optimale Lösung geboten, die noch nicht Mal schwer umzusetzen ist, sodass jemand wie ich das noch hinbekommt.
Ich bezeichne mich was API angeht immer noch als Jungstift. 

Grüße auch, Andi   

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 18. Apr. 2012 16:22    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi

ohne jetzt alles genau gelesen zu haben
hast Du es schon mal mit "VbMsgBoxSetForeground" versucht?

z.B.
antw = MsgBox("Sind Sie sicher?", vbMsgBoxSetForeground + vbYesNo, "Meldung")

in der Hilfe steht dazu
VbMsgBoxSetForeground 65536 Legt das Meldungsfeld als Vordergrundfenster fest 

------------------
Grüße
Heinz

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 18. Apr. 2012 18:40    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 Heinz,
danke für diese Variante, aber sie verhält sich genauso wie die swApp.SendMsgToUser2 Variante von Winni.
Die Box kommt vor SolidWorks, aber hinter dem Formular des Makros.

Es ist schon komisch, da die einfachen Call MsgBoxen vor dem Formular sind, kann das hervorbringen des Formulars über FindWindow und SetWindowPos nicht so dominant sein, dass da nicht noch andere Boxen davor können.

Aber warum kann dies  die Call MsgBox, aber deine Variante nicht?

Schon komisch?

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 19. Apr. 2012 06:07    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi

komisch mit der von mir beschriebenen Variante hab ich eigentlich keine Probleme.

Naja, wer weiß schon was in so einem Computer wirklich vorgeht

------------------
Grüße
Heinz

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

Thomas5
Mitglied
Konstrukteur, SWX-Admin


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

Beiträge: 420
Registriert: 14.07.2003

SWX2013

erstellt am: 19. Apr. 2012 09:55    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo,
wenn wir schon mal dabei sind:
Ich habe der Einfachheit halber in etlichen Makros die "InputBox" vom Windows-VBA eingebaut.
Nun gibt es da keine Parameter zum Steuern, daß dieses Fenster in den Vordergrund kommt.
Gibt es so eine Methode in SWXSolidWorks, oder kann ich dieses Fenster mit einem anderen Trick nach vorne Bringen?
Viele Grüße
Thomas

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)2024 CAD.de | Impressum | Datenschutz