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

Fortgeschrittene Programmierung
Re: einkommende 'net send' nachrichten auslesen 
Autor: Matthias
Datum: 04.09.02 23:03

Hi TheNukeduke, ! Achtung etwas mehr Text

also das sollte zu realisieren sein. Ich schreibe derzeit an einer Art WinPOPUP Ersatz (Das Prg. wird einige Funktion mehr haben als das MS WinPOP. Realisiert habe ich bis jetzt Bilder senden/HTML Text/Unbegrenzt viele Zeichen/MsgReply/Mehrfachversand und einiges mehr...
Also den Code, welchen ich hier poste ist entwickelt für Win9x. Nun weiss ich nicht wie es unter den "großen" OS-Versionen aussieht. Einfach mal testen und mir vielleicht mal bescheid geben wie es aussieht. (Ich werde das morgen mal unter NT 4.0 austesten). Das Problem ist, das der Code auf die Standard Windowspipe RECHNERNAMEMAILSLOTMESSNGR aufbaut um halt WinPOPUPs zu senden. In Win 9x beende ich einfach WinPOPUP und mein Prg. läuft. (Kann der NET-SEND Service unter NT/2000/XP deaktivieren werden ?) Also nun zum Code:
' Dieser Codeteil kommt in ein Module
Option Explicit
 
Public Type SECURITY_ATTRIBUTES
        nLength As Long
        lpSecurityDescriptor As Long
        bInheritHandle As Long
End Type
 
Public Const OPEN_EXISTING = 3
Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const GENERIC_EXECUTE = &H20000000
Public Const GENERIC_ALL = &H10000000
Public Const INVALID_HANDLE_VALUE = -1
Public Const FILE_SHARE_READ = &H1
Public Const FILE_SHARE_WRITE = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
 
Public Declare Function WriteFileSimple Lib "kernel32" _
Alias "WriteFile" (ByVal hFile As Long, ByVal lpBuffer _
As String, ByVal nNumberOfBytesToWrite As Long, _
lpNumberOfBytesWritten As Long, ByVal Zero As Long) As Long
 
Public Declare Function ReadFileSimple Lib "kernel32" _
Alias "ReadFile" (ByVal hFile As Long, ByVal lpBuffer As _
String, ByVal nNumberOfBytesToRead As Long, _
lpNumberOfBytesRead As Long, ByVal Zero As Long) As Long
 
Public Declare Function CreateMailslot Lib "kernel32" _
Alias "CreateMailslotA" (ByVal lpName As String, _
ByVal nMaxMessageSize As Long, ByVal lReadTimeout As Long, _
lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
 
Public Declare Function GetMailslotInfo Lib "kernel32" _
(ByVal hMailslot As Long, lpMaxMessageSize As Long, _
lpNextSize As Long, lpMessageCount As Long, lpReadTimeout _
As Long) As Long
 
Public Declare Function CreateFile Lib "kernel32" Alias _
"CreateFileA" (ByVal lpFileName As String, ByVal _
dwDesiredAccess As Long, ByVal dwShareMode As Long, _
lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal _
dwCreationDisposition As Long, ByVal dwFlagsAndAttributes _
As Long, ByVal hTemplateFile As Long) As Long
 
Public Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
 
Public Declare Function CreateFileNoSecurity Lib "kernel32" _
Alias "CreateFileA" (ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, _
ByVal Zero As Long, ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As _
Long) As Long
Nun die Form...
' Dieser Code kommt in Form1
' Bitte einen CommandButton und einen Timer auf dem
' Form anlegen !
Option Explicit
Dim MailSlot As String
Dim mailSlotHandle As Long
Dim tSA As SECURITY_ATTRIBUTES
 
Public Function MailslotCreate(MailSlotName As String, _
MessageSize As Long, MessageTime As Long) As Long
 
 MailSlot = MailSlotName
 
 mailSlotHandle = CreateMailslot(MailSlot, MessageSize, _
 MessageTime, tSA)
 
  If mailSlotHandle = -1 Then
   MailslotCreate = -1
   Exit Function
  Else
   MailslotCreate = mailSlotHandle
   Exit Function
  End If
 
End Function
 
Public Function MailSlotSend(SendTo As String, SendFrom _
As String, Message As String, Optional MailSlotPath As _
String) As Long
Dim Res As Long
Dim BytesWritten As Long
Dim MailSlotName As String
 
  If MailSlotPath = "" Then
  ' Kein MailSlot angegeben also wird der WinPopUp _
    Path gewaehlt
   MailSlotName = "\" & SendTo & "mailslotmessngr"
   Else
   MailSlotName = MailSlotPath
  End If
 
  Message = SendFrom & Chr(0) & SendTo & Chr(0) & _
  Message & Chr(0)
 
  MailSlot = CreateFileNoSecurity(MailSlotName, _
  GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, _
  FILE_ATTRIBUTE_NORMAL, 0)
 
  Res = WriteFileSimple(MailSlot, Message, _
  Len(Message), BytesWritten, 0)
 
  Res = CloseHandle(MailSlot)
  MailSlotSend = BytesWritten
End Function
 
Public Function MailSlotRead(msHandle As Long, _
BufferSize As Long) As String
Dim MsgText As String
Dim MsgCount As Long
Dim RC As Long
Dim BytesRead As Long
 
 MsgText = String(BufferSize, 0)
  RC = GetMailslotInfo(msHandle, 0, BufferSize, MsgCount, 0)
 
   If MsgCount > 0 Then
    RC = ReadFileSimple(msHandle, MsgText, _
    Len(MsgText) + 1, BytesRead, 0)
    MailSlotRead = MsgText
    DoEvents
   End If
 
End Function
 
Public Function MailslotClose(Handle As Long)
 CloseHandle (Handle)
End Function
 
Private Sub Command1_Click()
 MailSlotSend "MURPH", "HIER KANN IRGENDWAS STEHEN", _
 "Deine Nachricht"
 ' MURPH = Der Rechnername, an den die Nachricht geht
End Sub
 
Private Sub Form_Load()
 
 tSA.nLength = Len(tSA)
 tSA.lpSecurityDescriptor = 0
 tSA.bInheritHandle = False
 
 Command1.Caption = "Nachricht senden"
 Timer1.Interval = 1
 
 mailSlotHandle = MailslotCreate(".mailslotmessngr", _
 1000, 0)
 Debug.Print mailSlotHandle
  If mailSlotHandle <= 0 Then
   MsgBox ("Fehler. WinPOPUP oder Mailservice geladen ???")
   Unload Me
  End If
End Sub
 
Private Sub Form_QueryUnload(Cancel As Integer, _
UnloadMode As Integer)
 MailslotClose (mailSlotHandle)
End Sub
 
 
Private Sub Timer1_Timer()
Dim mailIN As String
Dim Msg() As String
Dim Posi As Long, Posi2 As Long, Pos2 As Long
ReDim Msg(2)
 
  mailIN = MailSlotRead(mailSlotHandle, 400)
 
  If mailIN <> "" Then
   mailIN = MailSlotRead(mailSlotHandle, 400)
   mailIN = Mid(mailIN, Pos2 + 5, Len(mailIN))
   Posi = InStr(1, mailIN, Chr(0))
   Msg(0) = Left$(mailIN, Posi - 1)
   Posi2 = InStr(Posi + 1, mailIN, Chr(0))
   Msg(1) = Mid(mailIN, Posi + 1, Posi2 - Posi - 1)
   Msg(2) = Mid(mailIN, Posi2 + 1, Len(mailIN))
   mailIN = ""
 
   MsgBox "Nachricht von " & Msg(0) & vbCrLf & _
   "Nachricht an " & Msg(1) & vbCrLf & _
   Msg(2), vbInformation, "Neue Nachricht :->"
 
  End If
 
End Sub
Vielleicht konnte ich Dir ja ein wenig helfen ? Über Feedback würde ich mich freuen.
Gruß

Matthias
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
einkommende 'net send' nachrichten auslesen251TheNukeduke03.09.02 18:44
Re: einkommende 'net send' nachrichten auslesen113newbie04.09.02 11:43
Re: einkommende 'net send' nachrichten auslesen106TheNukeduke04.09.02 17:16
Re: einkommende 'net send' nachrichten auslesen159Matthias04.09.02 23:03
Re: CODE GEHT NICHT WEGEN HTML77Matthias04.09.02 23:15
Re: Hier die HTML-freundliche Version317Matthias04.09.02 23:26
Re: Hier die HTML-freundliche Version76TheNukeduke05.09.02 15:23
Re: Sehr interessanter Code !73Blacky05.09.02 20:28
Re: Sehr interessanter Code !64Matthias06.09.02 08:48
Re: ja, aber....68TheNukeduke06.09.02 13:53
Re: ja, aber.... stimmt steht 2x drinne70Matthias06.09.02 14:40
Re: Nochmal zum Empfang64Matthias06.09.02 14:49
Re: Nochmal zum Empfang69Blacky06.09.02 16:16
Re: Nochmal zum Empfang64Matthias06.09.02 19:34
Re: Ich rast gleich aus 66Blacky07.09.02 20:38
Mögliche Ursache der doppelten Nachricht53Blacky07.09.02 21:30
Re: Mögliche Ursache der doppelten Nachricht50TheNukeduke07.09.02 21:50
JAAAA, ich hatte Recht!55TheNukeduke07.09.02 22:01
Re: Na, dann lag ich ja gar nicht so falsch ;)65Blacky08.09.02 00:41
Re: hab mal bei vb api helpline gefragt 53TheNukeduke08.09.02 11:03
Re: hab mal bei vb api helpline gefragt 57Matthias08.09.02 12:43
Re:Hab da noch was entdekt....60Blacky08.09.02 15:02
Re:Hab da noch was entdekt....717unbekannt08.09.02 15:11
@Lordchen61Blacky08.09.02 17:03
Re: @Lordchen653unbekannt08.09.02 17:09
Re: und ab gehts ! Nachrichten empfangen trotz Nachrichtendi...58Blacky08.09.02 17:21
Re: und ab gehts ! Nachrichten empfangen trotz Nachrichtendi...55TheNukeduke08.09.02 20:10
Re: und ab gehts ! Nachrichten empfangen trotz Nachrichtendi...56Blacky08.09.02 21:42
Re: so sollte es klappen...98Blacky08.09.02 22:12
Re: so sollte es klappen...54Blacky08.09.02 22:37
Re: stimmt...69TheNukeduke09.09.02 08:56
Re: stimmt...57Blacky09.09.02 13:32
Re: konnts auch noch nicht testen59TheNukeduke09.09.02 17:05
Re: konnts auch noch nicht testen55Blacky09.09.02 20:25
Re: konnts auch noch nicht testen53Blacky12.09.02 22:50
Re: konnts auch noch nicht testen725unbekannt12.09.02 23:09
Re: konnts auch noch nicht testen682ModeratorMoni12.09.02 23:29
Re: konnts auch noch nicht testen51Blacky13.09.02 12:33
Re: konnts auch noch nicht testen54TheNukeduke13.09.02 16:47
Re: Nehm ich halt net send60TheNukeduke06.09.02 19:34
Re: Ich rast gleich aus 64TheNukeduke06.09.02 20:27
Re: Ich rast gleich aus 61Blacky07.09.02 20:28
Re: Hier die HTML-freundliche Version55TheNukeduke05.09.02 16:11
Re: Hier die HTML-freundliche Version57TheNukeduke05.09.02 16:39
Re: konnts auch noch nicht testen52Blacky13.09.02 19:10
Re: konnts auch noch nicht testen54TheNukeduke14.09.02 19:32
Re: konnts auch noch nicht testen47Blacky14.09.02 23:49
Re: konnts auch noch nicht testen42TheNukeduke15.09.02 15:11
Re: konnts auch noch nicht testen43Blacky15.09.02 16:47
Re: konnts auch noch nicht testen46TheNukeduke15.09.02 20:32
Re: konnts auch noch nicht testen46Blacky16.09.02 13:06
Re: Hats sowas eigentlich schon gegeben ????40Blacky16.09.02 13:09
Re: konnts auch noch nicht testen45TheNukeduke16.09.02 21:56
Re: konnts auch noch nicht testen50Blacky17.09.02 18:23
Re: hab mal getestet51TheNukeduke18.09.02 18:50
Re: hab mal getestet69Blacky19.09.02 17:56
Re: hab mal getestet48TheNukeduke19.09.02 18:21
Re: hab mal getestet81Blacky19.09.02 21:03
Re: hab mal getestet43TheNukeduke21.09.02 11:35
Re: hab mal getestet58Blacky21.09.02 16:31
Re:Bist noch da ?56Blacky23.09.02 13:05
Re:Bist noch da ?46TheNukeduke23.09.02 16:53
Re:Bist noch da ?53Blacky23.09.02 18:52
Re:Bist noch da ?49TheNukeduke24.09.02 18:14
Nanu: Riecht nach Version 1.0 ... *schnupper* oT 732unbekannt24.09.02 18:51
Re: Nanu: Riecht nach Version 1.0 ... *schnupper* oT 47Blacky24.09.02 21:44
Also diesesmal ...740unbekannt24.09.02 21:50
Re: Nanu: Riecht nach Version 1.0 ... *schnupper* oT 43TheNukeduke25.09.02 18:17
Re: Nanu: Riecht nach Version 1.0 ... *schnupper* oT 46Blacky26.09.02 13:17
Nu Workshop ?61Blacky02.10.02 21:39
Sind wir auch gespannt oT746unbekannt02.10.02 22:03
Re: einkommende 'net send' nachrichten auslesen670Blacky06.10.02 11:36
Re: mal was Grunsätzliches ...724Blacky06.10.02 12:43
Re: mal was Grunsätzliches ...816ModeratorDieter06.10.02 12:45
Re: Sorry...52TheNukeduke06.10.02 15:00
Re: Sorry...722Blacky06.10.02 15:30
Re: einkommende 'net send' nachrichten auslesen636Blacky06.10.02 23:37
Re: einkommende 'net send' nachrichten auslesen727ModeratorDieter06.10.02 23:52
Re: einkommende 'net send' nachrichten auslesen682ModeratorMoni06.10.02 23:56
Re: einkommende 'net send' nachrichten auslesen715Blacky07.10.02 00:07
Re: einkommende 'net send' nachrichten auslesen704Blacky07.10.02 17:43
Re: einkommende 'net send' nachrichten auslesen783unbekannt07.10.02 17:45
Re: einkommende 'net send' nachrichten auslesen703Blacky07.10.02 18:15
Re: einkommende 'net send' nachrichten auslesen650ModeratorDieter07.10.02 19:19

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