|
I've had this problem before. I get around it by doing the following:
Log on as administrator.
Run regedt32 . Note, it is imporant to use regedt32 and *NOT* regedit !
Go to the offending key, and go to the Security | Permissions dialog.
You should then be able to change the permissions of the key so that it can be removed.
You can do this programmatically too in much the same way, although the Windows security API is a bear.
No generalization is 100% true.
Not even this one.
|
|
|
|
|
Maybe the double backslash is the problem here
Regards
Thomas
Sonork id: 100.10453 Thömmi
Disclaimer: Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.
|
|
|
|
|
I'm trying to create a function which just creates a file and fills it with random bytes. I want to be able to specify the size. I do this like this...
bool CreateRandomFile(const char* pszDest, unsigned int nLen)
{
if (!nLen) return false;
static const nByteSize = sizeof(byte) * 256;
ofstream fDest(pszDest);
if (!fDest) return false;
for (int i = 0; i < nLen; i++)
fDest.put(byte(::rand() % nByteSize));
fDest.close();
return true;
} This doesn't work because when (::rand() % nByteSize) becomes 10, 2 bytes are written instead of just the one. The 2 bytes are the standard "\r\n" thing and I guess it's supposed to be this way. But what should I do to get it to work properly?
byte is typedef'ed like this:
typedef unsigned char byte; And btw.: fDest.put(10) writes 2 bytes too, and fDest.put(9) writes 1. I'm using the header "fstream" and namespace std.
Sprudling
|
|
|
|
|
Open the file in binary mode.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
does anyone know how to get the commandline of other processes (calling parameters)
|
|
|
|
|
Not sure why you would want to do this (there may be an easier way to accomplish what you're trying to do), but it would be pretty complex. Seems to me that you would have to write a hook that hooks into the application you're wondering about. Then have the hook respond to a particular event. At that point, your hook could possibly grab the __targv[n] (where n is the count of the parameter your interested in). __targv is a global variable that is accessible *only* from non-console apps. In other words, if it's not a GUI/MFC app, it's not going to work this way.
Other than that, you're on your own. Why don't you mention what you are trying to accomplish at a high level? This might make it easier to provide a reasonable solution.
-Matt
------------------------------------------
The 3 great virtues of a programmer:
Laziness, Impatience, and Hubris.
--Larry Wall
|
|
|
|
|
I experience a problem when migrating C++ code to .Net
I can reproduce the problem with the Wordpad sample (shipped with .NET) is built under .Net.
When text is selected in the Rich Edit control and then Copied, in can not be pasted in neither 'flat text' nor 'rich text'- format. In case Paste Special is selected only the formats "WordPad Document" and "Picture(Metafile)" are available.
When the text is pasted it seams that it is pasted as an OLE object (the "WordPad Document"- type I presume), with a kind of picture placeholder around it. And the resulting text is not editable.
I think the problem is rather in the Copying than the Pasting. CopyPaste form the standard wordpad to the sample wordpad goes fine.
The application has been built on a WinNT4.0 sp6 system, with all the updates installed necessary for .Net.
In case the so built sample application is run on a WinXP system the
behavior is the same.
Hope somebody can help, or perhaps somebody can notify me if their system can reproduce this problem:
Under .Net, Build the wordpad sample.
Try copy/pasing text in the Wordpad sample editor.
Thanks for your coop
Anne Jan Beeks
Best regards Anne Jan Beeks
|
|
|
|
|
same code 9x can but win2k cant ,why?
HINSTANCE hinstDLL=LoadLibrary("test.dll");
//start keyboard hook SetWindowsHookEx(...)
...
//end hook UnhookWindowsHookEx(...)
FreeLibrary(hinstDLL);
//win2k need Sleep(5000); why?
DeleteFile("test.dll"); //return fail in 2k
|
|
|
|
|
I'm guessing a bit here, but IIRC the 16-bit shells just reads the DLL into memory, but NT memory-maps it (which is why you can't delete the executable your process was created from in NT). I'd guess the 5-second delay is due to how the NT cache manager works, keeping the handle to the file open "just in case" until after 5 seconds timing out and purging it.
|
|
|
|
|
I have programmed a service for Windows 2000.
When starting it adds an traybar icon.
This icon is used to open a popup menu.
When installing the service I have
SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS
as service type.
Everything goes ok like this.
But then the problem:
I change the service properties LogOn from Local account to
user account (this is needed to get network access for some file
transfers).
After this change the icon doesn't show up anymore.
|
|
|
|
|
Pate wrote:
I change the service properties LogOn from Local account to user account (this is needed to get network access for some file transfers).
After this change the icon doesn't show up anymore.
That user most probably have no access whatsoever to your desktop object. I believe there was an MSDN article of how to implement RunAs using NT4 that had to deal with this problem too. Most probably it was written by Matt Pietrek.
|
|
|
|
|
What a stupid compiler VC++ 6 is !! Someone please help me for chasing bugs. I've developed a childish VC++ console application. I added a header file and a cpp file.
In header file myheader.h, i declared a class like:
class myclass
{
public:
static BOOL function(BYTE a, BYTE b)
};
In cpp file mycpp.cpp I wrote code as:
#include "myheader.h"
BOOL myclass::function(BYTE a, BYTE b)
{
/*Some Code */
return 0;
}
Now I am getting following errors while compiling:
c:\mum_client\myheader.h(6) : error C2146: syntax error : missing ';' before identifier 'Start'
c:\mum_client\myheader.h(6) : error C2061: syntax error : identifier 'BYTE'
C:\mum_client\mycpp.cpp(4) : error C2143: syntax error : missing ';' before 'tag::id'
C:\mum_client\mycpp.cpp(4) : error C2501: 'BOOL' : missing storage-class or type specifiers
C:\mum_client\mycpp.cpp(4) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
mum_net_io.obj - 5 error(s), 0 warning(s)
Someone please tell me what reason these bugs get generated.
|
|
|
|
|
This time it is not VC++'s fault, but yours. BOOL , BYTE , etc., are not built-in types, but rather they're Windows specific. You have to #include<windows.h> to get their definitions.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
It's not VC that's being stupid.
1/ Why are you using BOOL at all ?
2/ What's a BYTE ? Obviously the M$ header that does this typedef for an unsigned char is not in your project. Same goes for BOOL.
3/ You're probably using precompiled headers and did not #include stdafx.h
beyond that, you've failed to show where some of these errors are generated. Where does the terms 'Start' and 'tag::ID' appear in your code ?
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002
|
|
|
|
|
Yep, the title says it all. How to have bitmap on the background of CMDIFrameWnd (instead of the boring grey background)? ...and also... to have the small bitmap tiled on the background.
|
|
|
|
|
This post of mine shows you how.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thank you very much. This is just what I want.
|
|
|
|
|
Does anyone know how I can sub-class the CRichEditView so that I can display the text in the view in columns? I have looked for similiar on the Web and found nil.
The best I can come up with now, is that I will have to read all of the text into a buffer, and reformat the text on a line per line basis. ie) if the user whats 3 columns, and there are 100 lines of text, then I redo the text so that line 1 now has line 1, line 34, and line 67's text on it.
But, shouldn't there be an easier way? After all, Word does it. The problem that I foresee with my method will be speed.
Suggestions?
|
|
|
|
|
hello..
little question: when using an ostringstream how to pass non - readable codes (e.g. ASCII Code 27)...
because of christian graus's type safety i only can insert it as an integer.. or it doesn't insert it at all.. (via "\0x1B")
i hope anyone can help me otherwise i have to use the awkward sprintf again..
thanks in advance
bernhard
"I'm from the South Bronx, and I don't care what you say: those cows look dangerous." U.S. Secretary of State Colin Powell at George Bush's ranch in Texas
|
|
|
|
|
How about a cast to char...
<br />
std::ostringstream oss;<br />
oss << char(0x1b);<br />
Works in VC++6
Stuart Dootson
|
|
|
|
|
thank you..
another way (after messing around too long with these freaking octal numbers)
oss << 'x1B';
works nice..
thanks
bernhard
"I'm from the South Bronx, and I don't care what you say: those cows look dangerous." U.S. Secretary of State Colin Powell at George Bush's ranch in Texas
|
|
|
|
|
Hello friends,
I am trying implementing timer in VC6.0. OS Win2000 , Platform SDK. My requirment is to write some data in .ini file at an interval of 1 sec.
First tried to implement SetTimer with TimerProc Function. But due to lower priority of WM_Timer flag, my function to write data in .ini file is not getting called at all !!
::SetTimer(NULL,0,500,(TIMERPROC)CAutoPlc::TimerProc);
STDMETHODIMP_(void CALLBACK) CAutoPlc::TimerProc
{
// To Do code
}
Then tried to implement following code for MultiMedia Timer:
timeSetEvent(
1000,
resolution,
write_ini_parameter1, //parameter 3
NULL,
TIME_PERIODIC);
STDMETHODIMP_(void CALLBACK) CAutoPlc::write_ini_parameter1(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
// To Do Code
}
I'm getting following Error:
error C2664: 'timeSetEvent' : cannot convert parameter 3 from 'void (unsigned int,unsigned int,unsigned long,unsigned long,unsigned long)' to 'void (__stdcall *)(unsigned int,unsigne
d int,unsigned long,unsigned long,unsigned long)'
None of the functions with this name in scope match the target type.
I tried to resolve the error by adding _STRICT parameter in Processor Defination in VC Enviorment, but it couldn't help.
Please suggest solution if any one has faced the same problem.
Thanks in advance.
Kinjal.
|
|
|
|
|
Have you declared (in the .h file) write_ini_parameter1 with the qualifier CALLBACK ?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hello, I am in need of some assistance. Currently, I have a application that opens microsoft word and reads in a word document. I put my own bitmap on the toolbar (after looking at the office 2K addin article) but I do not understand how to capture when my button has been hit. I have looked at other posts and do not understand what to do. This is an mfc based COM/OLE application that is NOT an ATL server. So what do I need to do, in plain english, to determine when my button has been hit.
|
|
|
|
|
Hi,
I am trying to build a project with Visual C++.
1) I point and click my way to making this project
the "Active Project".
2) I do Build >> Rebuild All
3) I get the error message ...
Deleting intermediate files and output files for project 'CoreXYZ - Win32 Release'.
--------------------Configuration: CoreXYZ - Win32 Release--------------------
Invoking TAO IDL Compile
'tao_xyz' is not recognized as an internal or external command,
operable program or batch file.
Error executing c:\windows\system32\cmd.exe.
CoreXYZ.lib - 1 error(s), 0 warning(s)
... I understand that Visual C++ is trying to execute the program
tao_xyz for me. tao_xyz is in the "folder" C:\XYZ\bin so I put
C:\XYZ\bin in every frigging environment variable I can point
and click my way to. I reboot the **#$& computer and start
VC++ 6 up again and do step 1 & 2 above over again with the same
results!
What the heck to I right double left click to get VC++ 6 to
use C:\XYZ\bin\tao_xyz instead of tao_xyz?
And what the hell is that icon for Build >> Rebuild All
suppose to be? Rain drops hitting a lego?
|
|
|
|