Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to minimize window and set low priority through API?
Message
General information
Forum:
Visual FoxPro
Category:
Windows API functions
Miscellaneous
Thread ID:
00527416
Message ID:
00527505
Views:
53
Hi Nick,
The syntax is correct but the parameter is not. < s >

You need to pass in a handle to the thread not the thread ID. Use the OpenThread function and pass in the thread ID retreived by GetWindowThreadProcessID.
#define THREAD_SET_INFORMATION  0x20
declare integer OpenThread in kernel32 integer lnaccess, integer lninherit, integer inthreadID

local lnhthread
lnhthread = OpenThread(THREAD_SET_INFORMATION,0,lnprocID)
I haven't tested this so I'm not sure if it works. However the technique is the same is what I posted concerning killing a process a few of months ago.

HTH.

>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.
Larry Miller
MCSD
LWMiller3@verizon.net

Accumulate learning by study, understand what you learn by questioning. -- Mingjiao
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform