Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

weiß einer von euch, wie man die Speicheradresse einer Datei herrausbekommt von der man in VB den Pfad hat.

Z.b. mit pointer oder so, ich habs bis jetzt leider noch nicht hinbekommen.

Brauche die Adresse für eine Sendmessage.

Geschrieben
weiß einer von euch, wie man die Speicheradresse einer Datei herrausbekommt von der man in VB den Pfad hat.
Dateien liegen üblicherweise in Dateisystemen, und diese wiederum in aller Regel nicht im Hauptspeicher.

Brauche die Adresse für eine Sendmessage.
Windowsnachrichten kannst du nur an Threads oder Fenster schicken, nicht an Dateien oder Speicheradressen.

Beschreib doch mal etwas genauer, was du vorhast.

Geschrieben

        

        Dim msg As Long

        msg = RegisterWindowMessage("EciImportData")

        Dim hwindow As Long

        hwindow = FindWindow("EciMainFrame", vbNullString)

        Static Pfad4 As String


        Pfad4 = Pfad3 & "eluxml"

        SendMessage(hwindow, msg, Chr(34) & Pfad4 & Chr(34), 0)

So Sieht mein Code aus

Sprich ich hab eine Datei, die ich an ein Programm schicken möchte.

Mir wurde gesagt dass ich da wo Pfad4 steht die speicheradresse benötige...

Geschrieben
Sprich ich hab eine Datei, die ich an ein Programm schicken möchte.
Nein, du hast einen String, den du als Parameter einer Nachricht an ein Fenster schicken möchtest. Dass dieser String einen Dateipfad enthält, ist hier irrelevant.

Wie hast du SendMessage deklariert?

Bekommst du eine Fehlermeldung?

Geschrieben (bearbeitet)

 Private Declare Function RegisterWindowMessage Lib "user32" Alias _

  "RegisterWindowMessageA" (ByVal lpString As String) As Long


    Private Declare Function FindWindow Lib "user32" _

            Alias "FindWindowA" (ByVal lpClassName _

            As String, ByVal lpWindowName As String) _

            As Long


    Private Declare Function SendMessage Lib "user32" _

   Alias "SendMessageA" _

   (ByVal hwnd As Long, _

   ByVal wMsg As Long, _

   ByVal wParam As Long, _

   ByVal lParam As Long) As Long

Das sind meine Deklartationen

und fehlermeldung ist die:

Ungültige Konvertierung von der Zeichenfolge "C:\meinPfad in Typ Long.

Edit: Hab nun aus wParam string gemacht also ByVal wParam as String:

Aber geht nicht das Programm springt nicht drauf an.

____

Wenn ich die sendmessage einer Variablen übergebe kommt enthält diese

__> 8630415260060221440

Bearbeitet von ChristinaB
Geschrieben

Deklarier wParam als String. Bei SendMessage werden wParam und lParam für sehr viele unterschiedliche Typen benutzt, je nach Message.

Es könnte zusätzlich sein, dass du SendMessageW statt SendMessageA verwenden musst.

Geschrieben
Wenn ich die sendmessage einer Variablen übergebe
Wenn du was tust? Man kann Variablen nichts "übergeben".

Was sagt denn die Dokumentation dieser Nachricht? Bist du sicher, dass du diesen Namen richtig geschrieben hast? Welchen Wert hat msg?

Geschrieben
msg hat -> 129212459012637574
Da läuft ja schon mal etwas schief. Der Rückgabetyp von von RegisterWindowMessage ist 32 Bit, nicht 64. Und der Wert ist entweder 0 oder zwischen 49152 und 65535.

Wenn man die oberen 32 Bit von diesem Monsterwert ausblendet, kommt man auf 50054, das klingt schonmal nicht komplett falsch.

Hast du jetzt eine Doku zu dieser Nachricht, die die Parametertypen beschreibt?

y = 373662154752

Auch der Rückgabewert von SendMessage ist nur 32 Bit groß, nicht 64.

Was der Rückgabewert von SendMessage bedeutet, hängt von der verschickten Nachricht ab, auch hier ist die Doku notwendig.

Geschrieben

Achso=) Nein der wurde mir von einem Programmierer gesagt der das schonmal Programmiert hat aber nicht in VB...sprich er konnte mir nur den anhaltspunkt bis dahin wo ichs jetzt programmiert habe geben...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...