Seite 1 von 2

NetSend Python Programm

Verfasst: Mittwoch 9. März 2005, 12:45
von Gast
kann mir jemand helfen?ich bräuchte ein python programm,mit dem ich über entsend nachrichten verschicken kann...msdos eingabeaufforderung ist gesperrt...
bitte hilfe![/python]

Verfasst: Mittwoch 9. März 2005, 13:57
von Leonidas
Ach, du hast auch den Spass herausgefunden?

Code: Alles auswählen

import os
os.system('net send RECHNER NACHRICHT')

Verfasst: Mittwoch 9. März 2005, 22:46
von Gast
thx schonmal...aber ich bin auf dem gebiet(programmiern) nicht so der crack....könnt mir jemand nen kompletten code schreiben?wär sehr dankbar!!!
momo

Verfasst: Mittwoch 9. März 2005, 23:26
von piddon
Du solltest dann doch am besten den Code selbst schreiben. Damit lernst du es auch.

Dieses Forum dient zum Erfahrungsaustausch und nicht zur "Auftragsprogrammierung".

Verfasst: Donnerstag 10. März 2005, 13:27
von Leonidas
Anonymous hat geschrieben:thx schonmal...aber ich bin auf dem gebiet(programmiern) nicht so der crack....könnt mir jemand nen kompletten code schreiben?
Das war theoretisch schon ein kompletter Code.
Aber gut, noch etwas ausführlicher:

Code: Alles auswählen

import os
rechner = raw_input("Rechnername: ")
nachricht = raw_input("Nachricht: ")
os.system('net send ' + rechner + ' ' + nachricht)

Verfasst: Donnerstag 10. März 2005, 18:03
von Gast
danke für die hilfe!!
momo

Verfasst: Dienstag 30. August 2005, 17:15
von Mawilo
Gibt es mit Python eine Möglichkeit, einen Zeilenwechsel in die Nachricht zu bekommen? Sonst kann man die Nachricht nicht übersichtlich formatiert darstellen. Ich habe hier gelesen, das geht mit Strg-T. Aber wie kann das in Python umgesetzt werden?

Es wäre bestimmt auch ganz nett, die hier beschriebene Funktion in Python nachzubauen. Leider kann ich kein Delphi.

Stephan

Verfasst: Dienstag 30. August 2005, 22:27
von BlackJack
Du könntest Die Nachricht zeilenweise in einer Schleife einlesen, die man mit einer Leerzeile oder eine speziellen Eingabe beenden muss.

Verfasst: Mittwoch 31. August 2005, 11:18
von Mawilo
Sobald in der Nachricht ein Zeilenende (\n) enthalten ist, wird an dieser Stelle die Nachricht beim Senden abgeschnitten und nur der erste Teil übermittelt. Gibt es eine Möglichkeit, das Zeilenende als hex (oder auch anders)anzugeben, damit es beim Empfänger richtig interpretiert wird?

Stephan

Verfasst: Mittwoch 31. August 2005, 11:53
von henning
Du kannst ja im Python-Programm ein bestimmtes Zeichen durch Zeilenumbrüche ersetzen:

Code: Alles auswählen

import os
rechner = raw_input("Rechnername: ")
nachricht = raw_input("Nachricht: ")
os.system('net send ' + rechner + ' ' + nachricht.replace("#", "\n"))
edit:
Wobei ich nicht weiß, wie os.system auf die Zeilenumbrüche reagiert...
vielleicht wäre es besser das so zu machen:

Code: Alles auswählen

os.system('net send %s "%s"' % (rechner, nachricht.replace("#", "\n")))

Verfasst: Mittwoch 31. August 2005, 13:26
von Mawilo
Ja, aber damit enthält die Nachricht ein \n und wird abgeschnitten

Verfasst: Mittwoch 31. August 2005, 14:07
von henning
Achso, sorry, hab grad erst das Problem verstanden...
Ich würde mal tippen, dass Strg+T unter (Win)Do(w)s eine bestimme ASCII-Sequenz erzeugt, du musst nur noch rausfinden, welche ,-)

Verfasst: Samstag 3. September 2005, 10:41
von Johi
wenn man win32net benutzt kann man sogar noch den absender angeben ;)

Code: Alles auswählen

import win32net
win32net.NetMessageBufferSend(domain, userName, fromName, message)
was genau man als argumente übergeben muss, weiß ich leider nicht. vielleicht weiß da ja ein anderer bescheid.

edit: zu der zeilenfrage: ist es u.U. möglich, dass man maximal nur eine zeile schicken kann?

Verfasst: Samstag 3. September 2005, 11:24
von Mawilo
Danke für den Tipp.
Es muss aber irgendwie möglich sein, einen Zeilenwechsel zu senden. Es gibt dafür Beispiele im Internet (nur eben nicht für Python). Ich habe auch schon probiert, die Nachricht in eine Datei zu speichern, binär auszulesen und zu senden. Leider auch ohne Erfolg.

Stephan

Verfasst: Samstag 3. September 2005, 23:39
von BlackJack
Das Problem wird die Shell, also unter Windows wohl cmd.exe oder command.com sein, die ein Zeilenende als Ende der Eingabe interpretiert. Versuchs mal ohne den Umweg über eine Shell z.B. mit `os.spawnvp()`. Da kannst Du die Argumente direkt an das Program übergeben.

Verfasst: Dienstag 6. September 2005, 20:31
von Mawilo
Hallo,

ich habe es jetzt mal mit win32net.NetMessageBufferSend getestet. Damit können wunderbar die Zeilenwechsel gesendet werden. Damit kann ich endlich eine formatierte Ausgabe erzeugen. :D
Als Absender kann ich aber nur meinen eigenen Namen angeben. Sonst müsste man irgendetwas mit dem Mailslot machen - aber davon habe ich keinen Schimmer. :?

Stephan

Verfasst: Dienstag 6. September 2005, 21:12
von Leonidas
Hmm, du könntest das Programm doch ins Showcase posten, klingt nach einer interessanten Anwendung von pywin32 :)

Verfasst: Mittwoch 7. September 2005, 21:04
von Mawilo
Mmh, das Prgramm hat viele Userbezogene Aspekte - ist also nur bedingt allgemeintauglich.
Ich kann aber die Funktionalität des Sendens erläutern.

Code: Alles auswählen

import win32net

alias = 'nobody'
empfanger = 'empfaenger' # Name bzw. Rechnername des Empfängers angeben

win32net.NetMessageNameAdd('', '%s'%alias)
win32net.NetMessageBufferSend('','%s'%empfanger,'%s'%alias,'test\ntest')
win32net.NetMessageNameDel('', '%s'%alias)
Wenn man eine Nachricht nur mit NetMessageBufferSend im Netzwerk verschickt, so muss man zwingend einen auf dem Server(Rechner) vorhandenen Usernamen als Absender angeben. Mit der Funktion NetMessageNameAdd wird dem Rechner ein neuer Name zugefügt. Dieser Name ist frei wählbar (in meinem Beispiel 'nobody') :wink: . Nach dem Versenden der Nachricht wird der Alias-Name wieder vom Rechner mit der Funktion NetMessageNameDel entfernt.

Ansonsten habe ich herum noch ein GUI und eine Empfängerverwaltung (als Listbox, aus der man mit Doppelklick die Namen auswählen kann)gebastelt. Die Nachrichten werden in einem ScrolledText eingegeben. Zeilenumbrüche aus dem Textfeld werden übermittelt und beim Empfänger auch angezeigt. Weiterhin habe ich z.B. eine Funktion eingebaut, dass verschiedene User zum Geburtstag eine Mitteilung bekommen. Der Fantasie sind dabei keine Grenzen gesetzt. :D

Stephan

Verfasst: Sonntag 27. November 2005, 12:00
von sonium
als ich noch zu Schule ging (damals als die Gummistiefel noch auch Holz waren) haben wir das so gelöst:

netsendbomb.bat

Code: Alles auswählen

:start
net send 192.168.0.xx All your base are belong to us!
goto start

Verfasst: Mittwoch 24. Mai 2006, 22:51
von oscar15
Dabei hab ich leider folgendes Problem:

ImportError: No module named win32net