ShellExecute fails opening On Screen Keyboard with UAC enabled - windows

I am trying to programmatically open the windows 7 on screen keyboard (osk.exe) from my program.
I found a good guide for this on this page and it works quite well when UAC is turned off.
When UAC is turned on, it is not opening the program at all however, and I can't find why. No UAC prompt is shown when opening the keyboard from the start menu, so it doesn't appear to need administrative privileges.
Is it just because the executable is located in the windows system folder, and if so, is there another way to launch a program that would work?
The error returned is 3, ERROR_PATH_NOT_FOUND, possibly because 'sysnative' path is not working with UAC enabled.
Trying to run "osk.exe" without path also fails, with an error "Could not start the On Screen Keyboard"
Finally, running "C:\Windows\system32\osk.exe" fails with error code 5: SE_ERR_ACCESSDENIED when I tried to use it with redirection turned off (as suggested in this question)

I tested the c++ code sample you refer to in your message. The routine started either from VS devenv or as a standalone exe did always show the on-screen keyboard under any available UAC mode. My OS: Windows 7 Ult. SP1 64-bit.

Related

Runas command in Win 10

I've got what seems to be a small problem but am pretty stuck at the moment.
I have developed a tool a while ago, that is used to change settings of the Ewf on Win 7 embedded.
The main functionality of the tool was to run ewfmngr.exe (commandline) with different commands depending on what the user set in the programs GUI.
This works fine in Win 7, but for Win 10, nothing happens.
I do not get any errors, when debugging, all methods return values indicating, everything should have worked.
However the settings are not applied.
When I type the commands directly into the command line everything works as it should.
My application was always started with "run as administrator".
What did they change from Win10 to Win7, that causes this problems and what can I do against it?

Debugging install4j works on linux but not on windows?

Why doesn't -Dinstall4j.debug=true -Dinstall4j.logToStderr=true on windows result in messages in the console while it does on linux?
My cross platform installer runs as a normal user on linux and elevates on windows so it can install a service.
Linux
myinstaller.sh -Dinstall4j.debug=true -Dinstall4j.logToStderr=true
Console window fills with useful information
Windows
myinstaller.exe -Dinstall4j.debug=true -Dinstall4j.logToStderr=true
console window empty - I suspect the elevation, which seems to require a relaunch, is the cause.
If I run my installer from an Admin window I don't get my error case and don't see the console logging either.
GUI applications cannot write to the console under Windows, because they have no associated console.
If you select the "Windows console executable" property for the installer node on the Installer->Screens & Actions tab, you will see console output.

Suppress message: "python.exe has stopped working"

I'm running Python 2.7 with ArcGIS Desktop 10.1 on Windows for Server (2 Xeon 2.13 Ghz processors).
Is it possible to suppress or automatically close the dialogue box from Windows that says "python.exe has stopped working" when python crashes? I have a continuously running, multiprocessing script that sometimes crashes for unknown reasons (working on that). When I click to close the crash report window, the script restarts and everything is okay. I want this to happen automatically until I can track down what is causing the crashes.
Thanks very much!
Doug
Procedure for disabling the Windows Debugger dialogue box found here:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb204634(v=vs.85).aspx
This prevents the debug dialogue box that requires the user to click [Debug] or [Cancel] if python crashes.
However, there is now another Windows dialogue box that says "python.exe has stopped working. Please close the program" with a button [Close Program]. Sheesh!
The dialog you refer to is part of Windows Error Reporting.
The exact method varies between editions of Windows (Windows 7 instructions here, Google will happily provide for other versions...), but if you disable this feature of Windows, your crashes will happen a lot faster(!).
This is an simply an arcpy bug. You can try to avoid using the steps that are causing the crash, but it generally happens under different tools when used to process through a long list of data.
The only workaround I have found is to make my script save its progress along the way to disk so if you restart the process, it knows where to pickup from.
If you then disable windows debugger message by altering the registry (see below), you can then just repeatedly execute the script in cmd.exe until it completes the entire batch without having to close the process manually every time in between.
I know this is an awful workaround, but it is quite uncommon to have a python library kill off the python interpreter.
DWORD HKLM or HKCU\Software\Microsoft\Windows\Windows Error Reporting\DontShowUI = "1"
DWORD HKLM or HKCU\Software\Microsoft\Windows\Windows Error Reporting\Disabled = "1"

Why is the system tray icon for my program not visible in Windows 7?

I'm unable to find system tray icon for my program after the installation . I could see that In Windows XP, it works just fine: the user can launch a program by clicking on the same.
However, in Windows 7 (both Home and Ultimate editions), the icon is not shown in system tray , but it works after I reboot my machine.
I have tried putting the code to refresh shell icons in the installer script, but this does not seem to have fixed the problem.
Can anyone help me on this??
PS: I use NSIS script for my installer.
Is it simply hidden in the pop-up that opens when you click the little arrow?
If not, is your program actually running at all?
If your program is running, use Process Explorer to check its integrity level (the Integrity column in Process Explorer). After you reboot and the icon appears, does the process have the same integrity level as when it didn't appear?

Task bar icons missing

I have tried to install a shell DLL in Windows7 using innosetup (installation script). To apply the shell changes I have restarted the explorer by using batch file (during installation).
It seems working on WindowsXP and Windows2003 without any issue. But in Windows7 once the explorer restarted all the taskbar icons like skype, google talk,.. (except Network and Audio icons) are closed. But all those applications are running fine. Even I click on the particular application (say skype) in start menu, it wont appear on taskbar. Only way is, need to stop the application in taskbar and again start it.
Is there any way to fix this.
Note:
I am running the installer with admin rights. Also I have tried to run the following commands in Windows7 'Administrator Command Prompt' to restart the explorer.
taskkill /f /im explorer.exe
explorer.exe
The same results happen. All the icons are closed in taskbar. But if I start the explorer via taskmanager this issue wont occur.
Note sure whether it is related to my installation setup (the same commands I am using in my batch file and used to run during installation)
Is there any way to fix this issue.?? I want to install without closing the taskbar icons..
Is it possible that your icon is in the overflow area? Click on the little "uparrow" chevron on the left of the notification area and see if your icon is in there.

Resources