| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| | |
 | myCADtools , eine App
|
|
Autor
|
Thema: ASCII in Zwischenspeicher übergeben (clipboard) (848 / mal gelesen)
|
BranscheidGmbh Mitglied Dipl. Ing.

 Beiträge: 58 Registriert: 15.01.2016 Solidworks Professional 2023 SP 5
|
erstellt am: 05. Dez. 2023 12:06 <-- editieren / zitieren --> Unities abgeben:         
Guten Tag zusammen, ich möchte über ein Unterprogramm einen ASCII-Wert in den Zwischenspeicher übergeben. Habe dazu bei CODESTACK einen Code entdeckt, aber leider übergibt dieser keinen ASCII-Code, sondern so etwas : Vielleicht kann mir da jemand bitte weiter helfen ?! Sub SetTextToClipboard(text As String) Dim dataObject As Object Set dataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") dataObject.SetText text dataObject.PutInClipboard Set dataObject = Nothing End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Florian Halbinger Mitglied Dipl.-Ing. Maschinenbau

 Beiträge: 85 Registriert: 12.03.2003 SolidWorks Premium 2024
|
erstellt am: 05. Dez. 2023 13:55 <-- editieren / zitieren --> Unities abgeben:          Nur für BranscheidGmbh
Du musst den text erst in ascii umwandeln, bevor du ihn in die zwischenablage schiebst: ChatGPT schlägt folgendes vor: Sub SetAsciiToClipboard(text As String) Dim dataObject As Object Dim asciiString As String Dim i As Integer ' Konvertierung jedes Zeichens in den ASCII-Wert und Zusammenfügung zu einem String For i = 1 To Len(text) asciiString = asciiString & Asc(Mid(text, i, 1)) & " " Next i ' Erstellen eines neuen Clipboard-Objekts Set dataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") ' Setzen des ASCII-Strings in das Clipboard-Objekt dataObject.SetText asciiString dataObject.PutInClipboard ' Objekt freigeben Set dataObject = Nothing End Sub
------------------ Gruß, Florian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BranscheidGmbh Mitglied Dipl. Ing.

 Beiträge: 58 Registriert: 15.01.2016 Solidworks Professional 2023 SP 5
|
erstellt am: 05. Dez. 2023 14:31 <-- editieren / zitieren --> Unities abgeben:         
Hallo Florian, den von mir beschriebene Effekt gibt es NICHT, wenn in Windows alle Datei-Explorer geschlossen sind ! Bei dem Vorschlag von ChatGPT wird unabhängig, ob die Explorer auf sind oder nicht, folgendes ausgegeben : 77 52 51 50 55 52 95 55 55 55 95 65 32 110 110 Der dazugehörige Text sieht ABER so aus : M43274_777_A nn D.h. es wird in ASCII-Code umgewandelt, aber nicht in die Schriftzeichen ... ? [Diese Nachricht wurde von BranscheidGmbh am 05. Dez. 2023 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BranscheidGmbh Mitglied Dipl. Ing.

 Beiträge: 58 Registriert: 15.01.2016 Solidworks Professional 2023 SP 5
|
erstellt am: 05. Dez. 2023 16:13 <-- editieren / zitieren --> Unities abgeben:         
Ich habe mal weiter recherchiert, und dabei folgendes entdeckt. Und dies funktioniert auch bei im Hintergrund offenem Datei-Explorer  ' Example text Dim strText As String ' Set the text strText = "This is a test" ' Copy the text to the clipboard Call SetClipboardText(strText) ' Quelle : https://www.coragi.com/tips-and-tricks/excel/excel-vba-copy-and-paste-text-to-from-the-clipboard/ ' Copy Text To Clipboard Public Sub SetClipboardText(ByVal strText As String) ' Instance Dim objDataObject As Object ' Allocate instance of Microsoft Forms DataObject Set objDataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") ' Set the Properties With objDataObject ' Add text to the DataObject .SetText strText ' Copy all data in the DataObject to the Clipboard (internally calling OleSetClipboard) .PutInClipboard End With ' Free memory Set objDataObject = Nothing End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
imachaumit Mitglied Konstrukteur
 Beiträge: 5 Registriert: 12.11.2022
|
erstellt am: 25. Nov. 2024 11:13 <-- editieren / zitieren --> Unities abgeben:          Nur für BranscheidGmbh
Guten Tag Zusammen, wir machen hier etwas Ähnliches. Eine Zeichnungsdatei wird über ein Makro als PDF in einem bestimmten Verzeichnis abgelegt. Damit der Verzeichnispfad als Link im ERP-System abgelegt werden kann, wird der komplette Pfad zur PDF beim Speichern in die Zwischenablage kopiert. Das geht so lange gut, wie das Ziellaufwerk der Speicheraktion nicht im Explorer geöffnet ist. Ist das Ziellaufwerk beim Einfügen (und nur dann) ins ERP geöffnet, werden die zu Beginn erwähnten beiden kleinen Kästchen eingefügt. Schließt man das Explorerfenster nach dem Speichern und unmittelbar vor dem Einfügen, ist alles ganz normal. Dem Makro ist es dabei egal, ob die genannte kurze oder die lange Version zum Einsatz kommt. Aktuell umgestellt auf SW2024SP05, seitdem gibt es das Problem. Vorher war SW2021SP05 im Einsatz, da gab es dieses Phänomen nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |