Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

Как получить список программ свернутых в 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
1-1121347666
Zak3D[@Tm]
2005-07-14 17:27
2005.07.31
Взаимосвязь модулей приложения.


1-1121174559
Cl1254
2005-07-12 17:22
2005.07.31
Interbase


4-1117697038
Cosinus
2005-06-02 11:23
2005.07.31
Как опрделить по имени файла в "Избранном" адрес в Internet?


3-1119375561
Prov
2005-06-21 21:39
2005.07.31
результат SQL-запроса


14-1120559083
smak
2005-07-05 14:24
2005.07.31
компонент XML





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский