|
I need to interact with another application on my desktop .I'll have it running and if possible I want to force its menu to popup , then click one of its menuItems (like open , or save) ...after I do this the other application should bring up a child window that I need to copy its content ...
I don't want you to give me code rather just pointers on how to deal with this ...I know it's a lot of work but for me it's worth it .
Thanks guys.
|
|
|
|
|
Well, you *could* send Win32 messages to the application (like WM_MOUSEDOWN at the location of the menu, etc). You could also send keys to the other application via SendKeys or via Win32 SendMessage that corresponded to a shortcut key for the application, perhaps CTRL+S for save, etc. But all these things are hacks and rely on the current functionality of the application to work. The next version of the application could easily break your hack.
|
|
|
|
|
Thanks guys...I'll try these ideas..
|
|
|
|
|
you can also try macros
It is Good to be Important but!
it is more Important to be Good
|
|
|
|
|
Creating tcp/ip application. I want network path from client pc to server pc. Like what we are getting with trasert command.
The purpose of this is I could not able to connect the server coz of which not getting any request to server. Now I want to know where exactly it it is getting fall at client network place.
|
|
|
|
|
There are lots of articles on this site and around the web that demonstrate how to use sockets or .NET remoting to communicate across process and across machine boundaries. Have you tried searching?
|
|
|
|
|
It will be very greatful if u suggest me one for my query. As of now I have got for connection sending and receiving data. but now I want the path of network while sending data.
|
|
|
|
|
Hi,
I have on vb application
where i could not able to connect at one client place
With wintrapper
.RemoteHost = Split(strIpaddress, "|")(0)
.RemotePort = Split(strIpaddress, "|")(1)
.Connect
and on wintrapper.SendData i am getting error
Wrong protocol or connection state for the requested transaction or request
What should i do to connect to server?
|
|
|
|
|
Have you read this article[^]? It talks about how to make a client and server communicate via sockets.
If you need help with a specific problem, be more specific.
|
|
|
|
|
Hi All,
I have been making a user control. (VS 2003)
I wish to handle its mouse events.. something like, the control background should turn red on MouseDown, and become white again on MouseUp.
I added the MouseDown and MouseUp event handlers and tried changing its BackColor on MouseDown and MouseUp events. After building and adding this control to another application, i found that the color does not change.
Do i have to create my own events for this. I am not able to understand why this is not working.
Can anyone help me out with this. I am new to C#.
Thanks in advance.
*** Who said nothing is impossible? I have been doing it for a long time ***
|
|
|
|
|
Did you call this.Invalidate(); after you changed the BackColor of your control?
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hello
1- Make a break point in your code to see if the events are really excuted or not. You could also do something else like showing a MessageBox, or sending a trace, or anything as an evidence of the excution of the handlers.
2- Please post the code that you change the background with. This also might help.
Regards
|
|
|
|
|
I am trying to use a C++ dll designed in VS 6.0 with C# .net. The problem is with passing a pointer into the dll that expects a char* (not unicode). I have tried passing a IntPtr, a StringBuilder, and a Byte[], but I get the same results "AccessViolationException was unhandled" "Atempted to read or write protected memory. Any help would be appreciated.
Heres the C++ dll code:
extern "C" __declspec(dllexport) BOOL ExGetDeviceSerialNumber(DWORD nDevice, char *pSerialNum)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
TRACE(_T("Entering LogiComm2GD ExGetDeviceSerialNumber\n"));
return DllGetApp()->GetDeviceSerialNumber(nDevice, pSerialNum);
}
BOOL CLogiComm2GDApp::GetDeviceSerialNumber(DWORD nDevice, char *pSerialNum)
{
if(nDevice >= m_NumL2GDDevices)
return FALSE;
strcpy(pSerialNum, &m_USBSerialNumbers[nDevice][0]); // exception here
return TRUE;
}
and here's the C# code:
// dllImport declaration
// get the device serial numbers
[DllImport(@"C:\Documents and Settings\jbroderick\My Documents\Visual Studio 2005\Projects\\USB_D2XX_App\LogiComm2GD.dll",
EntryPoint = "ExGetDeviceSerialNumber",
ExactSpelling = false,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe bool ExGetDeviceSerialNumber(long nDevice, IntPtr ptr);
// access the dll
IntPtr ptrSN = IntPtr.Zero;
ExGetDeviceSerialNumber(Device, ptrSN); // exception here
|
|
|
|
|
JohnnyB717 wrote: strcpy(pSerialNum, &m_USBSerialNumbers[nDevice][0]); // exception here
I would think so since pSerialNum has never been allocated.
"strcpy" is deprecated... see the safe string function reference[^]
Also the design seems flawed. Basically the whole thing is a mess, whoever wrote that C++ should not be writing production code.
led mike
|
|
|
|
|
Thanks Led mike for your reply.
I have also tried using a byte[] with the same result as below. Any suggestions would be appreciated.
// get the device serial numbers
[DllImport(@"C:\Documents and Settings\jbroderick\My Documents\Visual Studio 2005\Projects\\USB_D2XX_App\LogiComm2GD.dll",
EntryPoint = "ExGetDeviceSerialNumber",
ExactSpelling = false,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.Cdecl)]
public static extern bool ExGetDeviceSerialNumber(long nDevice,
[MarshalAs(UnmanagedType.LPArray)] ref byte[] SerialNumber);
byte[] serByte = new byte[500];
ExGetDeviceSerialNumber(Device, ref serByte);
|
|
|
|
|
Hello
I'm not sure if this is the problem, but if I were you I'd give these points attention in this particular order:
1- Your nDevice parameter is a DWORD which is 32bits long, while in your C# code you pass a long which is 64bits long. You should try passing an int32 instead.
2- The second parameter is char* while you pass it IntPtr .. I suggest you pass a StringBuilder class instead. If you do you'd have to remove the unsafe keyword.
3- You are making your C# declaration a bit complex. Why?? Try this P/Invoke:
[DllImport(@"C:\Documents and Settings\jbroderick\My Documents\Visual Studio 2005\Projects\\USB_D2XX_App\LogiComm2GD.dll",
ExactSpelling = true,
CharSet = CharSet.Auto,
CallingConvention = CallingConvention.Cdecl)]
public static extern bool ExGetDeviceSerialNumber(long nDevice, IntPtr ptr);
Notice that IMO the unsafe keyword is not necessary.
4- Calling another function from the exported function? I have doubts about this part.Try copy/paste the code in the second function into the first.
5- Comment these line for the sake of debugging, if they are not necessary:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
TRACE(_T("Entering LogiComm2GD ExGetDeviceSerialNumber\n"));
Also elaborate what does this macro do.
I hope this helps.
Regards
|
|
|
|
|
Thanks Nader,
I changed the declaration to:
// get the device serial numbers
[DllImport(@"C:\Documents and Settings\jbroderick\My Documents\Visual Studio 2005\Projects\USB_D2XX_App\LogiComm2GD.dll",
EntryPoint = "ExGetDeviceSerialNumber",
ExactSpelling = false,
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.Cdecl)]
public static extern bool ExGetDeviceSerialNumber(Int32 nDevice, StringBuilder sn);
Apparently passing in the Int32 instead of long fixed the problem. I was so focused on the char* conversion that I didn't pay attention to the long. Also, I was able to pass in the long as a ref and get back the number of devices without issue. So, I thought that was OK.
Thanks again!
|
|
|
|
|
Hi all,
I would like to add a control like a button to a form of another program.
i allready have the handle to that form.
how can i create a button and know when it is pushed and how do i add it to the other form.
can it be done with sendmessage?
Thanks,
Ran.
R.Z
|
|
|
|
|
You can create a window and set it's parent window, I'm not sure if it will work for another process, but it's worth a try.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
I need to find out if the anti-virus software is running on my local machine.
Is there an API I can use to get the current state?
|
|
|
|
|
hi.i need to export data from datagrid to excel.can you please help me or give me link that i can refer from it
|
|
|
|
|
public string Convert(DataTable oDataTable, string directoryPath, string fileName)
{
string fullpath = "";
if (directoryPath.Substring(directoryPath.Length - 1,1) == @"\" ||directoryPath.Substring(directoryPath.Length - 1,1) == "/")
{
fullpath = directoryPath + fileName;
}
else
{
fullpath = directoryPath + @"\" + fileName;
}
StreamWriter SW;
SW=File.CreateText(fullpath);
StringBuilder oStringBuilder = new StringBuilder();
/*******************************************************************
* Start, Creating column header
* *****************************************************************/
foreach(DataColumn oDataColumn in oDataTable.Columns)
{
oStringBuilder.Append(oDataColumn.ColumnName + ",");
}
SW.WriteLine(oStringBuilder.ToString().Substring(0,oStringBuilder.ToString().Length - 1));
oStringBuilder.Length = 0;
/*******************************************************************
* End, Creating column header
* *****************************************************************/
/*******************************************************************
* Start, Creating rows
* *****************************************************************/
foreach(DataRow oDataRow in oDataTable.Rows)
{
foreach(DataColumn oDataColumn in oDataTable.Columns)
{
oStringBuilder.Append(oDataRow[oDataColumn.ColumnName] + ",");
}
SW.WriteLine(oStringBuilder.ToString().Substring(0,oStringBuilder.ToString().Length - 1));
oStringBuilder.Length = 0;
}
/*******************************************************************
* End, Creating rows
* *****************************************************************/
SW.Close();
return fullpath;
}
write the above code in a class file.
and write the below code in your button click event
string fileName = System.Guid.NewGuid().ToString().Replace("-","") + ".xls";
(new BLC.CSVConvertor()).Convert(Generatexlsheet() ,Server.MapPath("."),fileName);
Response.Redirect(fileName);
end of button click event
//below is the code for Generatexlsheet :
private DataTable Generatexlsheet()
{
String dbstr = BLC.Class1.Constring();
SqlConnection objconn = new SqlConnection(dbstr);
objconn.Open();
// SqlDataReader sqldr = null;
//
//
//
SqlCommand cmd = new SqlCommand("select * from employees",objconn);
// sqldr = cmd.ExecuteReader();
// int numbercols = sqldr.FieldCount;
SqlDataAdapter sqlda = new SqlDataAdapter(cmd) ;
DataTable dt = new DataTable();
sqlda.Fill(dt);
return dt;
|
|
|
|
|
I have drawn an ellipse without problem.
Now i want to fill the top part with a red color and the bottom part with a blue color and i have no clue how to do it. Can anyone help me?
|
|
|
|
|
u can try out
Graphics.FillPie() method
in this by specifying start ange and sweep angle u can fill pie in multicolors
rahul
|
|
|
|
|
Tnx for the reply but what i actualy need is a kind of elipse health meter (like in diablo if u know it)
|
|
|
|