|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus  der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | 
|  |  | 
|  | SolidWorks und FEM , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein) 
 | 
| Autor | Thema:  Makro Meldungsfenster im Hintergrund (10654 mal gelesen) | 
 | Bernd Knab Mitglied
 
 
   
 
      Beiträge: 373Registriert: 16.01.2001
 SWX 2020 SP5.0 |    erstellt am: 03. Mrz. 2010 09:18  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Zusammen, ich habe seit der Umstellung auf Win7 und SWX 2010 x64 folgendes Problem: Messageboxen, die von Makros erzeugt werden, oder Forms von Makros werden nicht im Vordergrund gezeigt, sondern sind hinter anderen Fenstern "versteckt".
 Kennt jemand das Problem und wenn ja, gibt es einen Registry-Einstrag, der dafür sorgt, dass die Pop-Up Fenster wieder in den Vordergrund kommen? Bisher habe ich mit folgendem Registry-Eintrag unter XP den Effekt wegbekommen: [HKEY_CURRENT_USER\Control Panel\Desktop]"ForegroundLockTimeout"=dword:00000000
 Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | ad_man Mitglied
 freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
 
     
 
      Beiträge: 1384Registriert: 20.12.2003
 SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 |    erstellt am: 03. Mrz. 2010 09:28  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | StefanBerlitz Guter-Geist-Moderator
 IT Admin (CAx)
 
 
  
 
      Beiträge: 8756Registriert: 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: 03. Mrz. 2010 10:35  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Bernd, für Makroformulare, die auf 64Bit hinter dem Hauptfenster verschwinden, gibt es in der SolidWorks Knowledgebase den Eintrag S-013887 mit Titel How to avoid a modeless VBA form is hidden behind SolidWorks window on x64?. Da hängen zwei Beispielmakros namens ModalOnX64.swp und SldWorksIsX64.swp dran, die demonstrieren, wie man die Forms wieder nach vorne bekommt. Ist leider nicht ganz trivial und so wie ich das gesehen habe auch nicht als generische Funktion vorhanden, aber immerhin ein Ansatz. Ciao,Stefan
 ------------------Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
 Stefans SolidWorks Blog
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Bernd Knab Mitglied
 
 
   
 
      Beiträge: 373Registriert: 16.01.2001
 SWX 2020 SP5.0 |    erstellt am: 03. Mrz. 2010 11:24  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Bernd Knab Mitglied
 
 
   
 
      Beiträge: 373Registriert: 16.01.2001
 SWX 2020 SP5.0 |    erstellt am: 05. Mrz. 2010 10:14  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo, ich habe jetzt mit den beiden Tips herumgespielt.  SendMsgToUser2 funktioniert problemlos. Bei den Formularen habe ich noch Probleme:Ich habe nur ein Formular im Makro. Dies wird in den Vordergrund gestellt.
 Wenn ich jetzt jedoch ein SendMsgToUser2 oder Msgbox aufrufe mit geöffnetem Formular wird dieses geschlossen, das ganze Makro beendet und ich lande wieder bei Solidworks.
 Ich habe festgestellt, dass dieser Effekt abhängig von den Windows Userrechten ist. Bei einem Standard Windows-User wird nach dem Schließen der SendMsgToUser-Box wieder das Formular vorgestellt und das Makro läuft weiter. Bei mir mit lokal Admin Rechten, wird das Makro wie oben beschrieben beendet. hat jemand eine Idee, wie ich eine Mitteilung an den User schicken kann, ohne dass ich dazu ein 2. Formular erstellen muss? Gruß Bernd [Diese Nachricht wurde von Bernd Knab am 09. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | businessbert Mitglied
 Konstruktion, Projektleitung, CadAdmin
 
   
 
      Beiträge: 225Registriert: 30.04.2009
 SolidWorks Premium 2015 SP4 - SNLWindows 7 Prof. 64-bit
 Intel Xeon CPU E5-1620 3.50GHz
 NVIDIA Quadro K4200
 16GB Ram
 Samsung SSD SM84 512GB
 |    erstellt am: 09. Jun. 2010 21:27  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Stefan, Hallo an alle, verzeiht mir dass ich diesen Thread wieder aus der Versenkung hole, aber  ich blick bei den beiden Beispielen aus der Knowledgbase nicht durch...Meine bisherigen copy and paste Versuche hatten immer nur eine Auswirkung:
   Leider scheitert es wohl an den Grundlagen... mit meinen Lernen-durch-beobachten-API-Kenntnissen kann ich mir nicht so recht erklären wie das arbeiten sollte, bzw ich es in meine Makro-Codes einpflegen könnte.
   Ich poste hier mal den Code, vielleicht findet ja jemand die Zeit mir den Code etwas zu erklären und mir einen Schubs in die richtige Richtung zu geben.
 Mit hoffnungsvollen Grüßen
 Robert
 SldWorksIsX64
 Modul subMain:
 Zitat:Option Explicit
 Dim swApp As SldWorks.SldWorks Public Function SldWorks_IsX64(ByRef swApp As SldWorks.SldWorks) As Boolean     Dim strExeName    As StringDim lBinaryType   As Long
 
 strExeName = swApp.GetExecutablePath
 GetBinaryType strExeName & "\sldworks.exe", lBinaryType
 SldWorks_IsX64 = (lBinaryType = SCS_64BIT_BINARY)
 
 End Function
 ----Sub main()
     Dim bIsX64 As Boolean
 Set swApp = Application.SldWorks
 
 ' Determine whether we are running SolidWorks x64.
 bIsX64 = SldWorks_IsX64(swApp)
 
 Debug.Print "is x64 = " & bIsX64
 
 End Sub
 
 
 Modul Win32:  Zitat:Option Explicit
 Public Const SCS_32BIT_BINARY = 0Public Const SCS_64BIT_BINARY = 6
 Public Declare Function GetBinaryType Lib "kernel32" Alias "GetBinaryTypeA" (ByVal sFileName As String, ByRef BinType As Long) As Long 
 ------------------
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | THSEFA Mitglied
 Konstrukteur/CAD-Admin
 
     
 
      Beiträge: 1142Registriert: 27.11.2002
 SWX 2020 SP5.0 PremiumWindows 10 Pro 64Bit
 Citrix VM
 Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
 24 GB Ram<P>Windows 10 Pro 64Bit
 |    erstellt am: 02. Aug. 2010 13:29  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Da ich aktuell genau vor dem gleichen Problem mit dem "verschwundenen" Formularfenster stehe, habe ich diesen Thread aus der Versenkung geholt. Mein Wissen und Können reicht hier leider nicht mehr aus. Vielleicht könnte jemand, der Ahnung von dem Thema hat uns "Halbwissenden" einen kleinen Schubs in die richtige Richtung geben...     ------------------Viele Grüße, THSEFA
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | tbd Mitglied
 Teamleiter
 
    
 
      Beiträge: 825Registriert: 26.01.2006
 Dell Percision T5400Intel(R) Xeon(R) CPU
 X5460 @ 3.16GHz
 3,25 GB RAM
 Nvidia Quadro FX 4600
 -----
 Win XP Prof SP 3
 SW 2008 SP 5.0
 PARTsolutions 8.1.08
 Cideon SAP PLM 5.103.5.17
 Visual Studio 2008
 |    erstellt am: 02. Aug. 2010 13:48  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | Bernd Knab Mitglied
 
 
   
 
      Beiträge: 373Registriert: 16.01.2001
 SWX 2020 SP5.0 |    erstellt am: 02. Aug. 2010 14:36  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Zusammen, ich habe aus den von Stefan genannten Makros die Module Globals, Utils und Win32 in meine Makros eingebunden.Dann habe ich meine Formulare aufgerufen mit:
 Sub main()Dim swFrame       As SldWorks.Frame
     Set swApp = Application.SldWorksbIsSolidWorksX64 = SldWorks_IsX64(swApp)
 Set swFrame = swApp.Frame
 hWndSolidWorks = swFrame.GetHWnd
 
 Unload FormKonvertierung
 FormKonvertierung.Show vbModeless
 End Sub Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | THSEFA Mitglied
 Konstrukteur/CAD-Admin
 
     
 
      Beiträge: 1142Registriert: 27.11.2002
 SWX 2020 SP5.0 PremiumWindows 10 Pro 64Bit
 Citrix VM
 Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
 24 GB Ram<P>Windows 10 Pro 64Bit
 |    erstellt am: 04. Aug. 2010 09:23  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo an alle anderen fleißigen Helfer, ich habe versucht, nach Bernd´s Anleitung unser Schriftfeldmakro zu ändern. Leider kommt jetzt eine Fehlermeldung, die ich mir nichts weiter sagt. Darf ich euch nochmal um  Hilfe bitten? ------------------Viele Grüße, THSEFA
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Bernd Knab Mitglied
 
 
   
 
      Beiträge: 373Registriert: 16.01.2001
 SWX 2020 SP5.0 |    erstellt am: 04. Aug. 2010 09:27  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | THSEFA Mitglied
 Konstrukteur/CAD-Admin
 
     
 
      Beiträge: 1142Registriert: 27.11.2002
 SWX 2020 SP5.0 PremiumWindows 10 Pro 64Bit
 Citrix VM
 Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
 24 GB Ram<P>Windows 10 Pro 64Bit
 |    erstellt am: 04. Aug. 2010 09:51  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Bernd, ja dann läuft das Makro.  Allerdings musste ich feststellen, dass es den ursprünglichen Zweck nicht erfüllt. Wenn ich morgens mein SWX starte, ist beim ersten benutzen eines Makros das entsprechende Fenster hinter dem von SWX. Erst wenn ich das SWX-Fenster verkleinere und dann das Makrofenster schließe (oder aber nach vorn hole und das Makro weiter ausführe) kann ich beim nächsten Aufrufen eines Makros sicher sein, dass das entsprechende Fenster nach vorn kommt.    ------------------Viele Grüße, THSEFA
   [Diese Nachricht wurde von THSEFA am 04. Aug. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | THSEFA Mitglied
 Konstrukteur/CAD-Admin
 
     
 
      Beiträge: 1142Registriert: 27.11.2002
 SWX 2020 SP5.0 PremiumWindows 10 Pro 64Bit
 Citrix VM
 Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
 24 GB Ram<P>Windows 10 Pro 64Bit
 |    erstellt am: 10. Aug. 2010 13:53  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Unser Support konnte uns bei dem Problem leider auch nicht viel weiterhelfen. Sie haben aber einen SPR ausfindig gemacht und uns mit eingeklinkt. Wer mag kann sich hier ranhängen, vielleicht geht´s dann ja schneller!    SPR-Nr:466785 ------------------Viele Grüße, THSEFA
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Winni-two Mitglied
 Ing. Maschb.
 
   
 
      Beiträge: 154Registriert: 12.03.2010
 SW 2021 SP5Intel Xenon W2135 @3.7GHz
 Win 10 64 bit
 Graka: Nvidia Quadro P4000
 32 GB Ram
 |    erstellt am: 16. Okt. 2010 00:28  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Da wir in unserer Firma endlich auf Windows 7 und 64bit umgestellt haben und ich einige Makros laufen habe, brauche ich unbedingt eine Lösung um die Userforms in den Vordergrund zu bringen. Da ich aber mit diesem Beitrag zu keiner Lösung kam, habe ich für mich einen gangbaren Weg gefunden um das Userform vom Makro im Vordergrund zu bringen. Und zwar starte ich als ersten Befehl im Userform unteres Makro. In diesem habe ich dann die verschiedenen Namen meiner Userforms eingefügt. Das klappt bei mir zufriedenstellend.  Declare Function SetWindowPos Lib "user32" _
 (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
 ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 Sub main()whwnd = FindWindow(vbNullString, "Ansicht drehen")
 Call SetWindowPos(whwnd, -1, 0, 0, 0, 0, 3)
 whwnd = FindWindow(vbNullString, "Schriftkopf")
 Call SetWindowPos(whwnd, -1, 0, 0, 0, 0, 3)
 whwnd = FindWindow(vbNullString, "Farben")
 Call SetWindowPos(whwnd, -1, 0, 0, 0, 0, 3)
 whwnd = FindWindow(vbNullString, "Drucken")
 Call SetWindowPos(whwnd, -1, 0, 0, 0, 0, 3)
 End Sub
 Hoffe konnte dem Einen oder Anderen damit helfenGruß Winni
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 16. Okt. 2010 11:39  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Winni, und herzlich Willkommen im Forum insbesondere deshalb, weil du dich als erstes gleich mit einer Hilfe statt einer Frage beteiligst. Dieses hier beschriebene Problem haben auch viele User die nicht viele Programmierkenntnisse haben, wie auch ich.Mal zum Verständnis. Muss dein Makro zuerst vor dem eigentlichen gewünschten gestartet werden oder wird es in bestehende Makros integriert?
 Wenn es integriert wird, könntest du vielleicht dein kpl. Makro als Anhang (z.B. Schriftkopf) hier veröffentlichen, damit der Gelegenheitsprogrammierer genau weiß, wo er deine Zeilen einfügen muss.
 Für weitere Hilfestellung schon mal besten Dank. 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.
 
   
 
      Beiträge: 154Registriert: 12.03.2010
 SW 2021 SP5Intel Xenon W2135 @3.7GHz
 Win 10 64 bit
 Graka: Nvidia Quadro P4000
 32 GB Ram
 |    erstellt am: 16. Okt. 2010 13:15  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Andi Ich hoffe das mit dem Anhang klappt. Habe als Beispiel das "Ansicht Drehen" Makro beigefügt - Herzlichen Dank an http://solidworks.cad.de.  Von da hab ich es und etwas für mich angepasst.Die Wichtige Stelle befindet sich im Formular ansichtDrehen:
 Private Sub UserForm_Initialize()Dim boolstatus As Boolean
 Set swApp = CreateObject("SldWorks.Application")
 boolstatus = swApp.RunMacro("C:\Macros\Aic_NachVorn.swp", "vv", "main")
 ...........
 Dort rufe ich das zweite Makro auf "Aic_NachVorn.swp" das mir dann das Userform Mit dem Formulartitel: "Ansicht drehen" in den Vordergrund bringt. Das mach ich so mit all meinen Macros die ein Userfom enthalten. Ich hoffe es wurde etwas klarer Gruß Winni
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 16. Okt. 2010 17:44  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Winni, besten Dank für deine Hilfe. Habe mir gleich deine Makros kopiert und ausgeführt, allerdings zunächst mit 2 Fehler. Erstens weil mein Pfad zu den Makros nicht stimmte den du aber vorgibst, und zweitens weil eigenartigerweise die gtswUtilities.tlb nicht gefunden wurde. Als ich dies korrigiert hatte, funktionierte deine Kombi auch bei mir. Rufe ich danach ein Macro von mir auf (noch nicht modifiziert), erscheint es sofort vor dem SW-Fenster. Es geht also nach dem Start von SW nur um den ersten Aufruf eines Macros. Kann man dein separates Makro nicht in die bestehenden Makros integrieren, um den Konflikt mit dem Pfad zu umgehen?Jeder hat doch andere Pfadverläufe.
 Bei uns haben wir sowohl zentral auf dem Server Makros, als auch direkt im Installationspfad von SW, um die Makros auch per Tastatur erreichen zu können. Da müsste ich das gleiche Makro in zwei Ausführungen erstellen.
 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 | 
                        | currie Mitglied
 Betriebsmittelkonstrukteur
 
  
 
      Beiträge: 83Registriert: 10.03.2005
 WIN10 / SWX2020 |    erstellt am: 18. Okt. 2010 08:06  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Ich stehe vor dem gleichen Problem. Bis jetzt habe ich mir immer so geholfen. Str+Alt+Enfernen >> Task-Manager >> Anwendungen >> Makro auswählen R-Klick >> In Vordergrund. Dann ist bei mir das Makro für diese Sitzung im Vordergrund.Nach einem Neustart von Solidworks ist es wieder im Hintergrund.
 Die hier bereitgestellten Lösungen waren bei mir nicht erfolgreich, liegt aber an meinen VB Kenntnissen. Currie 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | THSEFA Mitglied
 Konstrukteur/CAD-Admin
 
     
 
      Beiträge: 1142Registriert: 27.11.2002
 SWX 2020 SP5.0 PremiumWindows 10 Pro 64Bit
 Citrix VM
 Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
 24 GB Ram<P>Windows 10 Pro 64Bit
 |    erstellt am: 18. Okt. 2010 09:46  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
 Zitat:Original erstellt von Winni-two:
 ...Hoffe konnte dem Einen oder Anderen damit helfen...
 
   DANKE! DANKE! DANKE!   PS: Das ist mal ein Einstand! Erstklassig! Die ersten U´s sind vollkommen zu Recht verdient. Mach ruhig weiter so...   ------------------Viele Grüße, THSEFA
   PS: Wer kann bei mir bei Druckerproblem helfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas5 Mitglied
 Konstrukteur, SWX-Admin
 
   
 
      Beiträge: 420Registriert: 14.07.2003
 SWX2013 |    erstellt am: 30. Dez. 2010 12:41  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo, nun hab ich vom Weihnachsmann einen neuen PC mit Win7-64bit bekommen und habe jetzt auch das Problem mit den Formularen. Der Plan von Winni geht ja ganz gut bei den Userforms. Nur bei den mit msgbox erzeugten Eingabeaufforderungen und Meldungen will das nicht funktionieren. Weiß vielleicht jemand noch einen anderen Rat dazu? Viele Grüße und kommt gesund ins neue Jahr... Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Andreas R. Mitglied
 Konstrukteur,
 
 
      Beiträge: 2Registriert: 10.01.2011
 SWX Office Premium 2010 x64, SP4.0WIN7 Ultimate 64bit
 Intel(R)Core(TM)2 CPU 6600
 |    erstellt am: 10. Jan. 2011 16:28  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Thomas5, Im folgenden findest du eine abgeänderte Variante von Winni-two Code, da bei uns mehrere Leute Makros progen brauchten wir eine Version, die man direkt aus dem Makro heraus starten konnte. Code:Option Explicit
 Declare Function SetWindowPos Lib "user32" _(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
 ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 Dim res As LongDim lRet As Long
 Global Const SWP_NOMOVE As Long = 2Global Const SWP_NOSIZE As Long = 1
 Global Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
 Global Const HWND_TOPMOST As Long = -1
 Global Const HWND_NOTOPMOST As Long = -2
 Dim swApp As Object Dim Part As ObjectDim boolstatus As Boolean
 Dim longstatus As Long, longwarnings As Long
 Sub main() FormName.Show (False) lRet = FindWindow(vbNullString, FormName.Caption)res = SetWindowPos(lRet, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
 End Sub 
 Wenn du dies an den Anfang in dein Makro schreibst, dann ist die Form im Vordergurnd. Hoffe geholfen zu haben. Gruß Andreas R. [Diese Nachricht wurde von Andreas R. am 10. Jan. 2011 editiert.] [Diese Nachricht wurde von Andreas R. am 08. Feb. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas5 Mitglied
 Konstrukteur, SWX-Admin
 
   
 
      Beiträge: 420Registriert: 14.07.2003
 SWX2013 |    erstellt am: 13. Jan. 2011 12:28  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Andreas, Dein Code will mit der MsgBox nicht klappen, weil ja der Programmablauf bei der MsgBox anhält und auf eine Eingabe wartet. Also kommt es gar nicht zur Ausführung der nachfolgeneden Befehlszeilen und das Fenster bleibt im Hintergrund. Schade, so geht´s nicht... Vielen Dank und frohes Schaffen wünscht  Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Andreas R. Mitglied
 Konstrukteur,
 
 
      Beiträge: 2Registriert: 10.01.2011
 SWX Office Premium 2010 x64, SP4.0WIN7 Ultimate 64bit
 Intel(R)Core(TM)2 CPU 6600
 |    erstellt am: 08. Feb. 2011 13:48  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Thomas5, da hast du recht, dass dieser Code nicht bei MsgBoxen funktioniert. Hier ging es auch eher um Userformen.Aber für die MsgBox versuch einmal folgendes:
 MsgBox "Text", vbSystemModal, "Captiontext" Dies funktioniert bei uns soweit ganz gut.Weitere Infos findest du aber auch "hier".
 Gruß Andreas PS: Ich habe meinen vorhergehenden Beitrag editiert, damit es nicht mehr verwirrt    [Diese Nachricht wurde von Andreas R. am 08. Feb. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas5 Mitglied
 Konstrukteur, SWX-Admin
 
   
 
      Beiträge: 420Registriert: 14.07.2003
 SWX2013 |    erstellt am: 09. Feb. 2011 16:37  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | uncleH Mitglied
 
 
  
 
      Beiträge: 15Registriert: 16.03.2006
 |    erstellt am: 04. Mrz. 2011 15:30  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | sleeping sun6 Mitglied
 Technische Zeichnerin
 
  
 
      Beiträge: 32Registriert: 07.03.2007
 SolidWorks 2009 x64 SP 4.0Windows XP 64
 Office 2003
 |    erstellt am: 09. Mrz. 2011 10:33  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
 Zitat:Original erstellt von Andreas R.:
 Hallo Thomas5,
 Im folgenden findest du eine abgeänderte Variante von Winni-two Code, da bei uns mehrere Leute Makros progen brauchten wir eine Version, die man direkt aus dem Makro heraus starten konnte. Code:Option Explicit
 Declare Function SetWindowPos Lib "user32" _(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
 ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 Dim res As LongDim lRet As Long
 Global Const SWP_NOMOVE As Long = 2Global Const SWP_NOSIZE As Long = 1
 Global Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
 Global Const HWND_TOPMOST As Long = -1
 Global Const HWND_NOTOPMOST As Long = -2
 Dim swApp As Object Dim Part As ObjectDim boolstatus As Boolean
 Dim longstatus As Long, longwarnings As Long
 Sub main() [b]FormName.Show (False) lRet = FindWindow(vbNullString, FormName.Caption)res = SetWindowPos(lRet, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
 End Sub 
 Wenn du dies an den Anfang in dein Makro schreibst, dann ist die Form im Vordergurnd. Hoffe geholfen zu haben. Gruß Andreas R. [Diese Nachricht wurde von Andreas R. am 10. Jan. 2011 editiert.] [Diese Nachricht wurde von Andreas R. am 08. Feb. 2011 editiert.][/B] 
 Vielen Dank für diesen Code!Das hat bei mir nun auch endlich den nervenden Fehler behoben!
 GrüßeSusann
 ------------------Viele Grüße
 Susann
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 20. Mrz. 2011 15:21  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo auch, ich versuch mich jetzt auch mit der Integration von Andreas seinem Schnipsel in unser Schriftfeldmakro. Leider habe ich dabei Probleme, von wegen an den Anfang des Makros schreiben.       Wenn ich es in schriftfeld - frmSfInfo (Code) kopiere, bekomme ich beiliegende Fehlermeldung.Wenn ich es in schriftfeld - schriftfeld1 (Code) kopiere, geht das Makro nicht mehr auf, es kommt aber auch keine Fehlermeldung.
 Was mache ich falsch?Für Tips schon mal Danke Schön.
 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 | 
                        | DanielH Mitglied
 Dipl.-Ing. (BA) / Medizintechnik
 
   
 
      Beiträge: 103Registriert: 16.11.2009
 Creo Elements/Pro 5.0 (M090)Win 7 64bit
 FX 2000
 Xeon E31225 3.10GHz
 8GB RAM
 |    erstellt am: 21. Mrz. 2011 08:48  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 21. Mrz. 2011 19:34  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Daniel, jo, das war es, da hätte ich auch selber drauf kommen können.      Besten Dank auch an alle beteiligten.Jetzt funktioniert es in SW2010 und SW2011 einwandfrei.
 Sag mal, würdest du dein Schriftfeldmacro kpl. hier reinstellen (oder per PM)? Ich bin nur Neugierig, was andere noch so alles einbauen.
 Evtl. bekomme ich noch einige Anregungen.
 An meinem habe ich ja auch noch etwas rumgepfriemeld.
  Bis denn,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 | 
                        | DanielH Mitglied
 Dipl.-Ing. (BA) / Medizintechnik
 
   
 
      Beiträge: 103Registriert: 16.11.2009
 Creo Elements/Pro 5.0 (M090)Win 7 64bit
 FX 2000
 Xeon E31225 3.10GHz
 8GB RAM
 |    erstellt am: 22. Mrz. 2011 10:08  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Andi, ist kein Geheimnis. Ich habe ja nur das eingebaut, was andere bereits erfunden haben (An dieser Stelle an Stefan herzlichen Dank für sein Makro und alle Anregungen durch seine Beispiele und auch an alle anderen, die in der Makrotauschbörse ihre Makros zur Verfügung stellen   ). Viele Grüße,Daniel
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 03. Apr. 2011 10:47  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo auch, nachdem ich Andreas sein Schnipsel erfolgreich in mein Schriftfeldmakro integriert habe, klebt das Makro beim Öffnen links oben am Monitorrand. Obwohl das Formular bei StartUpPosition  auf 1-Fenstermitte gestellt ist. Wie bekomme ich mein Fenster wieder in die Mitte? 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 | 
                        | Torsten Niemeier Ehrenmitglied V.I.P. h.c.
 Maschinenbau Ingenieur
 
 
  
 
      Beiträge: 3743Registriert: 21.06.2001
 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform** CSWP 04/2011 **
 ** CSWE 08/2011 **
 |    erstellt am: 03. Apr. 2011 12:44  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Andi, ich denke mal, die Zeile: res = SetWindowPos(lRet, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) setzt das Fenster auf 0,0. Trag da doch mal andere Werte ein. Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Torsten Niemeier Ehrenmitglied V.I.P. h.c.
 Maschinenbau Ingenieur
 
 
  
 
      Beiträge: 3743Registriert: 21.06.2001
 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform** CSWP 04/2011 **
 ** CSWE 08/2011 **
 |    erstellt am: 03. Apr. 2011 12:49  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | Torsten Niemeier Ehrenmitglied V.I.P. h.c.
 Maschinenbau Ingenieur
 
 
  
 
      Beiträge: 3743Registriert: 21.06.2001
 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform** CSWP 04/2011 **
 ** CSWE 08/2011 **
 |    erstellt am: 03. Apr. 2011 12:59  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Und nochmal: Ich hatte inzwischen eine Quelle gesehen, in der die Deklarationszeilen für die Flag-Werte folgendermaßen geschrieben waren:      Public Const SWP_NOSIZE = &H1 Public Const SWP_NOMOVE = &H2
 Hilft das?
 Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 03. Apr. 2011 13:23  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Torsten, das mit den 0-len hatte ich vorher schon Probiert, ergibt keine Veränderung. Wenn ich deinen letzten Vorschlag wie folgt übertrage, funktioniert das Makro noch, aber es gibt auch keine Positionsänderung. Global Const SWP_NOMOVE As Long = &H2Global Const SWP_NOSIZE As Long = &H1
 Muss für das H1 bzw. H2 irgend eine Deklaration etc. stattfinden? Evtl. fällt dir noch was 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 | 
                        | Torsten Niemeier Ehrenmitglied V.I.P. h.c.
 Maschinenbau Ingenieur
 
 
  
 
      Beiträge: 3743Registriert: 21.06.2001
 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform** CSWP 04/2011 **
 ** CSWE 08/2011 **
 |    erstellt am: 03. Apr. 2011 13:32  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 03. Apr. 2011 13:44  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Torsten, das Makro funktioniert weiterhin, bleibt aber immer noch links oben. Egal ob ich die beiden oder alle vier 0-len verändere. Das sträubt sich aber... Gruß, Andi     ------------------Hast du kein Problem?
 Such dir eins. ( Und löse es )
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Torsten Niemeier Ehrenmitglied V.I.P. h.c.
 Maschinenbau Ingenieur
 
 
  
 
      Beiträge: 3743Registriert: 21.06.2001
 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform** CSWP 04/2011 **
 ** CSWE 08/2011 **
 |    erstellt am: 03. Apr. 2011 13:53  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                        | Andi Beck Ehrenmitglied V.I.P. h.c.
 Konstrukteur
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 03. Apr. 2011 14:10  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Hallo Torsten, mit den vorherigen Änderungen ging es noch nicht, aber als ich alles wieder rückgängig gemacht hatte, war das Fenster jetzt schön mittig. Dabei möchte ich schwören, das ich das auch schon versucht hatte.........    Nun, so funktionierts, Besten Dank auch. Liebe 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
 
 
  
 
      Beiträge: 2580Registriert: 02.10.2006
 Firma: SW 2024-3.1 + PDM Prof.Windows 10 Pro 64bit, i9-11900
 32 GbRAM, Quadro P2200
 Home:
 SW 2023-5.0
 Passungstabelle von Heinz
 Windows 11 Pro 64bit,
 i7-12700K, 32 GbRAM,
 GeForce GTX 1050Ti
 Samsung C34H892, 3440x1440 Pixel
 |    erstellt am: 03. Apr. 2011 14:33  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
  Nochmal ich, und weil es so schön ist, funktioniert auch 0 - Manuell . Man muss nur entsprechende Werte bei Left und Top eingeben, dann kann beliebig positioniert werden. Schöner Sonntag heute......   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 | 
                        | Piet Mitglied
 Konstruktionsleiter & Konstrukteur
 
    
 
      Beiträge: 661Registriert: 20.11.2001
 SWx 2021 |    erstellt am: 23. Apr. 2012 12:36  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
 Zitat:Original erstellt von Torsten Niemeier:
 
 setz die startupposition mal auf 2.
 Gruß, Torsten 
 Was ist die startupposition? Bei mir funktioniert das soweit ganz gut, bis auf die Fensterpositionierung. Ich würde die Position auch lieber auf "Fenstermitte" setzen als auf einen festen Wert, hier gibt es diverse Monitorkonfigurationen. Piet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Torsten Niemeier Ehrenmitglied V.I.P. h.c.
 Maschinenbau Ingenieur
 
 
  
 
      Beiträge: 3743Registriert: 21.06.2001
 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform** CSWP 04/2011 **
 ** CSWE 08/2011 **
 |    erstellt am: 23. Apr. 2012 18:27  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   
 Zitat:Original erstellt von Piet:
 
 Was ist die startupposition? 
 StartUpPosition ist eine Eigenschaft einer Userform.Üblicherweise eingestellt im Eigenschaftenfenster der Userform.
 Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Piet Mitglied
 Konstruktionsleiter & Konstrukteur
 
    
 
      Beiträge: 661Registriert: 20.11.2001
 SWx 2021 |    erstellt am: 24. Apr. 2012 10:12  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   | 
                       
 | Christian_W Ehrenmitglied V.I.P. h.c.
 Konstrukteur (Dipl-Ing)
 
       
 
      Beiträge: 3256Registriert: 04.04.2001
 CSWP 12/2015<P>SWX2021sp5 Win10/11(SWX2016, SWX2012)
 proAlpha6.2e00/calinkV9
 (Tactonworks)
 (Medusa7, NesCAD2010,
 solidEdge19)
 |    erstellt am: 25. Okt. 2013 16:27  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bernd Knab   |