Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.31;
Скачать: CL | DM;

Вниз

Как получить список программ свернутых в SysTray?   Найти похожие ветки 

 
MacRine   (2005-06-02 21:34) [0]

Господа, подскажите, как получить список программ свернутых в SysTray?


 
VMcL ©   (2005-06-03 00:01) [1]

Штатными средствами - никак.


 
Digitman ©   (2005-06-03 10:08) [2]


> программ свернутых в SysTray


ты сначала уточни, что ты подразумеваешь под этим ..


 
DVM ©   (2005-06-03 10:25) [3]

послать широковещательное сообщение TaskbarCreated и поставить ловушку на WM_COPYDATA окна Shell_TrayWnd, отловив потом там те сообщения, что несут информацию о добавляемых иконках.
Только не все приложения обязаны при получении TaskbarCreated передобавить иконки.


 
Ученик   (2005-06-04 12:26) [4]

>MacRine   (02.06.05 21:34)  

Список ProcessID



uses
 CommCtrl;

function WindowProcessID(aWindow: HWnd): DWord;
begin
 GetWindowThreadProcessID(aWindow, Result)
end;

function FindChild(aParent: HWnd; aClassName: PChar): HWnd;
var
 Child: HWnd;
 szClassName: array[0..255] of Char;
begin
 Child := GetWindow(aParent, GW_CHILD);
 while Child <> 0 do begin
   if GetClassName(Child, szClassName, 255) > 0 then begin
     if StrIComp(szClassName, aClassName) = 0 then
       Result := Child
     else
       Result := FindChild(Child, aClassName);
     if Result <> 0 then Exit
   end;
   Child := GetWindow(Child, GW_HWNDNEXT)
 end;
 Result := 0
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 hProcess: THandle;
 hToolbar, hIconOwner: HWnd;
 ButtonInfo: TTBButtonInfo;
 pButtonInfo: ^TTBButtonInfo;
 i, iCount: Integer;
 dwSize: DWord;
begin
 hToolbar := FindChild(FindWindow("Shell_TrayWnd", ""), "ToolbarWindow32");
 hProcess := OpenProcess(PROCESS_CREATE_THREAD or PROCESS_VM_OPERATION or
             PROCESS_VM_WRITE or PROCESS_VM_READ, False, WindowProcessID(hToolbar));
 if hProcess <> 0 then try
   pButtonInfo := VirtualAllocEx(hProcess, nil, SizeOf(ButtonInfo), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
   try
     FillChar(ButtonInfo, SizeOf(ButtonInfo), 0);
     ButtonInfo.cbSize  := SizeOf(ButtonInfo);
     ButtonInfo.dwMask  := TBIF_LPARAM;
     if WriteProcessMemory(hProcess, pButtonInfo, @ButtonInfo, SizeOf(ButtonInfo), dwSize) then begin
       iCount := SendMessage(hToolbar, TB_BUTTONCOUNT, 0, 0);
       for i := 0 to iCount - 1 do
         if SendMessage(hToolbar, TB_GETBUTTONINFO, i, Integer(pButtonInfo)) <> - 1 then
           if ReadProcessMemory(hProcess, pButtonInfo, @ButtonInfo, SizeOf(ButtonInfo), dwSize) and
              ReadProcessMemory(hProcess, Pointer(ButtonInfo.lParam), @hIconOwner, 4, dwSize) then
             ListBox1.Items.Add(IntToStr(WindowProcessID(hIconOwner)))
     end
   finally
     VirtualFreeEx(hProcess, pButtonInfo, 0, MEM_RELEASE)
   end
 finally
   CloseHandle(hProcess)
 end
end;



 
Anatoly Podgoretsky ©   (2005-06-04 15:44) [5]

Там нет программ.



Страницы: 1 вся ветка

Текущий архив: 2005.07.31;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.038 c
6-1113650941
-[ HAWK ]-
2005-04-16 15:29
2005.07.31
Подключение к инету


1-1121173494
ANB
2005-07-12 17:04
2005.07.31
Как достать список методов объекта ?


1-1121033361
Alekse
2005-07-11 02:09
2005.07.31
Дочерние окна из dll


14-1121026527
Гость__
2005-07-11 00:15
2005.07.31
Банальный вопрос:


9-1113506736
Fords
2005-04-14 23:25
2005.07.31
Физика GLScene





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский