|
Thanks for your help. But I can't find the right answer.
I quote the words from that link: I know for the more advanced computer folks this must be an easy question to answer.
|
|
|
|
|
What is command routing in VC++ ?
Ajayraj
|
|
|
|
|
you didn't google with Command Routing C++[^] or did you?
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
Hi
I have a simple problem but dont know how to do it as i am new to it. I have a couple of images of several monuments and locations of Paris and i want to display it whn i give the name or some identification value like gps co-ordiantes of that location. On searching i found hash table can be used.. but i m totally unknown abt it. Is there any simple solution with codes.
|
|
|
|
|
|
Hello Friends
I m creating one dialog based application in win32.I want to know that can we increse the size of dialog at run time means when users usees that application then I want ot increase the size of dialog on some points?
Thanks In advance.
Regards
Yogesh Sikri
|
|
|
|
|
and change the size of the dialog using this API MoveWindow.
eg:-
RECT rect;
rect.bottom = 500;
rect.top = 0;
rect.left = 00;
rect.right = 900;
MoveWindow( &rect );
Величие не Бога может быть недооценена.
|
|
|
|
|
thanks for ur reply and tell me one thing more Can I add more controls also during run time b'coz i hv to add some text as size increases.Can i add editcontrl too on run time?
|
|
|
|
|
Yes offcourse, create at runtime
eg:-
CEdit* pEdit = new CEdit;
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(10, 10, 100, 100), this, 1);
Величие не Бога может быть недооценена.
|
|
|
|
|
|
If you only want to display text, you can instead create a static control.
|
|
|
|
|
Please help me.
I use SDK 10 to make UI background plugin for WMP9. It's generate project and
make m_spCore object to control WMP. But i need method to control fullscreen, which has in IWMPPlayer class. In SDK manual tell that it possible "Retrieve a pointer to an IWMPPlayer interface by calling the COM CoCreateInstance method." - but i can't do it.
Please tell me, how get IWMPPlayer object?
P.S. sorry for my english
|
|
|
|
|
In order to send keystorkes or mouse clicks to other application that is not in focus, I found
in the internet the concept of using SendInput while attaching my application thread to the application I want to control. Here is the short console program code for writing the letter 'g' on the notepad program.
But still problem - it doesn't put the letter on the notepad... why?
#include "stdafx.h"
#include "conio.h"
#include "windows.h"
void sendKey(WORD wVk)
{
INPUT input[2];
input[0].ki.wVk = wVk;
input[0].ki.wScan = 0;
input[0].ki.dwFlags = 0;
input[0].ki.time = 0;
input[0].ki.dwExtraInfo = 0;
input[0].type = INPUT_KEYBOARD;
input[1].ki.wVk = wVk;
input[1].ki.wScan = 0;
input[1].ki.dwFlags = KEYEVENTF_KEYUP;
input[1].ki.time = 0;
input[1].ki.dwExtraInfo = 0;
input[1].type = INPUT_KEYBOARD;
SendInput(2, input, sizeof(INPUT));
}
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR sText[1024];
HWND hTargetWnd;
DWORD processID;
DWORD threadID;
HWND hNotepadWnd = FindWindow(NULL, L"Untitled - Notepad");
hTargetWnd=FindWindowEx(hNotepadWnd,NULL,L"Edit",NULL);
threadID = GetWindowThreadProcessId(hTargetWnd , &processID);
if(hTargetWnd)
{
wsprintf(sText, L"Target window found\nWindow = %p\nprocessID = %x\nThreadID = %x\n",hTargetWnd,processID,threadID);
wprintf(L"%s",sText);
if(AttachThreadInput( GetCurrentThreadId(), threadID,true))
{
sendKey('G');
AttachThreadInput(GetCurrentThreadId(),threadID, false);
}
}
else
{
wprintf(L"Window Notepad wasn't found\n");
}
while(_kbhit())
{
wprintf(L"%c",getch());
}
while(!_kbhit());
return 0;
}
|
|
|
|
|
keybd_event API is better to use
refer msdn for more help
Величие не Бога может быть недооценена.
|
|
|
|
|
audi02 wrote: But still problem - it doesn't put the letter on the notepad... why?
Functions return values for a reason. Did you bother to check the return value from SendInput() ?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"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
|
|
|
|
|
I checked by
int res = SendInput(2, input, sizeof(INPUT));
the results is as expected
res= 2.
|
|
|
|
|
SendInput and keybd_event functions insert keyboard events into the keyboard input stream and these events are received by active/focused window. If You would like to send keystroke to non-focused window You probably should send message directly to that window.
|
|
|
|
|
audi02 wrote: But still problem - it doesn't put the letter on the notepad... why?
This is by Microsoft design. SendInput[^] and keybd_event[^] inserts keyboard input directly into the kernel input stream. The Windows subsystem Win32k.sys handles user input for usermode windows. Windows that do not have focus do not recieve the WM_KEYDOWN Notification[^], WM_CHAR Notification[^] nor the WM_KEYUP Notification[^].
If you want to send simulated keystrokes to windows that do not have focus you will need to either:
1.) Use the BringWindowToTop Function to bring the window to top before simulating keystrokes.
2.) Use the PostMessage Function[^] to do the dirty work of Win32k.sys
This should do the trick:
PostMessage(hTargetWnd,WM_CHAR,'g',0);
Note that using PostMessage to simulate keyboard input is not recommended for a variety of reasons. Some of which include... hooks will not be called... GetKeyState and GetAsyncKeyState will not return correct results... GetQueueStatus with QS_INPUT will not be correct. In a nutshell... by using PostMessage you will be bypassing alot of the Win32k subsystems which could result in undesired behavior.
Best Wishes,
-David Delaune
|
|
|
|
|
Thanks for the detailed explanation.
You are right about the PostMessage as I had tried it. It actually seems to be not practical for me because it seems that I must know what the target program is designed to receive while I only want to send the basic events of mouse and keys.
Example:
I tried for example to send WM_LBUTTONDOWN in order to simulate left mouse button click, but the target program didn't react to this even it received it. When I checked, using Spy++ the messages it accepts when the mouse is really on it, I found the messages are much more complicated than just WM_LBUTTONDOWN and includes WM_NCHITTEST, WM_SETCURSOR and more. Why it is not just WM_LBUTTONDOWN ? I don't know. it's first time for me in this subject.
If you can give some description on this behavior and a solution, that will be great.
Maybe I will use the keystrokes simulation through PostMessage and the mouse with other way?
Thanks.
|
|
|
|
|
audi02 wrote: It actually seems to be not practical
Correct. I would say that its not a good idea to use PostMessage for reliably simulating input.
audi02 wrote: If you can give some description on this behavior and a solution, that will be great.
There are so many things happening in the windows subsystem (Win32k.sys) that it will be difficult to overcome undesired side-effects. For example when the window lost focus Win32k.sys internally keeps track of the window state, the subsystem knows not to put input messages into the window message que. When injecting rogue messages into the que you cannot always predict the outcome.
I dont really have any positive advice to give you regarding injecting user input into a window. How do you know the author of notepad or ApplicationX did not check his window state when notepad recieves mouse input? You will also battle these types of issues as well.
What type of application are you developing? Why can't you just bring the window to the top?
Best Wishes,
-David Delaune
|
|
|
|
|
I'm a beginner in LCC win32.
I would like to know how to getpriority , get Thread priority.
and how to get time in nanosec.
(In Time.h can get only milisec.
Thank you in advance.
|
|
|
|
|
QueryPerformanceCounter to get the time.
int GetThreadPriority(
HANDLE hThread // handle to thread
);
check msdn for more info
Величие не Бога может быть недооценена.
modified on Tuesday, August 4, 2009 4:31 AM
|
|
|
|
|
Which VC do you like among VC6, 2005, 2008?
I still like VC6.
Just type a line about your opinion, so I know if I am correct.
Thanks
|
|
|
|
|
6!
I (am forced to) use VC05 at work and I curse it regularly.
--Mike--
Dunder-Mifflin, this is Pam.
|
|
|
|
|
I hope I work in your company.
|
|
|
|