|
Well, I actually bothered to look at the code.
There is an interface (IMouseSimulator) and a class (MouseSimulator) that look suspiciously like they may have to do something with the mouse.
And executing the MouseMoveTo() method actually moved the mouse!
Maybe there is some functionality missing, but it's a pretty good start: including mouse clicks; double-clicks; left / right buttons; etc.
|
|
|
|
|
Gerry Schmitz wrote: Well, I actually bothered to look at the code. You don't want to go doing that. It'll just give you dangerous knowledge.
|
|
|
|
|
You're right. Folks will now expect me to prove the stuff actually works. Or create some documentation...
|
|
|
|
|
I need an E-relationship diagram for a dictionary that can translate english to pashto and pashto to english and it shows tha for of every words
|
|
|
|
|
And?
What have you done so far?
Where are you stuck?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
You picked the wrong forum for this. You should have asked in the design forum as your question has nothing to do with C#. When you do post a question in the correct location, please ensure you provide enough information to say exactly what problem you are facing and what steps you have taken so far.
|
|
|
|
|
For a variety of reasons I am running a Windows Forms app which creates several threads. In each of these threads I create another form that hosts an ActiveX control (3rd party which requires a window).
This runs kind of OK but I have some problems and hope you can help:
- When I try to create a Windows.Forms.Timer on the form I created in my thread, it never calls the callback. Any idea?
- I can use a System.Timers.Timer but then I have problems in the event handler to use Invoke to access methods of my second form
- If my ActiveX control sends an event from this secondary thread, is that event handled in the main application message pump?
- I have a seen a lot of articles on how I can raise an event from a thread where the event handler runs on the GUI thread. How about the other way round? Can I raise an event from the GUI thread that then executes in some other thread? I could not make that work.
Sorry about the many questions.
BTW, I cannot replace the ActiveX controls with something else and they have to run in separate threads to increase speed. I am basically doing 4 simultaneous OCR operations and I need to do it fast, hence the threads.
|
|
|
|
|
landersohn69 wrote: I am basically doing 4 simultaneous OCR operations and I need to do it fast,
hence the threads. The OCR operations should not require a GUI.
landersohn69 wrote: For a variety of reasons I am running a Windows Forms app which creates several
threads. In each of these threads I create another form That's not really a supported scenario. Each control is bound to the thread where its message-pump is executed. That may "seem" to work but can collapse without warning.
Divide the actual work over different threads and have the main-thread do the UI.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
You are correct, OCR shouldn't BUT I am required to use a 3rd party ActiveX control to do the binarization and OCR. Since it's not just a library but an ActiveX control it must have a parent window
|
|
|
|
|
The dirty solution would be to have multiple invisible main-threads. Meaning, if you need to spawn a ActiveX-containing thread, you don't, but spawn an entire process instead. Do your work in the app, and you can use the Process-class to manage your new worker. Once the worker-executable finishes, scoop up the results.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Thanks for your help.
I considered that. If I end up having to do this, I'd probably even use MSMQ to shuffle my data between the GUI process and the "worker process". I think spawning a new process every time I need it is too slow, it takes a while for these dang 3rd party ActiveX controls to initialize themselves.
|
|
|
|
|
landersohn69 wrote: I think spawning a new process every time I need it is too slow Then keep it in memory permanently. Or divide it over multiple physical PC's.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I spent the last two days dong this: I use a separate process and communicate with it using MSMQ. Works like a charm
|
|
|
|
|
Countered the down vote - and then some
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
landersohn69 wrote: n each of these threads I create another form that hosts an ActiveX control (3rd party which requires a window).
Yeah, there's your entire problem. Because the forms (which are themselves controls) are not reliably connected to the message pump, your forms are not going to work reliably. There is no way to fix it other than to move all the UI stuff back to the UI (startup) thread.
Get an OCR library that doesn't depend on an ActiveX control to work.
|
|
|
|
|
Message Closed
modified 4-Mar-15 8:57am.
|
|
|
|
|
It doesn't quite work like that.
We do not do your work for you.
If you want someone to write your code, you have to pay - I suggest you go to Freelancer.com and ask there.
But be aware: you get what you pay for. Pay peanuts, get monkeys.
And this is an English language site - please try to post in English in future.
[Google Translate]
Il ne fonctionne pas tout à fait comme ça.
Nous ne faisons pas votre travail pour vous.
Si vous voulez quelqu'un pour écrire votre code, vous devez payer - je vous suggère d'aller à Freelancer.com et demandez-il.
Mais soyez conscient: vous obtenez ce que vous payez. Payez arachides, obtenir singes.
Et ce est un site de langue anglaise - se il vous plaît essayer de poster en anglais à l'avenir.
[/Google Translate]
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
for an upcoming WPF application I am asked to give my opinion on the architecture....
right now pondering the client server part...
1 server might 1000+ tablet connected to it. and it might need to push some information to it (.e. 2 way communication).
my first though was WPF talk to Server with WCF.
then as I see the server need to talk back... and never used Duplex comm but wonder about 1000+ client I thought, hey, how about a WCF server on the client that the server could connect to!?
then I though, damn, it's on the internet!! some evil people will talk to our machines!
some maybe I should use secure communication...
but what if people try to impersonate the machines and do dictionary password attack? mm...
maybe I should use HTTPS+WebAPI+SignalR and restrict the IP that can talk to each other...
Is the IP reliable? (or can it be spoofed?)
Anyhow, any idea?
|
|
|
|
|
Internet servers do not "push" data to the clients; connections are stateless and only last as long as it takes to reply to a single "query" (GET; POST; whatever) from a client; either synchronously or asynchronously (WCF).
If clients need to receive "unsolicited" information, then they should "poll" the server at a reasonable interval (so as not to flood the server) and "ask" if there is any information specifically for them.
|
|
|
|
|
This is an interesting one. If data is not pushed, then what is the purpose of WebSockets?
|
|
|
|
|
You're right; OP should consider WebSockets.
I assumed OP was only considering HTTP.
|
|
|
|
|
Hello im a beginner to c# and i made this little tool to ping servers but i would like to add a feature such as packet-loss, and more ping checks, says at-least 2-3 each press, how can i do that i have read the documentation and searched Google for answers but it didn't really help me as i want it all to be in one button.
private void button5_Click(object sender, EventArgs e)
{
Ping ps = new Ping();
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 10000;
PingOptions op = new PingOptions();
PingReply rp = ps.Send("127.0.0.1(removed)", timeout, buffer, op);
if (rp.Status == IPStatus.Success)
{
listBox1.Items.Add(rp.RoundtripTime.ToString() + " MS - This is your average ping to Korea (Test 1)\n");
}
else
{
listBox1.Items.Add(rp.Status.ToString() + "Unable to connect! Server might be down - try again later..\n");
}
}
}
}
Thanks for any help!
|
|
|
|
|
If you want to see more info such as "packet loss", then you should look at this article:
C# Ping Component[^]
|
|
|
|
|
Thanks really helpful, but as i'm a beginner i don't quite understand what part of the code is measuring the the packet-loss, as i try to make the code work all inside 1 click.
Maybe that's not possible?
I know how to display every option besides the loss..
|
|
|
|
|
Here's an example that is a little simpler and gives you what you want ("packet loss").
Note that it does not use the C# Ping class; instead it runs the Ping "command line utility" and captures and parses the output from this utility.
using System;
using System.Diagnostics;
namespace ConsoleApplication14 {
class Program {
static void Main( string[] args ) {
Process process = new Process();
process.StartInfo.FileName = @"Ping";
process.StartInfo.Arguments = @"www.msn.com";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
int start = output.IndexOf( "Lost =" );
int end = output.IndexOf( ',', start );
Console.WriteLine( output.Substring( start, end - start ) );
Console.ReadKey( true );
}
}
}
|
|
|
|