|
The problem for me is that I can't use assembly for this application, I need to do some other things such as sending keystrokes, mouse commands, moving the mouse, checking global hotkeys, and I've already written 80% of the code...so I'd like to finish it in C#...it's not a very large application so I'm not worried about causing too much clutter, and I'm only reading two pointers. So I'd like some more info on it PLEASE KTHX!;)
|
|
|
|
|
Communicating with another process takes one of three routes:
- use an appropriate CLR class, when available; no warries here
- for simple things: use an existing Win32 function, call it with P/Invoke;
works fine as long as the function does not need pointers (so SetWindowText
is fine, SendMessage may be fine depending on the message code, i.e. do
wParam/lParam hold values or pointers ?)
- for complex things: allocate memory in the other process (this requires the
use of several Win32 functions such as VirtualAllocEx), transfer data
to/from your process address space from/to the other process' address space
(using ReadProcessMemory or WriteProcessMemory), and call the intended
Win32 function (all in appropriate order!). There are some examples of this
on CodeProject, at least one article describes a C++ class that facilitates
this; I wont repeat it all.
What you were talking about before (offset indirect addressing and the like) is
not applicable to the above; at most data is read/written somewhere, and a
pointer (a real one, not something fancy) to it gets passed back/forth.
|
|
|
|
|
Hi,
Can you tell me how to import a file in other file?
thanks.
|
|
|
|
|
What types of files? What do they contain? How do you want to 'merge' them? Are they text files and you want to append one to the other? Need more information.
|
|
|
|
|
Depends on the format of the file. Would you like to tell us more about these files?
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
Ready to Give up - Your help will be much appreciated.
My website
|
|
|
|
|
Adding to what the others said, while it's true that, for example, merging two XML files is not as simple as appending one to the other, it's also true that it's not possible to append a file at all, no matter what, you need to read your two files, merge them in memory and write them back out, either overwriting one of your existing files, or to a new file.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
I'm allways surpriesed how there can be no reacton from the one who has a problem, after a response 9 minutes later.
But maybe it's because the question had no "urgent" in the subject line!
All the best,
Martin
|
|
|
|
|
Martin# wrote: I'm allways surpriesed how there can be no reacton from the one who has a problem, after a response 9 minutes later.
It just goes to show you that too many people haven't got even the most basic of manners. Possibly they found the answer but just don't have the common courtesy to respond back to say they've got a solution. Or they really don't understand their own problem and are embarrased that they can't articulate themselves.
Martin# wrote: But maybe it's because the question had no "urgent" in the subject line!
Just like this one[^]
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
Ready to Give up - Your help will be much appreciated.
My website
|
|
|
|
|
using (StreamWriter sw = new StreamWriter(@"C:\file1.txt")
{
using (StreamReader sr = new StreamReader(@"c:\file1.txt")
{
sw.Write(sr.ReadToEnd);
}
}
Simple solution for text files...
Hogan
|
|
|
|
|
using (StreamReader sr = new StreamReader(@"c:\file2.txt")<br />
{<br />
File.AppendAllText(@"c:\file1.txt", sr.ReadToEnd());<br />
}
|
|
|
|
|
File.AppendAllText("file1.txt", File.ReadAllText("file2.txt"));
|
|
|
|
|
Nice; a real compact framework would offer
File.Append("file1.txt", "file2.txt");
|
|
|
|
|
Those lazy Microsoft bastards!!! Why haven't they thought of everything yet!?!?!
|
|
|
|
|
|
I have a SqlDataSource on my page that calls a stored procedure that returns the id of a particular record. I am trying to taked the returned id and store that into an integer or string that will be used as a query string for the next page of processing for this record. I'm not exactly sure how to return the value when running SqlDataSource.Select(DataSourceSelectArguments.Empty). Being that SqlDataSource.Select is an enumerator, I cannot return to int or string (even after doing datatype conversion). I'm not quite sure if I can do this, but guidance would definitely be a help. I have shown the code below. Thanks in advance to those below.
//album_id is the string or int to hold returned id from stored proc
albumid;
albumid = SqlDataSource2.Select(DataSourceSelectArguments.Empty);
|
|
|
|
|
I have no idea how to return value that is in js.
I have the website script suchvar zCHAR_ID=0, fCHAR_NAME=2, tCHAR_CLASS=3,
I want to know what they equal in my C# program.
Now my problems I'm having.
I have two webbrowser because they both have diffrent funtions.
one is axWebBrowser1 other is normal webBrowser
webBrowser1.Document.InvokeScript("todo");
how can I do that with axWebBrowser1 so i can delete the webbrowser form?
I know there are more problems but I can't bother without this fixed.
|
|
|
|
|
Can anyone tell me what is the difference between Interop and AxInterop ?
To generate an Interop I simply select it from regeistred COM or BROWSE in Add reference.
I cannot do it for ActiveX. Why ?
Laurent
|
|
|
|
|
I have a custom control with a custom property. After compiling the project I place my custom control onto a windows form in VS2005. From there I change my custom property on that custom control. The problem is that the custom control doesn't repaint on the designer to show my updated change. The following is the only way I have found to make the control repaint. Invalidate() after _Test = value; doesn't work. I also looked into the System.ComponentModel namespace for something to be placed before public int Test like [Browsable(true)] but didnt find anything. I tried [RefreshProperties(RefreshProperties.Repaint)] but I think that only repaints the properties grid and not the control on the designer. Any ideas???
private int _Test = 0;
public int Test
{
get { return _Test; }
set
{
_Test = value;
Width--;
Width++;
}
}
Chris
|
|
|
|
|
Chris,
After using Invalidate(); add the following code.
Application.DoEvents();
Once you invalidate the control, windows still has to go and re-paint it. By using the line above, you are telling it to do any events right now.
Hogan
|
|
|
|
|
Ya thanks a lot. It worked great.
Chris
|
|
|
|
|
Hello,
As snorki said befor Invalidate requires DoEvents, to have an emidiate reaction.
But DoEvents is not a nice solution as it runs the whole message loop again.
I would prefere the Refresh() method.
All the best,
Martin
|
|
|
|
|
hey guys..
anyone know how to make tool tip text in a button..im using C#.net 2003..n_n
|
|
|
|
|
I think you are talking about in windows. Here is some sample code form microsoft help:
private void Form1_Load(object sender, System.EventArgs e)
{
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
Hope that helps.
Ben
|
|
|
|
|
I'd like to move a Rectangle drawn over a form with the w,s,a,d keys. With the following code it works just fine:
private void Form1_KeyDown(object sender, KeyEventArgs kea)
{
kea.Handled = true;
if (kea.KeyData == Keys.A)
{
graphics.DrawRectangle(myPen_del, a, b, 30, 30);
a -= 4;
graphics.DrawRectangle(myPen, a, b, 30, 30);
}
}
(myPen.Color = black; myPen_del.Color = gray)
But: If I click a.e. 'a' and afterwards 'w', the rectangle i'm moving stucks a bit. That has to do with the windows timer (repeat delay / repeat rate).
What I don't know is how to calculate through KeyDown/Up Event what Keys are pressed and set a selfmade Timer so that the rectangle I'm moving flows and doesn't get stuck every time I'm pressing another button on the keyboard.
Has anyone got a good tutorial for this? Or some sample code about it? I will also gonna include moving the rect in 45° angle by pressing as example 'a' & 'w' together.
By this I will only draw my rectangle in the OnPaint-Event. So can anyone tell me how to manually launch the OnPaint-Event? Cause when I'm doing a Form.Refresh() my integers a and b will be resetted to I was really searching alot for this problem but haven't found anywhere something really helpful
Hope you understood my question and thank you very much in advance for looking into it
|
|
|
|
|
Hi,
you should manipulate the rectangle's coordinates in the KeyPress event (not KeyUp
or KeyDown) and call Invalidate;
and in the paint handler, you should draw the rectangle.
You wont need the myPen_del to undraw, since the paint handler will redraw
everything.
You may want to use doubleb-uffering to avoid or reduce flickering (see Form/Control
properties).
And you should choose more descriptive names for the rect's coordinates...
|
|
|
|