Главная страница
    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.042 c
1-1121323224
Руслана
2005-07-14 10:40
2005.07.31
Объясните почему


8-1112125830
mar-evg
2005-03-29 23:50
2005.07.31
Вопросец по векторному редактору


3-1119431037
gaval
2005-06-22 13:03
2005.07.31
отобразить результат запроса


14-1120986439
NewWonder
2005-07-10 13:07
2005.07.31
Как сделать счётчик скачиваний файла?


14-1120591020
Гаврила
2005-07-05 23:17
2005.07.31
Код да Винчи





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