Thanks Larry,
Could you tell me if I got the syntax right? I have no errors, but it does not seem to set the priority.
* THISFORM.nSHWND contains the window handle of FP DOS window
local lnprocID
lnprocID = 1
DECLARE INTEGER GetWindowThreadProcessId IN user32 INTEGER, INTEGER@
GetWindowThreadProcessId(THISFORM.nSHWND, @lnprocID)
thisform.set_low_priority(lnprocID)
*** set_low_priority() form method
LPARAMETER tnProcess_id
#DEFINE THREAD_BASE_PRIORITY_MIN -2
#DEFINE THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
DECLARE SHORT SetThreadPriority in kernel32 INTEGER hThread, INTEGER nPriority
SetThreadPriority(tnProcess_id, THREAD_PRIORITY_LOWEST)
Note that I very rarely work with Win API calls... :)
>API Text View has the constants you need.
>
>#DEFINE THREAD_BASE_PRIORITY_MIN -2
>#DEFINE THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
>
>For VC++ users, it is in the WINNT.H include file.
>
>>>>Hi All,
>>>>
>>>>I need to programmatically minimize the DOS application window and set its priority to low from VFP app. I assume I can do it with SendMessage() API function. Any body knows the constants I should use for that?(or better the exact syntax :)
>>>
>>>What is "the DOS application window"? Are you running a separate program from Visual FoxPro? If so, you can call a separate program, without opening a DOS prompt, just with RUN /n.
>>>
>>>Hilmar.
>>
>>Hi Hilmar,
>>
>>Yes, my VFP app runs FoxPro 2.5 DOS app with RUN /N1 ... command.
>>But then I need to minimize that FP DOS window and set its priority to low. (analog to DOS command
>>
>>START /MIN /LOW foxprox.exe myprog.fxp )
>>
>>I have the window handle and its Thread Process Id.
>>I found out that to set priority to low I can use SetThreadPriority() API function with THREAD_PRIORITY_LOWEST constant but I can't find that constant value and can't find the .H file to see how it is declared.
Nick Neklioudov
Universal Thread Consultant
3 times Microsoft MVP - Visual FoxPro
"I have not failed. I've just found 10,000 ways that don't work." - Thomas Edison