|
Oops! When is Chris going to put a spell checker on CP (just kidding). Thanks Nish.
Cheers
Steen.
"To claim that computer games influence children is ridiculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
Hi All,
I try to install a service with specified account as following:
where "testuser" is a valid account (with no password)
in my NT workstation
CreateService() always return error ERROR_INVALID_SERVICE_ACCOUNT
"The account name is invalid or does not exist."
When I change lpszAccount to "HELLO\\testuser" where "HELLO" is my
machine name, error code ERROR_INVALID_PARAMETER will return
"The parameter is incorrect."
LPCTSTR lpszAccount = "testuser"; // "HELLO\\testuser"
LPCTSTR lpszPasswd = "";
SC_HANDLE schService = CreateService(
schSCManager,
"MyService",
"MyService",
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_NORMAL,
"d:\\myservice\\myservice.exe",
NULL,
NULL,
NULL,
lpszAccount,
lpszPasswd);
What's wrong with the above code? Please help me out on this.
Thank you very much in advance!
Regards,
Chris Wang
email: hewang@hotmail.com
|
|
|
|
|
Chris Wang wrote:
LPCTSTR lpszAccount = "testuser";
Th username is specified wrong. It should be specified as domain-name\username or .\username to use the default domain.
Try using this instead
LPCTSTR lpsqAccount =".\testuser";
You might also want to read my article on services.
http://www.codeproject.com/system/serviceskeleton.asp
Thanks
Nish
My most recent CP article :-
A newbie's elementary guide to spawning processes
www.busterboy.org
|
|
|
|
|
Thanks for your message. But if lpszAccount is specified as ".\testuser", there is still invalid account error message. Backslash("\") should be expressed with double backslash("\\").
Chris
|
|
|
|
|
|
Yes, it's Ok now. I forgot one thing. If dwServiceType is specified as SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS instead of SERVICE_WIN32_OWN_PROCESS, it still can not work. Is it possible to set service type as above?
Chris
|
|
|
|
|
|
Does the user account have "log on as a service" rights?
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
Under XP I can use the nice anti-aliased folder icon in my list control by doing something like this to the imagelist...
<br />
HIMAGELIST hImageList = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 2, 4);<br />
HICON ico = LoadIcon(GetModuleHandle("shell32.dll"), MAKEINTRESOURCE(4));<br />
int x = ImageList_AddIcon(hImageList, ico);<br />
... and using this in my list control is fine. When I use this image list in my tree control the image appears fine at first, but when the mouse is moved over an item, the scary black border begins to appear. In fact, the more times the mouse is moved over the image the blacker we get.
note: This is most noticeable with TVS_TRACKSELECT, it can sometimes be seen without.
This happens with CTreeCtrl and with a plain api WC_TREEVIEW window. Any ideas what's happening here? Explorer doesn't suffer, nor does SysTreeView32.
Thanks in advance,
--
Simon Steele
Programmers Notepad - www.pnotepad.org
|
|
|
|
|
Use ILC_MASK |ILD_TRANSPARENT
|
|
|
|
|
Surely this flag needs to be passed to the drawing function IImageList::Draw which would mean custom drawing the TreeView? I don't think it's a style flag.
I've tried, but it makes no difference. I've also made sure that the background colour is transparent with CLR_NONE, but this also makes no difference.
Any more ideas?
--
Simon Steele
Programmers Notepad - www.pnotepad.org
|
|
|
|
|
Well, obviously the icon is not being erased before it is redrawn. I spent a while playing with it, you can get rid of the effect using custom draw to erase it; seems like there should be a simpler way though.
void CaaTreeTestDlg::OnNMCustomdrawTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMTVCUSTOMDRAW>(pNMHDR);
*pResult = CDRF_DODEFAULT;
if ( CDDS_PREPAINT == pNMCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
return;
}
else if ( CDDS_ITEMPREPAINT == pNMCD->nmcd.dwDrawStage )
{
CDC* pDC = CDC::FromHandle(pNMCD->nmcd.hdc);
pDC->FillSolidRect(&pNMCD->nmcd.rc, pNMCD->clrTextBk);
return;
}
}
farewell goodnight last one out turn out the lights Smashing Pumpkins, Tales of a Scorched Earth
|
|
|
|
|
Thanks for that Shog9 - I was unsure of how to do that and hadn't taken the time to look. I'm assuming the icon is being redrawn as the mouse moves over the text for the items - and the new image is blended with the old. Nasty - bad Microsoft
Any more work-arounds or *fixes* would be gratefully accepted.
Thanks again,
--
Simon Steele
Programmers Notepad - www.pnotepad.org
|
|
|
|
|
Is anybody knows how i can getting some data from memory at addr 0x000F5123 (for example) ? And how i can getting FULL PATH to EXE file in my app ?
---Ranger---
|
|
|
|
|
GetModuleFileName.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
MyType * pType = x000F5123. Be VERY sure you know what you are doing here.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
Hi Christian.
Get BIOS string under Win98 (this string containing motherboard type and bios rev)
In C++
char *pBiosStr = (char *)0xFEC71; - don't work
In Delphi
biosStr = String(PChar(Ptr($FEC71))) - work
---Ranger---
|
|
|
|
|
If I wasn't at work my caveat would have been longer - what I showed you is almost always a bad, bad idea. The question you need to ask is how do I get the bios information and the answer from me is I do not know.
Sorry I cannot help more.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
I'm thinking what you want to tinker with isn't process memory, so neither WriteProcessMemory or pointers will work. Your probably gonna have to get at system memory. These bios specs are possibly in the CMOS...but to access CMOS you need to use in/out cpu instructions which cause exceptions I think when running under ring 3(protected mode). Which windows applications run under. You gonna have to use a device driver i'd think.
It works under delphi..??? Is your delphi app compiled into win32 PE..??? Thats weird that it would work...i'm pretty sure your poking system memory, not process...so unless your delphi app is running as a dos/console/win16 type app it shouldn't be able to read system memory.
Cheers
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
Yes in Delphi's Win32 apps works (under Win98). Try:
str = String(PChar(Ptr($FEC71))) under Win98
---Ranger---
|
|
|
|
|
You can use a pointer like Christian pointed out, no pun intended...
However I fail to see why you would need to directly write to memory in the current process. If you want to write to other processes (Change variables in a running game or something) then WriteProcessMemory would serve you well.
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
I don't need write i want check moterboard type when my app is starting. And BIOS memory area - system process ?
---Ranger---
|
|
|
|
|
I need checking on which computer running my app. And i need get motherboard's type from BIOS data.
Some parts of project was written in Delphi other man and i must assemble all parts.
---Ranger---
|
|
|
|
|
If your gonna have to read/write ANYTHING from bios data area you'll need to use interupts, or pull out the byte yerself. In either case (i'm not 100% sure) but you can't do this with windows applications. You'll need to use device drivers i'm almost positive.
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
Win32_MotherboardDevice WMI class which is under the "Computer System Hardware Classes". For BIOS check Win32_BIOS class.
Atul
100.13714 netdiva
|
|
|
|