|
Hi again,
thanks for your replies. KeyEventArgs.Modifiers can't discern left and right controls, I tried. The same concerns WM_KEYDOWN . 'Wparam' value passed with WM_KEYDOWN is surprisingly identical not only for e.g. control key. I'm wondering why pressing right alt (RMenu) resulted in the same event code as pressing a control key.
However, I came across some info about native methods in winapi programming, with which left and right keys can be discerned. These are:
GetAsyncKeyState() and GetKeyState()
They return the state of a certain key with needed distinction. With some indirect code, it is possible to find out whether left or right key was pressed.
But there comes the problem again (mentioned above): when I press right alt, firstly, the WndProc method gets a message as if the left control was pressed. Secondly, a KeyDown message for right alt is passed. Why is that so strange?
|
|
|
|
|
Good to know. Did you check lParam if WM_KeyDown. I understood from documentation that it should show the difference:
lParam
...
24
Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
Mika
|
|
|
|
|
Can you let me know where did you find that information?
Well, there is a difference but the value is never 1.
For instance, on right alt down, there are two stages as I described.
At first lparam = 1900545. Nextly, it is 557318145. Can it be dependent on the keyboard type?
However you've got a point. I'll put more attention to lparam. But still, I don't know why pressing right alt causes sending two separate keydown messages. First for control, then for alt.
|
|
|
|
|
Sure: WM_KEYDOWN Notification[^]
The value depends on many factors so the number may be significantly different at different keystrokes (or when the key is repeated and so on)
I'm not absolutely sure about this but I've understood that right Alt isn't only alt but it's combination of Alt+Ctrl (that is also the reason for naming it Alt Gr and not only Alt)
Mika
|
|
|
|
|
Now I see what they mean with those numbers and value of 1. It is about specified bits inside lparam. No wonder that it has stranges values.
You've helped me much so far, thanks. I'll post here when I come to something reasonable.
Paul
|
|
|
|
|
You're welcome
I'd be glad to hear when you resolve your problem or if new problems arise
Mika
|
|
|
|
|
Hi,
Iam new to c#.net.
I have a dataset with the data coming from database.
I have bind the dataset to datagrid.
1. How Add a checkbox to the Datagrid ?
2.How to perform check and Uncheck functionality on the CheckBox in datagrid?.
3. How to change the column header text i.e, for example from database a column comes as "MP_Print_Name" I want to change it as "PrintName"?
Kindly help me
|
|
|
|
|
|
i want to work on something that manages staff time schedule. the rows indicate the time and the columns indicate the staff/employee. the logic of my app is when the start an end time is inputed it will color the datacells affected and show the details of the employee task. my problem is the details will appear on every datacell it will affect. is there a way in vb.net that same cells will be merged displaying a single values? i have seen an application in vb6 that display in datagrid what i need. here is the image:
[URL=http://img357.imageshack.us/my.php?image=datagridus2.jpg][IMG]http://img357.imageshack.us/img357/5510/datagridus2.th.jpg[/IMG][/URL]
the image show same dates merged into a single cell and displays a single value. hope there is a way in vb.net. ive tried to search for it in the web, i cant find any samples of it.
|
|
|
|
|
|
Hi
i m new in programming and want to include an analog clock in GUI(vc)in .Net.help me if i am in right form or inform me about the right form
|
|
|
|
|
You should look for Gauge or chart control which could allow you to create Analog Clock on Form.
This type of control is available from many software component developing companies.
I hope this helps.
-Dave
------------------------------------
http://www.componentone.com
------------------------------------
|
|
|
|
|
I have a requirement to read the data from the selected files, and populate in the treelistview, currently it is taking more than 10 seconds to display could any body post a sample code how to reduce this time. The file contains at about 10 delimiters to read the contents properly. Most of the file size is more than 5000 lines.
SomaShekhar
|
|
|
|
|
Speeding up the loading process depends also on the way you store data in files. Is it possible to make any precalculations for that data, so that it is not necessary to calculate some things while loading?
How do you know where the items from a file should be placed in the treelistview? Try to sort data in your files, so that you know it without any parsing, calculating and so on. E.g. store a value that would indicate how many items there are to load for each branch of the tree.
Secondly, you can use e.g. BackgroundWorker class provided with .NET, which will run the loading process on another thread and let you do something else, while loading lasts.
|
|
|
|
|
I'm not sure if this is the correct forum, but in case it's not, pls let me know where I can post for some assistance.
I'm trying to write a program that supports the following requirements:
Run while another program is running;
Get the keyboard input(s)
While on another program, my program will take the input and loop.
In other words, instead of repeatedly pressing keys, if I hold key down, my program will loop and return the key value to the active screen.
The problem I'm having right now, is that it works as a console, but when I switch to another screen, I loose focus of my application and the keyboard input is no longer being detected. I suspect I need help with threading but need some direction as well.
Here's what I've got so far.
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
//function prototypes
void press_any_key();
void one();
void two();
void three();
int main(){
cout << "Start";
press_any_key();
getch();
return 0;
}
void press_any_key(){
bool done;
done = true;
char input;
do{
do{
input = _getch();
if(input == '2'){
cout << "Currently holding the right key";
done = true;
}
else if(input == '+'){
cout << "Abort.";
//done = true;
exit(0);
}
else{
done = false;
}
}while (_kbhit());
}while(done == true);
cout << "Done";
}
Help pls. Thanks
|
|
|
|
|
humblepgmr wrote: Run while another program is running;
Get the keyboard input(s)
While on another program, my program will take the input and loop.
Sounds like a keyboard logger, normally used by hackers to steal passwords etc. We don't support hackers here on CodeProject.
led mike
|
|
|
|
|
It's really not intended to be a key logger.
I'll explain.
I have a program that requires that I press the number '2' repeatedly; basically instead of pressing it manually, I'd like to just hold the button till I press the '+' key to terminate. While I agree that it can be saved somewhere as a file and then emailed / transfered over the network it's not my intended purpose. I really have a genuine need to press repteatedly.
This isn't intended as an insult, but you jumped to a conclusion which is not accurate at all.
|
|
|
|
|
i have a control in mdi form. when i open a child form then the control in mdi form is overlaping the child form.
please help me to solve this issue.
Pradeep Reddy
|
|
|
|
|
Hi all.
I hope someone can help me.
I need to set focus on mouse position.
Make the click programmatically does't help. not set focus.
Any idea?
thanks.
|
|
|
|
|
caradri wrote: I need to set focus on mouse position.
When? If you are asking how to set focus without the user clicking the mouse, absent a click event, when would you know to do that?
That doesn't sound like a good idea so perhaps I have not understood your question.
led mike
|
|
|
|
|
Do you want a control to have its focus set when the mouse moves over it? If so, any control should have an Enter and a Leave event for this exact purpose. Just register the event handler to set focus on enter.
Dybs
|
|
|
|
|
thanks for your answers. I need just what a click do with focus. When you click the focus goes to this clicked place. the click event not work with this. I have not the name of the control to set the focus.
Im working with private web pages and i need to check them on screen just as user do. This web is encrypted, and i have not access to the html source. (that is almost empty).
I hope i explained this.
|
|
|
|
|
caradri wrote: Im working with private web pages
This is the Windows Forms forum, it has nothing to do with Web Page development.
You seem totally lost. I strongly recommend you get some beginners books or take some classes.
led mike
|
|
|
|
|
Its a windows form with a browser.
|
|
|
|
|
Here is what I want to do. I've got a combo box, which has lots of items, so selecting specific item takes some time. I'd like to use an intelliscence, bc that would make the input process faster: once the user starts typing the first letters, he is shown the items, which have the same starting letters. I've seen this done on many websites, but I haven't found any info for it.
Thanks for time and effort, I really appreciate your help.
|
|
|
|