|
We have a utility that needs to maximize resources. We stop indexing by stopping the wsearch service. But within a matter of minutes it restarts. I thought there might be a connection to Outlook but even with outlook not started this happens.
We would rather not set the service to disabled. If anyone has any information or suggestions it is appreciated.
Thanks, kc
In the event log i see these two messages associated with the indexing restart.
Event 102, ESENT
Windows (6604) Windows: The database engine (6.01.7601.0000) started a new instance (0).
and
Event 1003, Serach
The Windows Search Service started.
--------------------------------------------------------------------------------
|
|
|
|
|
Before I start, I'll admit to feeling dirty for even considering such an approach..
However, it sounds very much like the service has a watch-dog application monitoring it. Once the monitoring app detects that it is no longer running, it simply restarts the service.
If this is the case, you may be able to fool the watch-dog app. Often this type of arrangement has a Mutex at it's heart. The service creates a mutex, the watch-dog then tries periodically to create a mutex with the same name. If the operation fails, the service is still running as per normal. If on the other hand, the mutex creation is successful, one can safely assume that the intended creator of the mutex (the service) has ceased running and taken the mutex with it.
On second thoughts, scratch that idea - it's a service that comes bundled with Windows. It seems likely that Windows itself maintains an in-memory list of services and their current state.
On third thoughts, I can't think of a way of doing this (other than with the standard Services dialogs) that couldn't reasonably be considered a hack. Nonetheless,
I just read a thread in which one writer spoke of having to change the permissions on some registry key(s?) in order to change the service startup type...
Last post here.[^]
I guess that leaves you an avenue of investigation:
- Change the reg-key to indicate Disabled, kill the service. Once proessing done, set Automatic (Delayed Start) then let windows start the service up when 'needed'.
No idea which RegKey though..
|
|
|
|
|
Is this a C/C++/MFC question is disguise?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
Wolfkc wrote: We would rather not set the service to disabled.
I don't understand that.
You "disable" the service by stopping it or pausing it (if it allows that.)
You have a process that runs for X amount of time. I presume that you want to insure that the service is not running for that amount of time. And presumably after your process completes then you want to allow the service to continue to run.
So your options are to "disable" the service or reconfigure it to insure that it doesn't run. The first is more certain to succeed and less complex. Reconfiguring it is not certain because at best you can only insure that it will not be running at some future time. And in both cases you must restore it to the correct running state.
|
|
|
|
|
Hello Experts,
My project required a cmd prompt type control which can take command and diskplay result. I used CRichEditText control to accomplish this. But It is slow while drawing beacuse when I need to display text I have to use GetWindowText() + Append Test then SetWindowText().Everytime it displaying the whole content again.
Is there any workwround to solve this problem?
|
|
|
|
|
john5632 wrote: when I need to display text I have to use GetWindowText() + Append Test then SetWindowText().Everytime it displaying the whole content again.
why ?
and wouldn't that create an endless loop?
draw, append, redraw, reappend, reredaw, rereappend....
|
|
|
|
|
Try positioning the cursor at the end of the edit using CRichEditCtrl::SetSel[^] and then use CRichEditCtrl::ReplaceSel[^] to add the new text. This still won't be too fast but probably faster than what you use now.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
Have you looked at other projects here on CP that do the same thing? Here's one[^], but I've seen others (do a search).
|
|
|
|
|
The chatroom server app is used TCP WSAasyncSelect mode .
I want ban some ip in the chatroom,let him doesn't connect the server.
Now I use a vector list to save the ip, when someone connect ,it will traversal search .
if in the black list, then call closesocket.
But this is the low efficiency.
Is there any other way?
Thanks for you replay !
|
|
|
|
|
you could use a map, or a set, with the IP as key.
|
|
|
|
|
I imagine there's plenty of slow stuff going on, so traversing a vector would not be tooooooo bad - but you could a set if you'd like a more efficient way of testing if an item is in a "List" or not...
http://www.cplusplus.com/reference/stl/set/[^]
It's slower to add an item, but testing for existence will be faster than vector. And I'm sure people connect (and are accepting) a vast amount more than they are banned.
Iain.
I am one of "those foreigners coming over here and stealing our jobs". Yay me!
|
|
|
|
|
the vector and map like same as. what's the mean ?
|
|
|
|
|
vector , map , and set and all stl containers. They do different jobs though!
See these links:
std::vector[^]
std::map[^]
std::set[^]
I hope that helps - a bit, at least!
Iain.
I am one of "those foreigners coming over here and stealing our jobs". Yay me!
|
|
|
|
|
hello guys... I was wondering if we can differenciate between two variables as they can have same type. Yet one of them can be simple class variable while other being member variable ; added using Add Variable wizard. This can be seen in DoDataExchange but is there a better way?
This world is going to explode due to international politics, SOON.
|
|
|
|
|
There is no actual difference between a variable added by the class wizard, and a variable you type in yourself.
As I'm sure you've noticed, those added by the class wizard have comments around them, so the class wizard can parse the header file.
As far as the code is concerned.... zero difference.
Variables you add manually are just as much member variables. They should not face your prejudice!
To move on... I'm sure you already know this - what problem are you trying to solve?
Iain.
I am one of "those foreigners coming over here and stealing our jobs". Yay me!
|
|
|
|
|
Iain Clarke, Warrior Programmer wrote: As far as the code is concerned.... zero difference.
Variables you add manually are just as much member variables.
I think I could not state my question properly. I apologize as my first language is not english. I was trying to say is that:
- There is this variable you just add to the class like: CString strMessage1;
- Another variable you added using wizard which is bound to a control (say EditBox) like this: CString strMessage2.
Now I know in DoDataExhnage , we can clearly see that strMessage2 is bound to the EditBox. They both will look like this in the header file
CString strMessage1;
CString strMessage2;
Iain Clarke, Warrior Programmer wrote: what problem are you trying to solve?
But I wanted to ask is there a better way to find out that which variables are bound to the controls (strMessage2) and which variables are not (strMessage1)?
This world is going to explode due to international politics, SOON.
|
|
|
|
|
OK, I think I'm clearer now, but I don't have good news for you.
Just because a variable is used by a function call inside another function (which happens to be called DoDataExchange) does not make it special in any way, nor "bound" in the way that (eg) wpf binds things.
If you had something like:
CMyClass::CMyClass ()
{
BindVariable (IDC_CHECK1, m_bCheck);
...
}
in your constructor, then maybe there would be some list... but you don't - unless you've written it yourself.
Try stepping into one of the DDX_xxxx functions, and you'll see how unspecial it is.
Depending on the problem you are trying to solve (I still don't know), maybe you want to write some kind of binding mechanism that you set up in the constructor, and then a DoDataExchange that uses that binding system to then call the DDX functions. But that seems like a LOT of work...
Iain.
I am one of "those foreigners coming over here and stealing our jobs". Yay me!
|
|
|
|
|
Yeah, there is a greyed out section in the cpp file that has an ON_DDE macro or some such that takes as args the var and the control ID.
==============================
Nothing to say.
|
|
|
|
|
Overloaded_Name wrote: But I wanted to ask is there a better way to find out that which variables are bound to the controls (strMessage2) and which variables are not (strMessage1)?
What's wrong with consulting DoDataExchange() ? All it takes is a glance.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
Yeah, this is trivial... I don't see the purpose to OP's question.
|
|
|
|
|
Well everything is OK with the existing DoDataExchange() . The number of bound variables with the controls are getting increased in my small application. I was hoping there might be a better way to look for these variables. It was just a curious question, now I know there is no such way. Thanks.
This world is going to explode due to international politics, SOON.
|
|
|
|
|
Overloaded_Name wrote: hoping there might be a better way to look for these variables
You could always ensure you give the variables meaningful names so you can easily differentiate between them.
""Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Overloaded_Name wrote: I was wondering if we can differenciate between two variables as they can have same type. Yet one of them can be simple class variable while other being member variable
They have the same type but different modifier (storage class): you must use the static keyword to specify class variables (see MSDN[^]).
Veni, vidi, vici.
|
|
|
|
|
I want to draw an avl tree in a dialog,the tree is done,what I don't know is how to draw it,would somebody help me?
|
|
|
|
|