Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBAHTML auf 64bit-Office
#21
Jetzt ist alles fertig.

Bei mir stürzt Excel zwar nicht ab. Aber ich bekomme ein "Typen unverträglich" bei "AddressOf BrowseCallback64" und bei "EnumSubKey HKEY_CURRENT_USER, "Software\VB and VBA Program Settings\VBAHTML\Profiles", Einstellungen2()"

Jetzt funktioniert es (Download aktualisiert). Aber nur teilweise, "InternetOpen" muss ich noch anpassen.
Antworten Top
#22
Zu früh gefreut. Es stürzt zwar nicht ab, aber es erscheint die Meldung "Ein Fehler ist aufgetreten". Mal schauen ob ich herausfinde woran das liegt. Nehme ich "On Error GoTo Fehler" raus stürzt Excel ab. Ob das noch was wird mit der Umstellung? Blush
Antworten Top
#23
Hallo Rene,

bei mir im API-Viewer sind für "internetOpen" u.ä. keine 64-Bit Declares drin.

Weil ich die noch nicht gefunden habe im Netz.
Ich habe solche immer mit "IF NOT WIN64" ausgegeben.

Wenn Du die (64Bit) irgendwo im Netz finden solltest, teile mir bitte den Fundort mit. Wäre ich Dir dankbar, denn dann nehme ich die auch entsprechend auf.

Ob es im Einzelfall reichen würde PtrSafe einzusetzen und die Handle auf LongPtr umzustellen, kann ich nicht beurteilen.
Da in Windows in der Regel die Handle mit "h" (hWnd, hDC usw.) beginnen, gehe ich davon aus, dass zumindest diese alle auf LongPtr umgestellt werden müssen.

Beispiel (ohne Handle und ohne Gewähr)
 
Code:
Private Declare PtrSafe Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( _
         ByVal lpszAgent As String, _
         ByVal dwAccessType As Long, _
         ByVal lpszProxyName As String, _
         ByVal lpszProxyBypass As String, _
         ByVal dwFlags As Long) As Long

viele Grüße
Karl-Heinz
Antworten Top
#24
Die 64-bit-Varianten sind schon drin. Ich muss da aber wohl noch mehr umschreiben.


Aber dennoch stürzt das Projekt nach dem Settings-Dialog ab, obwohl da nichts abbrechen dürfte. Ich vermute jetzt einfach mal, dass es auch am Treeview liegen könnte. Da dieses 32-bit ist könnte das zu Problemen führen. Wenn jemand die 64-bit-Version der mscomctl.ocx hat würde ich mich freuen werr man sie mir zuschickt, da diese in der Regel nur in der Pro-Plus ausgeliefert wird. Ich werde wohl doch eine reine 64-bit-Version aufbauen, das spart mir auch eine ganze Menge Codezeilen.
Antworten Top
#25
Hallöchen,

der eine Fehler liegt an einer falschen Deklaration in BrowseCallback64. Korrekt ist
Dim Length As Long

Der Absturz erfolgt in der Function ClipBoard_SetData(MyString As String) dort:

' Copy the string to this global memory.
lpGlobalMemory = lstrcpy(lpGlobalMemory, MyString)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#26
Hallo,

habe auch noch 'ne Frage:

Declare PtrSafe Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As LongPtr, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByVal phkResult As LongPtr) As Long

Gibt es einen speziellen Grund, das ByVal da einzusetzen? M.E. gehört das da nicht hin.

VG KH
Antworten Top
#27
... siehe dazu auch hier, das könnte die Lösung enthalten Smile:
excel-2013-64-bit-vba-clipboard-api-doesnt-work

HI Karl-Heinz,

beim Debuggen wurde an der Stelle byref bemängelt. Ich hab an der stelle nicht geprüft, ob byref für die Funktion relevant wäre.

Hi René,

also, mit Any wie im verlinkten Beitrag stürzt Excel nicht mehr ab. Es kommt anschließend aber wieder "Es ist ein Fehler ..." Ich hatte gestern mal zu jedem Fehler nch den Makronamen dazu geschrieben. Mach ich nachher noch, bekommst Du dann so in etwa einer Stunde.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#28
Ja, das funktioniert. Damit funktioniert der wichtigste Teil.

Aber der Einrücker funktioniert noch nicht. Da kommt "Typen unverträglich" bei "TextData = VarPtr(TextAsc(1))" in "Function StrCount".

Und der Upload funktioniert noch nicht, anscheinend ein Problem mit dem Pfad. Aber das ist nicht so wichtig, darum kann ich mich ja in Ruhe kümmern.

Und die Word-Konvertierung funktioniert nicht, da wird nur der HTML-Text in Word eingefügt. Das könnte aber auch an Word liegen, da es auf meinem Desktop-PC unter Word 32-bit funktioniert.

(24.01.2021, 17:26)schauan schrieb: also, mit Any wie im verlinkten Beitrag stürzt Excel nicht mehr ab. Es kommt anschließend aber wieder "Es ist ein Fehler ..."
Bei mir nicht. Hier funktioniert es. Ich habe mal den Download aktualisiert, setze ihn hier nochmal rein. https://www.rholtz-office.de/counters/ge...php?id=304

P.S.: Ich war so frei und habe Dich auf der Projektseite als Unterstützer eingetragen, falls Du nichts gagegen hast. Blush
Antworten Top
#29
den Fehler mit TextData = VarPtr(TextAsc(1)) beseitigt wieder die Differenzierung mit
#If Win64 And VBA7 Then
Dim TextPtr As LongPtr
Dim TextData As LongPtr
#Else
Dim TextPtr As Long
Dim TextData As Long
#End If
Dann kommt der nächste bei rtlmovememory ... In der Api kannst Du den 3. Parameter wieder auf Long zurücksetzten. Dann funktioniert das Einrücken.
Allerdings kommt dann der nächste Wermutstropfen. Ich kann die Menüs drücken wie ich will, es passiert nix mehr. Ich muss erst wieder Workbook_Open ausführen ...

... und ja, kannst mich gerne mit aufführen Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#30
(24.01.2021, 18:55)schauan schrieb: Allerdings kommt dann der nächste Wermutstropfen. Ich kann die Menüs drücken wie ich will, es passiert nix mehr. Ich muss erst wieder Workbook_Open ausführen
Das ist normal. Vielleicht weiss ja Nepumuk warum das so ist.


(24.01.2021, 18:55)schauan schrieb: ... und ja, kannst mich gerne mit aufführen Smile
Vielleicht bedanken sich ja ein paar Anwender mit einer Spende für das Forum.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste