Toon posts:

[vb6] NetMessageBufferSend en rare tekens

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik ben bezig met een klein netsend proggie te maken en wil hierbij gebruik maken van de NetMessageBufferSend API call:
Visual Basic:
1
Private Declare Function NetMessageBufferSend Lib "netapi32" (ByVal servername As String, ByVal msgname As String, ByVal fromname As String, ByVal msgbuf As String, ByRef msgbuflen As Long) As Long


Volgens de beschrijving moeten de strings in unicode zijn.
Ik heb 4 textboxen op m'n form (server, sendfrom, sendto en message)
de click event van de knop is:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Private Sub Command1_Click()
Dim sthg As Long
Dim server As String, sendfrom As String, sendto As String, message As String
server = StrConv(Text1.Text, vbUnicode)
sendfrom = StrConv(Text2.Text, vbUnicode)
sendto = StrConv(Text3.Text, vbUnicode)
message = StrConv(Text4.Text, vbUnicode) & vbNull

sthg = NetMessageBufferSend(server, sendto, sendfrom, message, Len(message))
End Sub


Dit stuurt de boodschap wel door, maar er doet zich een raar probleem voor.
De pcnaam waarvan ik verstuur is APPL05 hier. als server, sendfrom en sendto allemaal APPL05 zijn (boodschap van mezelf naar mezelf sturen dus), dan krijgt de message een heleboel rare tekens toegevoegd zoals bvb:
Text4??<vierkantje>???<vierkantje>...
of
Text4<vierkantje>istMT.DLL???
of
Text41A<vierkantje><vierkantje>APPL09isual Basic [run]??????????????????? ..

telkens iets anders

Wat heel eigenaardig is, is dat als ik de sendfrom value verander naar een andere pcnaam op het netwerk of iets fictief, dan stuurt ie gewoon "Text4" (= de waarde van de txtmessage )

Heeft iemand enig idee waarom ie die rare tekens toevoegt als de waarde in sendfrom dezelfde is als in sendto ?

alvast bedankt

Verwijderd

Topicstarter
Die url had ik al.. en in principe doe ik hetzelfde. Ik snap alleen niet waarom er bij mij die rare tekens bijkomen en met zijn code niet.
Heb er nu bij mij es die TrimNull() functie bijgestoken, maar dat was blijkbaar niet de oplossing voor die rare tekens...

Verwijderd

Verwijderd schreef op 27 May 2003 @ 13:58:
Hoi,

Ik ben bezig met een klein netsend proggie te maken en wil hierbij gebruik maken van de NetMessageBufferSend API call:
Visual Basic:
1
Private Declare Function NetMessageBufferSend Lib "netapi32" (ByVal servername As String, ByVal msgname As String, ByVal fromname As String, ByVal msgbuf As String, ByRef msgbuflen As Long) As Long


Volgens de beschrijving moeten de strings in unicode zijn.
Ik heb 4 textboxen op m'n form (server, sendfrom, sendto en message)
de click event van de knop is:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Private Sub Command1_Click()
Dim sthg As Long
Dim server As String, sendfrom As String, sendto As String, message As String
server = StrConv(Text1.Text, vbUnicode)
sendfrom = StrConv(Text2.Text, vbUnicode)
sendto = StrConv(Text3.Text, vbUnicode)
message = StrConv(Text4.Text, vbUnicode) & vbNull

sthg = NetMessageBufferSend(server, sendto, sendfrom, message, Len(message))
End Sub


Dit stuurt de boodschap wel door, maar er doet zich een raar probleem voor.
De pcnaam waarvan ik verstuur is APPL05 hier. als server, sendfrom en sendto allemaal APPL05 zijn (boodschap van mezelf naar mezelf sturen dus), dan krijgt de message een heleboel rare tekens toegevoegd zoals bvb:
Text4??<vierkantje>???<vierkantje>...
of
Text4<vierkantje>istMT.DLL???
of
Text41A<vierkantje><vierkantje>APPL09isual Basic [run]??????????????????? ..

telkens iets anders

Wat heel eigenaardig is, is dat als ik de sendfrom value verander naar een andere pcnaam op het netwerk of iets fictief, dan stuurt ie gewoon "Text4" (= de waarde van de txtmessage )

Heeft iemand enig idee waarom ie die rare tekens toevoegt als de waarde in sendfrom dezelfde is als in sendto ?
Omdat de lengte niet klopt.

In het voorbeeld is de functie gedeclareerd als byref en wordt er een referentie naar een kopie (als byval) doorgegeven :/
Tsja, het blijft VB.