|
Nah ... her Hi Vis vest is missing as well.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
How about full body armor, just in case? Or a Darth Vader memorial breathing mask?
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
SOLVED ALREADY, I've done a small program in C++ that handles that for me.
The problem was not doing the program itself (which is super easy to do) the problem was getting an executable file that would work in Windows XP.
After a good tip from @Daniel_Pfeffer, I've learned how to configure newer versions of Visual Studio to link for Windows XP.
THANK YOU ALL!
I've seen "Clickoff" and "windows closer by Murgee", but the first one seems not to be capable to click on the message box and press enter afterwards, and the second one can't simply run on windows XP.
I've done a super simple small C++ program that would do that search for window handle, send return there. and that should be it.
The problem is that what is output from my Visual Studio is not compatible anymore with windows xp... (that's why I'm searching for a free application that could do that).
Each 2 or 3 years I get a request that implies opening 3 virtual machines and open a set of files... each time I try to open those files it takes between 30 minutes to several hours. And always appears some messageboxes that need to be confirmed for the process to continue. This leaves me in front of the computer waiting for them...
Thank you all!
modified 19-Nov-19 12:38pm.
|
|
|
|
|
Quote: search for window handle
Handle of the MessageBox or handle of the OK Button?
It does not solve my Problem, but it answers my question
modified 19-Jan-21 21:04pm.
|
|
|
|
|
It should be the same as the button is the default button on that messagebox...
Do you know any application that would do this?
Thank you.
|
|
|
|
|
No, I don't know such an application. As far as I understand you tried to do it by yourslef. I also just tried it and for me it works fine (ok, I did it with c++ builder). The main difference to your approach seems to be you send a VK_RETURN while I'm doing SendMessage(xWnd, WM_CLOSE, 0, 0);
I hope it helps
It does not solve my Problem, but it answers my question
modified 19-Jan-21 21:04pm.
|
|
|
|
|
The application itself is super easy to do...
I don't want to close the messagebox, I want to accept it, that's why the VK_RETURN.
It works in my computer without much hassle...
The problem is that my version of visual studio doesn't have the right builder options for Windows XP. That's why I'm searching for an app like that...
|
|
|
|
|
Put your sourcecode in my profile blog. I will try then to make a native W32 for you
It does not solve my Problem, but it answers my question
modified 19-Jan-21 21:04pm.
|
|
|
|
|
Have not seen how to post it in your blog...
Hope you don't mind I post it here:
#include "pch.h"
#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <windows.h>
#include <winuser.h>
#include <conio.h>
int main(int argc, char *argv[])
{
LPCTSTR windowName = "Pregunta";
int ims = 10000;
if (argc > 1) windowName = argv[1];
if (argc > 2) ims = atoi(argv[2]);
while (true)
{
HWND hHandle = ::FindWindow(NULL, windowName);
std::cout << hHandle;
std::cout << "\r\n";
if (hHandle != NULL)
{
::PostMessage(hHandle, WM_KEYDOWN, VK_RETURN, 0x001C0001);
::PostMessage(hHandle, WM_KEYDOWN, VK_DOWN, 0x00500001);
}
Sleep(ims);
}
} Thank you for taking time to do this!
PS: the compiler must not be set to unicode to accept this as valid.
modified 16-Nov-19 9:17am.
|
|
|
|
|
Hi again
Finally this does the job in my environement
HWND xWnd= FindWindow(NULL, "DlgWnd");
if (xWnd)
{
int xWatchDogCount= 0;
while(xWatchDogCount++ < 10)
{
HWND xOkBtnWnd = FindWindowEx(xWnd, NULL, NULL, "OK");
if (xOkBtnWnd)
{
PostMessage(xOkBtnWnd, WM_KEYDOWN, VK_SPACE, 0);
PostMessage(xOkBtnWnd, WM_KEYUP, VK_SPACE, 0);
}
}
}
It does not solve my Problem, but it answers my question
modified 19-Jan-21 21:04pm.
|
|
|
|
|
@Daniel_Pfeiffer posted how to get modern visual studios to be able to link for windows XP...
I'll follow that advice.
Thanks!
|
|
|
|
|
modified 19-Jan-21 21:04pm.
|
|
|
|
|
Have a look at AutoHotKey, there may be a suitable script.
|
|
|
|
|
|
That's almost the same code I've done...
Mine works perfectly (like yours) but I was not able to put the executable in windows XP...
I've got a suggestion explaining how to get Visual Studio to be able to link for XP.
I'll do that.
THANKS for answering!
|
|
|
|
|
Joan M wrote: The problem is that what is output from my Visual Studio is not compatible anymore with windows xp...
For Visual Studio 2017 or 2019:
- Open the Visual Studio Installer
- Click "Modify"
- Select the "Individual Components" tab
- Scroll down, and select the "Windows XP support for C++" option
This should enable you to target Windows XP (it will appear as a separate option in the list of toolsets)
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
SUPER!
I'll try it thanks!
|
|
|
|
|
|
thank you, I've done a small program after setting the linker to link for XP.
|
|
|
|
|
The output from Visual Studio is compatible with XP when you build with the XP-compatible toolchain.
|
|
|
|
|
Didn't know that, already done, thanks.
|
|
|
|
|
i would prefer to do a prorgram targeted approach... and wrap around the MessageBox* function so the messagebox would never appear at all, and all required would be a change from user32.dll to userMy.dll where userMy.dll i would forward all functions to user32.dll minus the MessageBox ones...
altough its also possible to do by injecting a dll on the process and detouring... and even possible with a global hooking for dialog creation (using the MessageBox template), dont know programs for that
as usually i do more targeted than generic approaches... but imo its very easy to do
|
|
|
|
|
|
There is a registry entry in Windows XP that will automatically click on the default reply for a messagebox.
See Enabling Default Reply
|
|
|
|
|
that logical appeals were more persuasive to people and emotional appeals were more persuasive to my compiler.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|