Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Free Pascal
»
Windows
(Moderators:
FPK
,
Tomas Hajny
) »
[Solved]How to programmatically determine if an external .exe has embedded icons
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
IRC channel
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
VAR RECORD doesn't work?
by
TRon
[
Today
at 11:39:59 am]
unit not found (StdCtrls)
by
munair
[
Today
at 10:55:27 am]
Lazarus and XML
by
Bart
[
Today
at 09:38:45 am]
drop picture from browser
by
Handoko
[
Today
at 07:50:10 am]
console app window contro...
by
TRon
[
Today
at 07:46:29 am]
Searchkey Tdbf
by
Handoko
[
Today
at 05:56:02 am]
LAMW - upload file failed...
by
Mongkey
[
Today
at 05:20:23 am]
Encapsulating existing fu...
by
TRon
[
Today
at 05:16:22 am]
FPImageException while l...
by
TRon
[
Today
at 03:10:14 am]
Make visual components no...
by
sstvmaster
[September 30, 2023, 11:37:48 pm]
Scrolling TStringGrid
by
jamie
[September 30, 2023, 11:01:01 pm]
Large system, i2C to go w...
by
ccrause
[September 30, 2023, 08:52:34 pm]
[ solved ] drawn lines no...
by
Jumbo
[September 30, 2023, 12:00:30 pm]
ZenGL Update +android + M...
by
Seenkao
[September 30, 2023, 12:16:22 am]
Notarization under macOS ...
by
TRon
[September 29, 2023, 11:10:27 pm]
Image not shown after use...
by
Jumbo
[September 29, 2023, 10:14:11 pm]
Saving a Form state (rela...
by
Curt Carpenter
[September 29, 2023, 07:46:53 pm]
Poor optimization of cons...
by
440bx
[September 29, 2023, 06:55:50 pm]
Accessing JSON data from ...
by
magleft
[September 29, 2023, 02:22:30 pm]
Operator not Overloaded E...
by
cdbc
[September 29, 2023, 01:15:28 pm]
Can't hide main window
by
zeljko
[September 29, 2023, 08:16:40 am]
“case (a,b) of...” doesn’...
by
440bx
[September 29, 2023, 08:02:32 am]
sslsockets, TSSLSocketHan...
by
r.lukasiak
[September 29, 2023, 07:55:25 am]
Cross platform DirectoryW...
by
r.lukasiak
[September 29, 2023, 07:44:18 am]
Passing TDate parameter i...
by
Arskin_Fertrubble
[September 29, 2023, 03:54:53 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: [Solved]How to programmatically determine if an external .exe has embedded icons (Read 536 times)
Ten_Mile_Hike
New Member
Posts: 27
[Solved]How to programmatically determine if an external .exe has embedded icons
«
on:
August 29, 2023, 06:50:36 pm »
Hi,
Simplest code to determine presence of embedded icon. NO NEED TO EXTRACT, just looking for presence
Thank You
«
Last Edit: August 29, 2023, 11:25:55 pm by Ten_Mile_Hike
»
Logged
Fibonacci
Full Member
Posts: 159
#PDK
Re: How to programmatically determine if an external .exe has embedded icons
«
Reply #1 on:
August 29, 2023, 07:02:52 pm »
You are in luck, I happen to have such code
Code: Pascal
[Select]
[+]
[-]
uses
Windows
;
function
resenumtypes
(
hModule
:
HMODULE
;
lpType
:
LPSTR
;
lParam
:
LONG_PTR
)
:
BOOL
;
stdcall
;
begin
result
:
=
true
;
if
lpType
=
RT_ICON
then
begin
PBoolean32
(
lParam
)
^
:
=
true
;
result
:
=
false
;
//stop enumerating
end
;
end
;
var
h
:
hwnd
;
has_icon
:
boolean
=
false
;
begin
h
:
=
LoadLibraryEx
(
'C:\Windows\explorer.exe'
,
0
,
LOAD_LIBRARY_AS_IMAGE_RESOURCE
+
LOAD_LIBRARY_AS_DATAFILE
)
;
if
h >
0
then
begin
EnumResourceTypes
(
h
,
@
resenumtypes
,
LONG_PTR
(
@
has_icon
)
)
;
writeln
(
'has icon? '
,
has_icon
)
;
end
else
begin
writeln
(
'cant open file'
)
;
end
;
readln
;
end
.
Logged
rvk
Hero Member
Posts: 5490
Re: How to programmatically determine if an external .exe has embedded icons
«
Reply #2 on:
August 29, 2023, 07:10:30 pm »
Quote from: Fibonacci on August 29, 2023, 07:02:52 pm
You are in luck, I happen to have such code
I'm not sure if ANY icon is what is asked for or the actual program icon.
Your code looks for ANY icon (of I'm not mistaken)?
You can use ExtractIconEx for the actual program icon.
https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-extracticonexa
You can probably use the ExtractIcon function for this.
Logged
Fibonacci
Full Member
Posts: 159
#PDK
Re: How to programmatically determine if an external .exe has embedded icons
«
Reply #3 on:
August 29, 2023, 07:13:45 pm »
He didn't specify it has to be MAINICON
Logged
rvk
Hero Member
Posts: 5490
Re: How to programmatically determine if an external .exe has embedded icons
«
Reply #4 on:
August 29, 2023, 07:21:53 pm »
Quote from: Fibonacci on August 29, 2023, 07:13:45 pm
He didn't specify it has to be MAINICON
No (s)he didn't but seeing that only the presence is requested it would make sense it would be the MAINICON.
Anyway, now both methods are documented in this topic
Logged
Ten_Mile_Hike
New Member
Posts: 27
Re: How to programmatically determine if an external .exe has embedded icons
«
Reply #5 on:
August 29, 2023, 11:28:08 pm »
Thank You
Logged
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Free Pascal
»
Windows
(Moderators:
FPK
,
Tomas Hajny
) »
[Solved]How to programmatically determine if an external .exe has embedded icons
TinyPortal
© 2005-2018