vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Frage zu den Mailslots 
Autor: lakamabi
Datum: 22.02.08 15:56

Hi zusammen!

Habe mal den Workshop in VB.Net umgesetzt
http://www.vbarchiv.net/workshop/workshop35.php

jetzt hab ich nur leider das problem das die Nachrichten entweder nur einmal oder garnicht "vernpnftig übersetzt werden. D.h. es funktioniert alles einwandfrei bis ich mit
RC = ReadFileSimple(SlotHandle, TextPuffer, TextPuffer.Length + 1, BytesRead, 0)
den TextPuffer vollschreiben möchte. Da behält er nämlich dann einfach die vorher geschriebenen "0"-en drin und überschreibt sie nicht.

Ausserdem bekomm ich, wenn ich mehr als eine Nachricht sende, am Ende die Meldung bzw Exception dass ich in geschützen Speicher schreiben will.

Hab ich so umgangen, vielleicht auch nich so gut, aber einfach im Timer folgendes eingefügt :
If MsgCount > 0 Then
            ' Wenn ja, Funktion zum Lesen und anzeigen
            MsgText = MailSlotRead(BufferSize)
            txt_RecMsg.Text = MsgText
 
            'Postfach löschen
            CloseHandle(SlotHandle)
            'Und wieder neu erstellen
            cmd_RecMsg.PerformClick()
        End If
Also ich denke es liegt wahrscheinlich an der umsetzung der Aufrufe in der API, ich poste die hier mal, vielleicht hat mal jemand zeit das zu prüfen :

    Friend Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _
      ByVal lpFileName As String, _
            ByVal dwDesiredAccess As Int32, ByVal dwShareMode As Int32, _
            ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal _
            dwCreationDisposition As Int32, _
            ByVal dwFlagsAndAttributes As Int32, ByVal hTemplateFile As Int32) _
            As Int32
 
    Friend Declare Function CreateFileNoSecurity Lib "kernel32" Alias _
      "CreateFileA" ( _
            ByVal lpFileName As String, ByVal dwDesiredAccess As Int32, ByVal _
            dwShareMode As Int32, _
            ByVal Zero As Int32, ByVal dwCreationDisposition As Int32, ByVal _
            dwFlagsAndAttributes As Int32, _
            ByVal hTemplateFile As Int32) As Int32
 
    Friend Declare Function WriteFileSimple Lib "kernel32" Alias "WriteFile" ( _
      ByVal hFile As Int32, _
            ByRef lpBuffer As String, ByVal nNumberOfBytesToWrite As Int32, _
            ByRef lpNumberOfBytesWritten As Int32, ByVal Zero As Int32) As Int32
 
    ' Server API's
    Friend Declare Function ReadFileSimple Lib "kernel32" Alias "ReadFile" ( _
      ByVal hFile As Int32, _
            ByRef lpBuffer As String, ByVal nNumberOfBytesToRead As Int32, _
            ByRef lpNumberOfBytesRead As Int32, ByVal Zero As Int32) As Int32
 
    Friend Declare Function CreateMailslot Lib "kernel32" Alias _
      "CreateMailslotA" ( _
            ByVal lpName As String, ByVal nMaxMessageSize As Int32, ByVal _
            lReadTimeout As Int32, _
            ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES) As Int32
 
    Friend Declare Function GetMailslotInfo Lib "kernel32" (ByVal hMailslot As _
      Int32, _
            ByRef lpMaxMessageSize As Int32, ByRef lpNextSize As Int32, ByRef _
            lpMessageCount As Int32, _
            ByRef lpReadTimeout As Int32) As Int32
 
    Friend Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Int32) _
      As Int32
vielleicht findet ja auch der Autor von dem Workshop zeit sich das anzusehen.

Wenn mehr code gebraucht wird, bitte bescheid sagen.


Gruß

Sebastian
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Frage zu den Mailslots730lakamabi22.02.08 15:56
Re: Frage zu den Mailslots443lakamabi22.02.08 17:38
Re: Frage zu den Mailslots586lakamabi22.02.08 17:45

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel