|
And the definition is inside the curly brackets for the main method: which means it's scope is that method, and that method only - it isn't available outside at all.
You could try declaring it outside the method:
private string prnportpatha=@"\\auoa1ws1001\apps\Utilities\AddPrinter\prnport.vbs";
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
.... But it's a bad idea to "hard-code" strings anyway - the actual string you set it to should be in a configuration file that is loaded in your main method so you don't have to recompile your application when it changes (and it will, it will...)
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You have two problems here:
1. Your string is declared in method Main , so it is not visible in method button1_Click .
2. You have included the name prnportpatha inside quotes in your setting of proc.StartInfo.Arguments .
You need to move the string declaration outside of Main so it is visible to all methods of your Form class. Also you need to fix your parameters so it creates the correctly formatted argument string.
|
|
|
|
|
I know how to say:
public class MyClass<T>
{
}
But is it possible to specify that T must have a certain base class? What is the syntax for that?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
|
Thanks so much, Griff.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
No problem!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Message Closed
modified 28-May-17 16:30pm.
|
|
|
|
|
You return a different list to the one you are adding records into.
This space for rent
|
|
|
|
|
The question is simple, I have a code that's using the PostMessage function like so :
public enum WMessages : int
{
WM_MOUSEMOVE= 0x0200,
WM_LBUTTONDOWN = 0x201,
WM_LBUTTONUP = 0x202,
WM_RBUTTONDOWN = 0x0204,
WM_RBUTTONUP = 0x0205,
WM_KEYDOWN = 0x100,
WM_KEYUP = 0x101,
WH_KEYBOARD_LL = 13,
WH_MOUSE_LL = 14,
}
[DllImport("User32.Dll", EntryPoint = "PostMessageA")]
static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
private int MAKELPARAM(int p, int p_2)
{
return (p_2 * 0x10000 + p);
}
public void SendClick(WMessages type, Point pos, IntPtr hwnd)
{
switch (type)
{
case WMessages.WM_LBUTTONDOWN:
PostMessage(hwnd,
(int)0x201, 1,
MAKELPARAM(pos.X, pos.Y));
return;
case WMessages.WM_LBUTTONUP:
PostMessage(hwnd,
(int)WMessages.WM_LBUTTONUP, 0,
MAKELPARAM(pos.X, pos.Y));
return;
default:
return;
}
}
The only problem is that it clicks in a wrong place. For example, if i input the point 50,50 it'll click in 70,70 for example, offsetted to the window handle.
I wonder why it happens? Hope to get an answer.
Thanks in advance.
Example :
IntPtr atat = (IntPtr)0x00010870;
SendRClick(WMessages.WM_RBUTTONDOWN, new Point(50, 50), atat);
SendRClick(WMessages.WM_RBUTTONUP, new Point(50, 50), atat);
Edit :
I've found something interesting, apparently it happens only in 1 of my screens (I have 2), in the other one its not happening.
The screen that it happens in's resolution is 1920/1080, the screen that does it correctly's resolution is 1280/1024 (my main screen, does it correctly).
Edit 2 :
Also another thing that I've forgot to mention, the ratio between the resulted point to the inserted point is 1.5 in X and also in Y.
For example, if I've entered X=100,Y=100, it'll be resulted in 150 X and 150 Y offset from the window handle.
Edit 3 :
An alternative would be to devide the x and y by 1.5 and then it'll be multiplied again by default... but its not really an answer
|
|
|
|
|
1920 is 1.5 x 1280 ....
Appears you may not be handling individual screens / properties properly...
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
|
Hello,
I'm looking to make a web service to be available in the form
of ASP.NET MVC routing, meaning "base_url/controller/action",
optionally with some extra parameters for GET requests, plus
some other "actions" for POST requests.
I would like to first test them locally, on "localhost",
then if everything's OK to deploy them onto a remote
server and then test remotely, in the interest of
eventually publishing that web service to my customers.
Using "VS Express 2012 for Web", and also the equivalent
edition "VS Express 2012 for Desktop", I've been able
to make an "ASP.NET MVC 4 Web Application" with
a "Web API" template, and also a client console application
to send POST requests with, for QA purposes.
The "Web Service" project has been partially created in accordance
with a Youtube video of "REST API in ASP.NET MVC", by Michael Crosby,
available at "http://www.youtube.com/watch?v=agImzri6X64", where
he presents a pretty good way on how to do both consuming AND returning
of JSON, however at some points he refers the viewers to some external library
which unfortunately didn't compile.
The "Web Service" project itself seemed to have tested OK locally,
both for GET and POST requests, however when tested remotely
on a cloud-based server, the POST request returned a 404 error.
The "POST request maker" console application has been borrowed "as is"
from MSDN, at "msdn.microsoft.com/en-us/library/debx8sh9(v=vs.110).aspx",
and seemed to have tested OK on both "localhost" for GET and POST requests
but NOT so well remotely.
My questions are :
1) What would be the absolutely minimum set of steps required to make
a C# web service allowing both GET and POST of JSON strings ?
2) What files would I have to deploy on a remote server (IIS 10 I think)
preferably without the ".cs" source files, in order to make
that web service available online ?
- What I've previously attempted was a simple ZIP and UnZip of all
of the project files into "C:\inetpub\wwwroot", and it did return
the "View" for the template's homepage correctly.
3) Are there any extra configurations to be made on either
the web service project's files or the server's IIS panel ?
Any advice would be greatly appreciated
Thanks in advance
Me, a puzzled developer...
|
|
|
|
|
Hello everyone,
I am creating a G & M code interpreter for CNC machines using Microsoft visual C#. It requires displaying a 3D model of a CNC machine, which I have deigned in 3D Studio Max 2017. Now, I want to import it in my Winform using a 3D engine. The one that I have been trying on is TrueVision3D SDK. But I am unable to show any output on my Winform. I always get error as some file is missing or etc... SO can you guys suggest me some other 3D engine so that I could accomplish my task? Or how I could do the same with TrueVision3D?
|
|
|
|
|
|
You can embed a WPF control on your winform.
How to Easily Host WPF Control inside Windows Form Application[^]
The WPF control can then display the 3D model.
WPF 3D: Part 1 of n[^]
I do not know if these articles are the best around, they are just what I found first. I have successfully done this many years ago and I do not recall any major problems with this approach.
You might need to find a library or manually code something to get the mesh into WPF from your file format - personally I did it manually as I had a non-standard format to start with (A flight simulator 3D file) and already had code to load the mesh as I was doing manipulations on it.
|
|
|
|
|
Thank you for your help. Actually the issue I am facing with TrueVision 3D is that the I have to Make the "Embed Interop" option in C# as false. Otherwise the C# gives error. Maybe because of that, I am not getting any output.
|
|
|
|
|
Anyone can help me to retrieve image from multiple folders from SharePoint? I'm using C# windows form. Thanks. Here is my current code & not work to retrieve from SharePoint.
private void textBoxEmpno_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
if (textBoxEmpno.Text != "")
{
bool isDataFound = false;
try
{
string baseFolder = "URL SharePoint";
string[] employeeFolders = Directory.GetDirectories(baseFolder);
string imgName = textBoxEmpno.Text + ".jpg";
bool fileFound = false;
foreach (var folderName in employeeFolders)
{
var path = Path.Combine(folderName, imgName);
if (File.Exists(path))
{
pictureBox1.Visible = true;
pictureBox1.Image = Image.FromFile(path);
fileFound = true;
}
}
if (!fileFound)
{
pictureBox1.Visible = true;
pictureBox1.Image = Image.FromFile(@"C:\Users\hamizah\Desktop\images\photo\No-image-found.jpg");
}
pictureBox1.Visible = false;
}
finally
|
|
|
|
|
Are you sure that baseFolder string is correct?
|
|
|
|
|
There is nothing even remotely connected to "SharePoint" in your code.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Hi,
I am new on here and would like some help with dealing with what should be a simple task. I have a small form which is simply a data entry form for a single field (the second being a database autonumber). After running the SQL script I want either a messagebox to show that an entry already exists in the database or that the insert has been successful.
Below is my C# code.
Please can someone help as to how to achieve what I need! The above code obviously gives a successful message regardless of the real result.
Many thanks,
private void SaveButton_Click(object sender, EventArgs e)
{
if (contact_typeTextBox.Text == "" && contact_typeTextBox.Text == "")
{
errorProvider1.SetError(contact_typeTextBox, "Field must have valid text.");
}
else
{
errorProvider1.SetError(contact_typeTextBox, "");
da.InsertCommand = new SqlCommand("IF NOT EXISTS(SELECT * FROM Contact_Types WHERE contact_type=@contacttype) INSERT INTO Contact_Types (contact_type) VALUES(@contacttype)", cs);
da.InsertCommand.Parameters.Add("@contacttype", SqlDbType.NVarChar).Value = contact_typeTextBox.Text;
cs.Open();
MessageBox.Show("Record Successfully Saved");
cs.Close();
foreach (var conrol in Controls)
{
var textbox = conrol as TextBox;
if (textbox != null)
textbox.Clear();
}
}
}
|
|
|
|
|
What are da and cs in your code? All I see there is a message being shown that you successfully opened some form of connection but without anymore context, I can't offer more concrete advice. I could assume that da is a DataAdapter based off your naming but I could well be wrong. To be honest, using anything other than a straightforward SqlCommand here seems overkill. If I were you, I'd simplify this to:
SqlCommand command = new SqlCommand("IF NOT EXISTS(SELECT * FROM Contact_Types WHERE contact_type=@contacttype) INSERT INTO Contact_Types (contact_type) VALUES(@contacttype)");
command.Parameters.Add("@contacttype", SqlDbType.NVarChar).Value = contact_typeTextBox.Text;
cs.Open();
try
{
command.ExecuteNonQuery();
}
finally
{
cs.Close();
}
This space for rent
|
|
|
|
|
Your assumptions are correct - da = DataAdapter and cs = SqlConnection.
I am new to C# and my code has been trial and error, so is far from perfect. Thanks for your help. I will try it in my code.
|
|
|
|
|
Member 13218552 wrote: my code has been trial and error
Don't. Stop, think, research. Most of the documentation includes example code which gives you a starter - and taking the time to think about what you are trying to do instead of "try it and see if it works" can save you huge amounts of time. And grief.
Look at this code: you have been trying to fix this for over half a day that we know of. 30 minutes spent in thinking and research could have given you the solution hours ago...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
How about we assign an Int32 to that NonQuery() to get the Rows Affected; if 0 then record exists and if 1 then it was inserted
Int32 RowsAffected = -1;
string MessageContent;
try {
RowsAffected = command.ExecuteNonQuery();
}
catch (Exception ex) {
MessageContent = ex.Message;
// Handle the error
finally {
// clean up
}
if (RowsAffected == 0) { MessageContent = "Record already exists"; }
else if (RowsAffected == 1) { MessageContent = "Record inserted"; }
MessageBox.Show(MessageContent);
Director of Transmogrification Services
Shinobi of Query Language
Master of Yoda Conditional
|
|
|
|
|
Why are you answering me? The OP won't get notified that there was an answer if it goes to someone else.
This space for rent
|
|
|
|
|