|
How about the GZIPStream[^] class in System.IO.Compression namespace
only two letters away from being an asset
|
|
|
|
|
I'm having a problem using an unmanaged library from C#. The C++ sample app uses the following
<br />
typedef struct {<br />
char *filename;
char **paddr;
long *pbytes;
long *pbuflen;
} MEMIOSTRUCT;<br />
<br />
extern "C" { __declspec (dllimport) int WINAPI OUTRun(LPSTR, MEMIOSTRUCT **); }<br />
Okay now my C# app uses the following
<br />
<br />
[StructLayout(LayoutKind.Sequential)]<br />
public struct MEMIOSTRUCT<br />
{<br />
public string filename;<br />
<br />
public string data;<br />
<br />
public int dataSize;<br />
<br />
public int bufferSize;<br />
}<br />
<br />
[DllImport(@"owrm32c.dll", CallingConvention = CallingConvention.Winapi)]<br />
[return: MarshalAs(UnmanagedType.I4)]<br />
private static extern int OUTRun ( [MarshalAs(UnmanagedType.LPStr)] string s , [Out] MEMIOSTRUCT [ ] m );<br />
...<br />
MEMIOSTRUCT [ ] memioAlias = MemoryAliases.ToArray( );
int exitCode = OUTRun(command , memioAlias);<br />
</memiostruct>
When I run this I get a AccessViolationException. How am I implementing this wrong? BTW, I'm not a C++ guy so don't flame me if this is simple.
Thanks,
Dan
|
|
|
|
|
Hi,
I developed an application that opens an excel doc, and reads/displays its contents to a datagrid. How do I determine its start and end rows? I have tried some code but it does not give me the result I need. e.g. I tried:
//get start and end rows
Object[] startRow = {worksheet.get_Range("A4", "O4")};
Object[] endRow = {worksheet.Rows.get_End(XlDirection.xlDown)};
which did not work for me.
See below:
// loop through all rows of the spreadsheet and place each row in the datagrid.
for (int i = 4; i <= 50; i++)
{
Microsoft.Office.Interop.Excel.Range range = worksheet.get_Range("A" + i.ToString(), "Z" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value2;
string[] strArray = ConvertToStringArray(myvalues);
DataGridViewRow row = new DataGridViewRow();
Object[] vals = strArray;
row.CreateCells(dgOutput, vals);
dgOutput.Rows.Add(row);
}
This displays the 1st 50 rows. I do not want to display 50 rows, I want to display all the rows in the spreadsheet. I need a variable that will replace the 50 (in the for loop) and represent the end-of-file.
Please help.
Mvelo Walaza
Developer
Telkom SA
|
|
|
|
|
int lastUsedRow = worksheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing).Row;
|
|
|
|
|
Thanks man, it worked!!
Can you please recommend any sites I can get more info/code about Excel applications. I still have lots to do in this application like manipulating the data in the cells and inserting the data from the spreadsheet to an Oracle database table. Thanks again!
Mvelo Walaza
Developer
Telkom SA
|
|
|
|
|
|
I have associated a file extension with my application using the Setup Application in VS 2005 which allows me to click on a file and it automatically opens my application. The problem is when I click a link on a webpage that points to this file extension I am prompted to Save or Open the file. With MS Word/Adobe Acrobat it automatically opens the application when a document is clicked on.
How can I do this same thing for my application?
|
|
|
|
|
You would need to write an IE Add-on for your application. If you look at the Add-on manager for IE you should see one for Adobe, Adobe PDF Reader Link Helper.
only two letters away from being an asset
|
|
|
|
|
Hi guys,
Is it possible to open/load a form as child from inside of a TabPage of a parent form??? How can i do that?
Thanx.
|
|
|
|
|
Just do this:
MyOtherForm myOtherForm = new MyOtherForm();
myOtherForm.Show();
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
It's the right methode to show up the myotherform bud not inside the tabpage of the other form
|
|
|
|
|
Move all of the controls of the child form into a panel class in a separate CS file. Put the panel in both the stand alone child form and as a tab page in the parent form.
Otherwise [Microsoft is] toast in the long term no matter how much money they've got. They would be already if the Linux community didn't have it's head so firmly up it's own command line buffer that it looks like taking 15 years to find the desktop.
-- Matthew Faithfull
|
|
|
|
|
I don't think you can have another form open within a tabpage.
My current favourite word is: Nipple!
-SK Genius
|
|
|
|
|
Hi Justim,
I haven't done it myself, but my understanding is you can demote a Form to the equivalent
of a Panel by setting its Form.TopLevel Property false; once you do that, you can give it
a Parent or add it to some other Control's Controls collection. So that should do it.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Form2 form = new Form2();
form.FormBorderStyle = FormBorderStyle.None;
form.TopLevel = false;
this.tabPage1.Controls.Add(form);
form.Show();
|
|
|
|
|
In the process of learning how to write a Windows service with .Net, I've noticed the the service will shutdown if there's nothing going on, or if it can't respond to the periodic Task Manager "are you alive?" messages.
What I've ended up doing is including a keep-alive thread in every service that contains a while loop that sleeps for four seconds at a time and then cycles through the while again. Is this a necessary step, or am I doing something fundamentally wrong in my service code?
I've also found that if I have a thread (the one and only thread) that sleeps longer than four seconds while it's waiting for something to happen, it will stop the service because Windows thinks it's "not responding". This means that the thread needs to consume unnecessary cpu cycles by stopping every four seconds and determining whether or not sufficient time has passed to kick off further processing.
Lastly, event the presence (in the service) of a running file watcher is enough to keep the service alive.
Am I just missing something?
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Hi John,
Maybe your OnStart is failing, that's the reason of the error.
If you create a new Service project, just add the installer. For example, I created a simple service (WindowsService1), I didn't add any code yet. And added the installer to it.
installutil.exe WindowsService1.exe
Maybe your service is throwing some exception, I put in System.Threading.Thread.Sleep(20000); in OnStart and it didn't timeout.
God bless,
Ernest Laurentin
|
|
|
|
|
If I don't put a keep-alive thread in the code, the service starts automatically and then presnts this message (or something similar):
Nothing to do. Service is stopping.
The only way to keep it from doing that is to put in a keep-alive thread. I've tried using timers and/or file watchers, and it always termiates if I'm not running a thread with a while loop to keep it from stopping on its own.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Hmm...never seen that. Did you use an installer class to install the service?
I usually configure service as LocalSystem.
OK. no clue.
God bless,
Ernest Laurentin
|
|
|
|
|
Yeah, I have an installer class, but due to the nature of the service, we had to install it as a specific user (versus Local System) - I don't know why though.
EDIT - I just found out why we have to do that - it's because the service has to communicate with another machine on the network that has user-specific permissions. We can't use any of the built in user accounts, and instead have to install under a user account that has permissions on the remote machine.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
I haven't had that problem.
Each of my Windows Services contains a Timer and the Timer_Elapsed handler is what performs the function of the Service. I have Services with Timers set to cycle anywhere from every fifteen seconds to every ten minutes. I can't imagine a Service without a Timer. All the OnStart method does is start the Timer. The OnStop method stops the Timer.
|
|
|
|
|
A timer event isn't the same as a Sleep. When your app Sleeps, it doesn't respond to any system messages. Task manager periodically sends out a message to all running processes and if they don't respond within 5 seconds, the task manager thinks they're hung up. In the case of a service, the TM appears to stop it.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
|
I tried both a timer and a file watcher before resorting to a thread.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
(The Timer's Elapsed method executes in its own thread.)
|
|
|
|