#LVM_GETITEMTEXT auf DesktopIcons anwenden

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

#LVM_GETITEMTEXT auf DesktopIcons anwenden

Beitrag von bingo »

Code: Alles auswählen

#LVM_GETTITEMCOUNT = $1000 + 4

hDesktop=GetDesktopWindow_();
hDesktop=FindWindowEx_(hDesktop, 0, "Progman", "Program Manager");
hDesktop=FindWindowEx_(hDesktop, 0, "SHELLDLL_DefView", 0);
hDesktop=FindWindowEx_(hDesktop, 0, "SysListView32", 0); 
  
Debug SendMessage_(hDesktop, #LVM_GETTITEMCOUNT, 0, 0) ;anzahl der desktop icons
aber wie weiter mit ...

lvi.LV_ITEM
lvi\iSubItem
lvi\pszText
lvi\cchTextMax
lvi\mask = #LVIF_TEXT

SendMessage_(hDesktop, #LVM_GETITEMTEXT, iconindex, @lvi)

... um den namen/label zu vergleichen ?
1:0>1
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

hi,
ich hab es so gelöst:

Code: Alles auswählen

EnableExplicit
Define h, pid, ItemCount, hProcess, smItem, smName, item.LVITEM, Written, i, text$
h = FindWindow_("Progman",0)
h = FindWindowEx_(h, 0, "SHELLDLL_defVIEW",0)
h = FindWindowEx_(h, 0, "SysListView32",0)
GetWindowThreadProcessId_(h, @pid)
ItemCount = SendMessage_(h, #LVM_GETITEMCOUNT, 0, 0)
hProcess = OpenProcess_(#PROCESS_VM_OPERATION | #PROCESS_VM_READ | #PROCESS_VM_WRITE, 0, pid)
smItem = VirtualAllocEx_(hProcess,0,SizeOf(LVITEM),#MEM_RESERVE | #MEM_COMMIT, #PAGE_READWRITE)
smName = VirtualAllocEx_(hProcess,0,40,#MEM_RESERVE | #MEM_COMMIT, #PAGE_READWRITE)
item\mask = #LVIF_TEXT
item\cchTextMax = 40 
item\pszText = smName
WriteProcessMemory_(hProcess, smItem, item, SizeOf(LVITEM), @Written)
For i = 0 To ItemCount - 1
  SendMessage_(h, #LVM_GETITEMTEXT, i, smItem)
  text$ = Space(40)
  ReadProcessMemory_(hProcess, smName, @text$, 40, @Written)
  Debug text$
Next i
VirtualFreeEx_(hProcess, smItem, SizeOf(LVITEM), #MEM_RELEASE)
VirtualFreeEx_(hProcess, smName, 40, #MEM_RELEASE)
CloseHandle_(hProcess)
PureBasic 4.40 (Windows - x86)
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

Beitrag von bingo »

:allright: 8)
1:0>1
Antworten