|
This cmdlet is implemented by using the Start method of the System.Diagnostics.Process class.
So, the code that PowerShell uses is similar.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Hi, I am new in Programming. I am writing a simple app using C# in which i want send data to server, data includes URL with two parameters. When i try to send data to server it just sends the URL but not parameters. Can you help me regarding this.
And i have one more problem that i want to stop send data to server when stop button pressed. What method i can use for it.
Thanks.
What I have tried:
var postData = ("id1="+"123456");
postData += ("&id2="+"0123456789");
var request = (HttpWebRequest)WebRequest.Create("http://abc.xyz.com");
// var postData = "keyid1=id1";
// postData += "&keyid2=id2";
var data = Encoding.ASCII.GetBytes(postData);
Console.WriteLine(data);
request.Method = "POST";
request.ContentType = "multipart/form-data";
Console.WriteLine(request.ContentType);
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
stream.Close();
}
var response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.OK)
{
Console.WriteLine("Status Code not OK");
}
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
if (string.IsNullOrWhiteSpace(responseString))
{
Console.WriteLine("Response string is invalid");
}
else
{
Console.WriteLine("Response: " + responseString);
}
response.Close();
-- modified 19-Apr-18 13:43pm.
|
|
|
|
|
What is the actual text of the POST request that gets sent, and what is the response received from the server?
|
|
|
|
|
Hi Richard,
Thank you very much. Actually the problem was related to Server, It may not be set up to accept a POST at that URL. presently it works fine with Get method. Could you help me how i can stop this request to send to server when stop button pressed.
|
|
|
|
|
A better idea is to have a Send button. That way the send operation does not get executed until the user calls it.
|
|
|
|
|
yeah, i have Activate button. When i press activate button then it sends data to the server but now i have one more STOP button, I want that when i would press STOP button then it should stop to send request to Server. Thank you in advance.
|
|
|
|
|
When you press the Activate button the request will be sent to the server in microseconds at most, so there is no way you could react fast enough to stop it. I don't understand what you think you can achieve with this button.
|
|
|
|
|
Okay, pretty simple question, but I'm struggling in figuring it out. I need a label (that's reading from a text file) to return only certain values from within that same text file. The code I have is below:
private void btnCalculate_Click(object sender, EventArgs e)
{
string name = txtName.Text;
string number = txtNumber.Text;
double hourlyRate = Convert.ToDouble(txtPay.Text);
double hoursWorked = Convert.ToDouble(txtHours.Text);
double grossPay = 0.0;
TextWriter txt = new StreamWriter("employee_information.txt");
if (hoursWorked <= 40)
grossPay = hourlyRate * hoursWorked;
else
grossPay = (hourlyRate * 40) + (hourlyRate * 1.5) * (hoursWorked - 40);
txt.Write("Employee Name: "+ txtName.Text + " " + txtNumber.Text + " " + txtPay.Text + " " + txtHours.Text);
txt.Close();
try
{
using (StreamReader sr = new StreamReader("employee_information.txt" ))
{
string line = sr.ReadToEnd();
lblInformation.Text = line;
}
}
catch (Exception ex)
{
lblInformation.Text = "The file could not be read:";
}
}
I require the lblInformation.Text to read the Name value from the text file, along with the total pay being formatted (in a dollar amount) but it is currently reading all the information from said text file.
Any help or feedback is appreciated,
Thank you
|
|
|
|
|
We can;t help you with that - you need to look at your file and work out exactly how it stores the info you need. The chances are that it's stored by line (judging from your code) but what part of the line is the name and what the salary depend on the data content of each line - if you are lucky, it will be separated, delimited, or structured in order to make it relatively simple. But without the data? We can't even begin to guess.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I see, to answer your question, the data is stored as: name, id, pay, then hours worked. That's the order I have it writing it to the file. Does that help in any way?
|
|
|
|
|
So your data is stored as
Employee Name: John smith Junior 1234 20000.00 36 That's a bad idea - it makes it very difficult to read back, particularly since you are passing user input direct to the output file. You don't check what the user entered and have no idea if the data you write is correct!
So there are two things to do:
1) Validate your inputs!
If the user should enter a number, check it is a valid number:
double pay;
if (!double.TryParse(txtPay.Text, out pay))
{
... report problem to user
return;
} And the same for all other non-text values.
Text values are another problem, and that leads to:
2) Structure your file! When you separate with spaces, it's very difficult to work out what is what: did the user type the name as
John
John Smith
John Smith Junior
Charles Philip Arthur George Mountbatten-Windsor When your separator is the same as a legitimate name character you leave yourself a lot of problems.
There are a number of ways to deal with that, in order of effectiveness and complexity:
2a) Move the variable length entry (the name) to the end of the line. That way, it doesn't matter how long it is!
2b) Use an "special character" as the field separator: comma is a good one, as is '|'
2c) Delimit text strings, and use a special character:
"John",
"John Smith",
"John Smith Junior",
"Charles Philip Arthur George Mountbatten-Windsor",
2d) Use a "proper" CSV data system - there are some good ones out there: A Fast CSV Reader[^] works well.
2e) Use a structured data file: XML or JSON are both excellent and widely supported.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Thanks for the reply! I've managed to figure it out though, added semicolons to the file after each item, then split it on the semicolon, does what I want it to, and I plan on putting in validations, just wanted to get this part working first.
|
|
|
|
|
You "joined" some constants and variables using " " as a delimter to get the text line that you wrote.
To "split" that same text line back into its "parts", you can use the String.Split() method which will create an array of your "constants and variables"; split on " ".
How to: Parse Strings Using String.Split (C# Guide) | Microsoft Docs
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
I got some really cool C# code from the article "Managing Printers Programatically using C# and WMI", by Raymund Macaalay.
I am struggling with the ManagementScope class. VS2017 cannot find it. Here is a code snippet from the article's code:
using System;
using System.Management;
class PrinterSettings
{
private static ManagementScope oManagementScope = null;
Intellisense seems completely ignorant of the ManagementScope class. MSDN.Microsoft.com states that it is in System.Management assembly.
I know I am not including something correctly and not deprecated, but kinda noobish on C#.
thanks!
|
|
|
|
|
It works for me - I just tried a new project in VS2017 (a .NET console since it's the simplest), added the reference to System.Management , and added your code:
namespace ConsoleApp1
{
class Program
{
private static ManagementScope oManagementScope = null;
static void Main(string[] args)
{
oManagementScope.
}
}
} At the ".", intellisense lists all the properties and methods I would expect.
What am I doing that is different to you?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You're adding a reference to the assembly.
"Just guessing"
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Probably, but ... is ManagementScope in .NET Core?
We don't know what exactly he is doing, so find one that works, and see how it differs is a start at least...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Typing in System.Management. Intellisense only displays "Instrumentation" as a member for me. It is the only member....
|
|
|
|
|
What kind of project are you working on?
I get the full list (including Instrumentation).
Have you tried turning it off and back on again?
(I know, I know - but it's worth a try - I hear a few bad things about VS2017 getting confused at times.)
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
THanks, I closed VS and opened it again and no better. I created a new Console app like you did. Under C#, I selected "Windows Classic Desktop", then "Console App(.NET Framework). added using System.Management;
still it does not recognize ManagementScope.
Could it be that I need to install/add an assembly or something to VS2017? Just guessing here....
|
|
|
|
|
Just adding the using does not reference the assembly. Right-click on the project, go to references, and add it.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
As Eddie says - and I mentioned in my original answer - you need a reference:
Quote: ...added the reference to System.Management...
Open the Project in the Solution Explorer pane, right click "References", select "Add Reference...", then tick the checkbox to the left of the "System.Management" assembly under the "Assemblies...Framework" selector on the left hand side. Click OK, and it'll appear in the references list for the project.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
You're welcome!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I have an Ink Canvas control on my application. Is it possible that whenever i draw a line, there's a value that appears between on that line by the use of C#?
Here is my code, XAML:
<DockPanel>
<StackPanel DockPanel.Dock="Bottom">
<Button x:Name="ClearButton" Content="Clear" Click="ClearButton_Click"/>
<Button x:Name="SaveButton" Content="Save" Click="SaveButton_Click"/>
</StackPanel>
<InkCanvas x:Name="DrawingPane" Cursor="Cross" Background="White"/>
</DockPanel>
And here is my C# code:
namespace WpfApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
}
private void ClearButton_Click(object sender, RoutedEventArgs e)
{
DrawingPane.Strokes.Clear();
}
}
}
I hope you can help me out for this. Thank you.
|
|
|
|