Net Send Emulator
-
Hi I'm building a program that executes net send commands for lan use. An I was wondering howto format the message so it comes out multiline. If you have any ideas on howto do this please help btw I've already tried \n and \r\n Help is greatly appreciated
You should use either
Environment.NewLine
or use a a string literal (beings with "@" where new lines and tabs are part of the string until closed):using System;
using System.Diagnostics;public class MsgTest
{
public static void Main()
{
string example = @"This is a test
on a new line.";
ProcessStartInfo psi = new ProcessStartInfo("net.exe",
string.Concat("send ppheath ", example));
Process.Start(psi);
}
}You could also P/Invoke the
NetMessageBufferSend
function. You can read more about it in the Platform SDK (Network Management, or on MSDN). It isn't hard to invoke and is pretty easy to use. Read the messaging overview link for it, though.-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
You should use either
Environment.NewLine
or use a a string literal (beings with "@" where new lines and tabs are part of the string until closed):using System;
using System.Diagnostics;public class MsgTest
{
public static void Main()
{
string example = @"This is a test
on a new line.";
ProcessStartInfo psi = new ProcessStartInfo("net.exe",
string.Concat("send ppheath ", example));
Process.Start(psi);
}
}You could also P/Invoke the
NetMessageBufferSend
function. You can read more about it in the Platform SDK (Network Management, or on MSDN). It isn't hard to invoke and is pretty easy to use. Read the messaging overview link for it, though.-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
Ok maybe I should rephrase my question I am not using .NET to directly send the messages I am building a .bat file then executing it. SO what would the DOS cmd for doing multiline net send commands be. Help is greatly appreciated
Then why did you post the C# forum?! What are we supposed to think? Escaping characters in batch files isn't supported, nor are new lines.
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
Then why did you post the C# forum?! What are we supposed to think? Escaping characters in batch files isn't supported, nor are new lines.
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
You should use either
Environment.NewLine
or use a a string literal (beings with "@" where new lines and tabs are part of the string until closed):using System;
using System.Diagnostics;public class MsgTest
{
public static void Main()
{
string example = @"This is a test
on a new line.";
ProcessStartInfo psi = new ProcessStartInfo("net.exe",
string.Concat("send ppheath ", example));
Process.Start(psi);
}
}You could also P/Invoke the
NetMessageBufferSend
function. You can read more about it in the Platform SDK (Network Management, or on MSDN). It isn't hard to invoke and is pretty easy to use. Read the messaging overview link for it, though.-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
That works but only for one person... But whenever I send it to multiple users via the PIPE "|" symbol it doesn't compute the the rest of the commands because they are put on as arguments. But when I do the batch file it doesn't do the multiline messaging so I'm stumped. Please Help
-
That works but only for one person... But whenever I send it to multiple users via the PIPE "|" symbol it doesn't compute the the rest of the commands because they are put on as arguments. But when I do the batch file it doesn't do the multiline messaging so I'm stumped. Please Help
This is just a problem of parsing command line arguments in your program. If you're sending to multiple people, then loop through the list of people and execute the command for each one.
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
This is just a problem of parsing command line arguments in your program. If you're sending to multiple people, then loop through the list of people and execute the command for each one.
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
When I first built my program I did that. But it takes FOREVER. So then I thought maybe I could distribute each person into a thread.. but that would be too hectic. So I don't know what else to do? BTW Thx for putting up with me ;)
Just thread it. "net send" takes two or more parameters (besides switches) a single user or computername and the rest of the parameters are the message. There's no way around it. Just use a worker thread (see the
ThreadPool
class), passing the user/computer name as the state variable and save the message to a member field. The thread execution method gets the username and gets the value from the message field and sends the message with "net send".-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
Because I am creating the batch file using .NET and I wasn't sure if .NET does some wierd formatting.
What exactly is a .NET batch file?
-
Hi I'm building a program that executes net send commands for lan use. An I was wondering howto format the message so it comes out multiline. If you have any ideas on howto do this please help btw I've already tried \n and \r\n Help is greatly appreciated
I think that it is good try to use the following API : NET_API_STATUS NetMessageBufferSend( LPCWSTR servername, LPCWSTR msgname, LPCWSTR fromname, LPBYTE buf, DWORD buflen ); try to import it to you class and use it , and i think that now you can send escap characters like /n /r ..... Mhmoud Rawas ------------ Software Eng.