|
my 2C are:
use a buffer that is filled with new data at regular intervals, this will limit the total bandwith usage by any user but it will not restrict the actual downloada speed, here's some code (pretty schematic):
while(!donwloadcompleted)
if(GetTime-elapsed>X)
{buffer=new data;
elapsed=GetTime;
//yourdownloadprocedure;
}
then do the download thingy;
hope this helps
m$: It is normal for your screen to go blank and for your computer to restart itself several times
|
|
|
|
|
Hi All,
I want to close a directory which is being opened.what i have is only the path of the directory.How can i emulate clicking the close button on this window programmatically.Thanks in Advance.
Rakesh
|
|
|
|
|
Hi
is the opened directory the file explorer? if yes, how you start this process, with ShellExecute or with the .NET Process class?
|
|
|
|
|
Hi Joe,
Thanks for your reply.I have opened the directory using Process Class of .Net framework.And it is being opened in explorer.Any suggestions how i can achieve this.Thanks in Advance.
Rakesh
|
|
|
|
|
Hi Rakesh
the process class has a property named Handle. with this property you can use the interop function SendMessage with the parameter WM_CLOSE.
example: SendMessage(Handle, WM_CLOSE, 0, 0);
or
use the Kill Methode of your process class.
|
|
|
|
|
Hi Joe,
Thanks for your reply.both Process.kill and SendMessage are throwing the same error.
System.InvalidOperationException: No process is associated with this object.
I tried with both UseShellExecute equal to true and false.In sendMessage case the error is coming while I am trying to use the Handle property.So the error is not coming in calling the sendMessage method but in getting the handle.Any Suggestions.I also tries using the startverb both as "Open" and "kill" but the result was same.Thanks in Advance.
Rakesh
|
|
|
|
|
Hi Joe,
My mistake that I hadn't specified the process name "explorer.exe" in the process.now I am able to get the handle but process.kill gives the error that the process is already exited.and closeHandle does not do anything.using getlasterror i am getting the following error.
ERROR_MOD_NOT_FOUND
126 The specified module could not be found.
here is the code
static int WM_CLOSE = 0x0010;
string path = @"C:\Documents and Settings\rakesh\Desktop\A"
pr.StartInfo.CreateNoWindow = true;
pr.StartInfo.Verb = "Open";
pr.StartInfo.FileName = "explorer.exe";
pr.StartInfo.Arguments = path;
pr.Start();
//pr.Kill();//gives the error the process has already exited
iptr = pr.Handle;
SendMessage(iptr,(uint)WM_CLOSE,0,0);
int errorCode = Marshal.GetLastWin32Error();
Console.WriteLine("errorCode::"+errorCode.ToString());//gives errorcode 126
**************************************
Any help will be greatly appreciated.Thanks in Advance.
Rakesh
|
|
|
|
|
Hi Rakesh
if you set CreateNoWindow = true; you can see the explorer window?
if not, is difficult to close this process from code because the process don't have a window handle.
the only way is to find out the window handle from the
processID and then call the sendmessage function.
|
|
|
|
|
Hi Joe,
Yes I am able to see the window.and also i am able to get the process handle.but not able to close the window either using process.kill or sendmessage.when i set createnowindow to false ,I am able to use pocess.kill successfully.now it's working.Thanks a lot.
Rakesh
|
|
|
|
|
Hi Joe,
May be i replied too early.even in this case if i make the current thread sleep for some time again i get the same error that the process has been exited.actually what i want basically to open a window and close it after some time but the process.kill works only if i give it just after process.start or when the sleep time is so that the window does not show at all.Thanks in Advance.
Rakesh
|
|
|
|
|
hi rakesh
smile, the only way is to find out the window handle. tray this page
http://msdn.microsoft.com/vstudio/downloads/101samples/default.aspx
you find 101 c# samples in a msi file. this msi file contains a sample to find out all running processes in your system. download the right file, the page contains samples for both .net 1.1 and 2.0
|
|
|
|
|
Hi Joe,
thanks for the link.I have got the handle using enumWindows.but even after that i am not able to close it. i tried SendMessage , CloseWindow(according to documentation it only minimizes the window),DestroyWindow,EndTask and some more but even after all this i am not able to close the window.although i can kill the process (windows explorer in this case) by using TerminateProcess, but I just want to close the window.the windowhandle i valid as i am able to get the text of all windows using GetWindowText but while trying to close the window I am getting different errors.Again thanks for the marvellous link.
Rakesh
|
|
|
|
|
Hi Joe,
Thanks a lot.Finally i am able to do it using EndTask.Actually previously i was sending the third parameter fForce to true which kills the explorer instead of the task.But sending it as false closes the window.Thanks for all your help.
Rakesh
|
|
|
|
|
Hi Rakesh
this is a good message .
if i can help you in other programming problems send me an email at:
joe.carbone@mymail.ch
Joe
|
|
|
|
|
I know this is along time ago. But I was wondering if you would post the code that worked for you. The links pointed to in this thread don't work any more.
Thanks
Brent
|
|
|
|
|
Hi all,
i have written a small program in which i want to check whether a
Queue exists and for this i used the Exists method of the MessageQueue
but i throws an Exception saying that
" Cannot determine whether a queue with the specified format name exists"
Anyone knows wht is the right way to check that
Thanks
Pramod
|
|
|
|
|
Can you specify the path of the queue you are using and whether this queue is on the same server as your application.
Akif
|
|
|
|
|
the application is not on the server
i more thing is that i am not able to create a queue on the server
by executing the application from my machine
Thanks
Pramod
|
|
|
|
|
If you are using a private queue then the format of the path for the queue will be:
"FormatName:DIRECT=OS:machinename\private$\queuename"
and if you are using a public queue, then the format of the path will be:
"ServerName\QueueName"
but remember one thing, you cannot use a private queue in ActiveDirectory environment. It can only be used in workgroup environment.
Hope it will help you.
Akif
|
|
|
|
|
The server which i am using is a XP professional machine
and it does not shows Public Queue,
I wanted to know whether i can create a private queue from my code
on that machine,
I created a queue manually by going to the computer management window,
but i want to check whether a specified queue exists or not
if not then it should be created
Is there a way to do that.
Thanks
Pramod
|
|
|
|
|
If it is a private queue then you can check whether it exists or not. You just need to use:
"FormatName:DIRECT=OS:machinename\private$\queuename"
as its path and then check IsExists property.
Akif
|
|
|
|
|
i cannot find the isExists property
can u please send me the code
Thanks
Pramod
|
|
|
|
|
Use MessageQueue.Exists(QueueName) to check whether the queue exists or not.
Sorry;) it is not a property infact a static method.
There is a good article on the usuage of MSMQ. Check it out[^]
Akif
|
|
|
|
|
i have already tried that but that throws an Exception
saying "Invalid Queue PAth name"
i am not able to check the existence of the Queue on the server
i am able to send and Receive msgs
Thanks
Pramod
|
|
|
|
|
"Exists cannot be called to verify the existence of a remote private queue"
Syntex of the QueueNamePath is:
Public queue: MachineName\QueueName
Private queue: MachineName\Private$\QueueName
Journal queue: MachineName\QueueName\Journal$
Machine journal queue: MachineName\Journal$
Machine dead-letter queue: MachineName\Deadletter$
Machine transactional dead-letter queue: MachineName\XactDeadletter$
Akif
|
|
|
|