хм ваш пример хорошо работает! Но в моей программе что-то не так:
Код:
function TAppThread.EnumThreadWndProc(hwnd: THandle; lParam: LPARAM): Boolean; stdcall;
var
len: Integer;
classname: array [0..$ff] of Char;
begin
Result:=True;
if IsWindowVisible(hwnd) then
begin
len:=GetClassName(hwnd, @classname, SizeOf(classname));
if len>0 then
SetWindowText(hwnd,PChar(AppInfo.AppUserCaption));
end;
end;
{ TAppThread }
procedure TAppThread.Execute;
var
i: integer;
wd:HWND;
begin
while AppInfo.AppStart do //пака стоит галочка "запуск при старте HLR"
begin
ZeroMemory(@SI, SizeOf(SI)); //нулируем данные о процессе
with PI do
begin
SetProcessAffinityMask(hProcess, AppInfo.AppCPUAffinity); //приоритет процесса
WaitForSingleObject(hProcess, INFINITE); //Ждём завершения программы бесконечно..
CloseHandle(hProcess); //закрываем хендл процесса
CloseHandle(hThread); //закрываем хендл потока
end;
CreateProcess(
PChar(AppInfo.AppExe),
PChar(AppInfo.AppParamStr), nil, nil,
False, GetPriority(AppInfo.AppPriority), nil,
PChar(ExtractFileDir(AppInfo.AppExe)), SI, PI);
EnumThreadWindows(PI.dwThreadId, @EnumThreadWindows, 0);
Я пытаюсь поместить текст из AppInfo.AppUserCaption в заголовок программы, но почему-то ничего не происходит!
Хатя на простом примере , отдельно созданном все нормально. пытаюсь задействовать на калькуляторе. (На примере все ок работает с калькулятором)