|
Hi All,
I am working on Keyboard hooking.I am trying to change the value of lParam before calling CallNextHookEx() function.. and its value is getting changed but the contents remains same.. Where as if I am able to change wParam. For Eg: if I press any key 'S' and if I want to modify it to 'B' by using wParam its possible.. Can u now please help me in modifying this 'S' to 'B' using lParam?
Regards,
~Nash
|
|
|
|
|
1. Isn't this question appropriate for VC++[^] forum ?
2. Why your nick name is missing ?
3. It is difficult to figure out problem without code, isn't it ?
wrote: For Eg: if I press any key 'S' and if I want to modify it to 'B' by using wParam its possible
No. This sounds weired.
|
|
|
|
|
Bits 16-23 of the lParam are the keyboard scan code (OEM-specific). That's the only part of the
lParam remotely related to changing an S to a B.
Why are you fixated on changing the lParam?
wrote: and its value is getting changed but the contents remains same..
Huh? How does a value get changed but contents stay the same?
|
|
|
|
|
Thanks for your responses. U r absolutely correct that Bits 16-23 contains scancode. If I press character 'A' having scancode (1E), so the contents of lParam and wParam are xx1Exxxx and 'A' respectively. Now I wants to change this 'A' to 'S'. I am doing like this
MSG *msg = (MSG*)lParam;
if(msg->lParam == xx1Exxxx) // if character is 'A'
{
msg->lParam +=1; // this doesnot works
msg->wParam ='S'; // this works
}
Since, 1F is scancode of 'S' if I tries to change it using lParam I am not geeting corrcet results.
Since I read somewhere that we can change scancode to change the character using keyboard filter driver. So why is it so that here if am trying to modify scancode I m not getting desirable results?
Nash
|
|
|
|
|
How about something like this?
LRESULT CALLBACK MyKeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
if((lParam & 0x00FF0000) == 0x001E0000)
{
lParam &= 0xFF00FFFF;
lParam |= 0x001F0000;
wParam ='S';
}
return ::CallNextHookEx(handle, code, wParam, lParam);
}
|
|
|
|
|
Hi all, im trying to create a function that reads a file. The idea of this is to enter a specific file you'd like to have the program read and list the contents of the file. But if you enter the wrong information the else function will tell you that its a wrong entry.
Here's what i have so far:
<br />
#include <fstream><br />
using namespace std;<br />
<br />
int main(){<br />
char file[]="file.txt";<br />
printf("Enter a file you would like to read: ");<br />
scanf("%s", file);<br />
if(strcmp(file, "file.txt")){<br />
printf("Reading contents of file: %s\n",file);<br />
}<br />
else{<br />
printf("That is not a valid file.\n");<br />
}<br />
<br />
system("pause");<br />
<br />
return 0;<br />
}<br />
It doesnt do what it looks like. and im dying to know what i did wrong. Any suggestions? Thanx in advance!
|
|
|
|
|
This is wrong forum to ask this question. Use VC++ forum instead.
dellthinker wrote: if(strcmp(file, "file.txt")){
printf("Reading contents of file: %s\n",file);
}
you need to modify this to,
if(strcmp(file, "file.txt")== 0){
printf("Reading contents of file: %s\n",file);
}
|
|
|
|
|
i am looking for help in open gl program in c++...anyone here good in that..if there is someone i will post my doubt here..
|
|
|
|
|
Do you want to use .NET, or are you in the wrong forum ? The NeHe tutorials were excellent when I read them.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
Hi everyone,
I'm creating a WinForms program with a combination of native and managed code. When I compile the program with /clr:pure it builds and runs without problems. I'd like to use the Boost Filesystem library, but the linker complains about undefined references when /clr:pure is on. Using only /clr, the program builds fine, but when trying to run, an exception gets thrown.
The exception gets triggered by line 1473 of dbgheap.c (part of the VC runtime):
_ASSERTE(_CrtIsValidHeapPointer(pUserData));
NOTE: This only happens when using the /clr switch. It doesn't happen with /clr:pure, for example. Can anyone shed some light on this? I'm using VS.NET 2005 Prof SP1 on WinXP Prof SP2 on x86 platform.
Cheers,
Ralph
|
|
|
|
|
What does the call stack say?
|
|
|
|
|
Nishant Sivakumar wrote: What does the call stack say?
Sorry I wasn't able to respond sooner, but you know how deadlines are. Anyway, I worked around the problem by using the file & directory manipulation classes in the System::IO namespace. I'd still like to investigate this problem further when I find some time though.
Cheers,
Ralph
|
|
|
|
|
Why does the compiler complain about the following array of char* declaration?
<br />
public ref class Form1 : public SWF::Form<br />
{<br />
...<br />
private:<br />
static const char* rfDlls[] = { "rfwin32.dll", "rfi32rpc.ndr", "rfi32smb.ndr", NULL };<br />
...<br />
}<br />
Error Message:
error C4368: cannot define 'rfDlls' as a member of managed 'Configuration1::Form1': mixed types are not supported
|
|
|
|
|
Use something like this :-
static array<const char*>^ rfDlls = { "rfwin32.dll", "rfi32rpc.ndr"};
|
|
|
|
|
Thanks Nish,
PS. Looking forward to reading your book.
|
|
|
|
|
Can any body tell me what is wrong here???
fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
|
|
|
|
|
2 things
1 - you asked in the wrong forum
2 - your file doesn't include stdafx.h, but you're using precompiled headers.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
3 - stdafx.h nust be the top most #include d header
|
|
|
|
|
toxcct wrote: stdafx.h nust be the top most #included header
Yes, but in stdafx.cpp.
Every newly created project comes with stdafx.cpp and stdafx.h
|
|
|
|
|
bsaksida wrote: Yes, but in stdafx.cpp.
not only ; in every cpp file of the project using stdafx.h as the precompiled header file
|
|
|
|
|
The file name just indicates where to stop pre-compiling - it doesn't HAVE to be called
stdafx.h
|
|
|
|
|
Hi everyone,
I'm trying to use Jeff Atwood's Encryption class, but replicating a simple example yields lots of errors at compile time. Jeff's class is written in VB.NET, but AFAIK all .NET languages compile down to the same CIL, right? So I should be able to use it.
I've tried to rewrite the following VB.NET code in C++/CLI. Am I doing something wrong?
TIA,
Ralph
VB.NET:
<br />
Dim sym As New Encryption.Symmetric(Encryption.Symmetric.Provider.Rijndael)<br />
Dim key As New Encryption.Data("My Password")<br />
Dim encryptedData As Encryption.Data<br />
encryptedData = sym.Encrypt(New Encryption.Data("Secret Sauce"), key)<br />
Dim base64EncryptedString as String = encryptedData.ToBase64<br />
C++/CLI:
<br />
Encryption::Symmetric^ sym = gcnew Encryption::Symmetric(Encryption::Symmetric::Provider::Rijndael);<br />
Encryption::Data^ key = gcnew Encryption::Data("My Password");<br />
Encryption::Data^ encryptedData = sym->Encrypt(gcnew Encryption::Data("Secret Sauce"), key);<br />
System::String^ base64EncryptedString = encryptedData->ToBase64();<br />
|
|
|
|
|
Ralph A. Moritz wrote: I've tried to rewrite the following VB.NET code in C++/CLI. Am I doing something wrong?
Sounds like a nightmare to me.
Why not just use it out of a dll ? Or use something in the Cryptography namespace ?
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
Christian Graus wrote: Why not just use it out of a dll ?
I've compiled Jeff's code into a DLL assembly, and I'm trying to use the encryption classes from the assembly. The problem is that when I try to create an Encryption::Symmetric object, the compiler says:
error C3673: 'EncryptionClassLibrary::Encryption::Symmetric' : class does not have a copy-constructor
Christian Graus wrote: Or use something in the Cryptography namespace ?
IMO Jeff's Encryption class is a lot simpler to use than the stuff in System::Security::Cryptography. But if I can't figure out how to get it working, I guess I'll have to use the latter.
Cheers,
Ralph
|
|
|
|
|
A copy constructor is one that takes an instance of the object, and copies the values into the class. So, just add one.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|