मैं होमग्राउन ऐप के लिए उपयोग करने के लिए ट्री आइकन प्राप्त करना चाहता हूं। क्या किसी को पता है कि छवियों को .icon फ़ाइलों के रूप में निकालने का तरीका कैसे है? मुझे 16x16 और 32x32 दोनों चाहिए, या मैं बस एक स्क्रीन कैप्चर करना चाहता हूं।आप shell32.dll से आइकन कैसे प्राप्त करते हैं?
उत्तर
विजुअल स्टूडियो में, "फ़ाइल खोलें ..." फिर "फ़ाइल ..." चुनें। फिर Shell32.dll चुनें। एक फ़ोल्डर पेड़ खोला जाना चाहिए, और आपको "आइकन" फ़ोल्डर में आइकन मिलेंगे।
एक आइकन सहेजने के लिए, आप फ़ोल्डर पेड़ में आइकन पर राइट-क्लिक कर सकते हैं और "निर्यात" चुन सकते हैं।
जब मैं इसका उपयोग करता हूं तो मेरे पास केवल यह फ़ोल्डर पेड़ होता है और सभी आइकन सूचीबद्ध होते हैं लेकिन पूर्वावलोकन के बिना और शीर्षक सहायक नहीं होते हैं (1, 10, 1001, ..) क्या पूर्वावलोकन पाने का कोई तरीका है या मैं वास्तव में सभी प्रतीक खोलना है? – Bagorolin
@ बागोरोलिन यहां एक आसान कुंजी है http://www.glennslayden.com/code/shell32_icons.jpg –
** नोट ** ** Googlers के लिए, यह अब ** VS2017 ** में काम नहीं करता है, बस अपवाद विवरण विंडो की तरह डीबगिंग – MickyD
एक और विकल्प ResourceHacker जैसे टूल का उपयोग करना है। यह सिर्फ आइकन से भी अधिक तरीके से संभालता है। चीयर्स!
के दौरान मैंने संसाधन हैकर का उपयोग करने की कोशिश की, लेकिन प्रत्येक आइकन में 12 डुप्लिकेट हैं (विभिन्न आकारों के साथ)। – HighTechProgramming15
Resources Extract एक और उपकरण है जो बहुत सारे डीएलएल, बहुत आसान आईएमओ से रिक्त रूप से आइकन ढूंढ पाएगा।
बस डीआरएल को इरफान व्यू के साथ खोलें और परिणाम को .gif या .jpg के रूप में सहेजें।
मुझे पता है कि यह प्रश्न पुराना है, लेकिन यह "वेब से निकालने वाले आइकन" से दूसरी Google हिट है, मैं अपने वर्कस्टेशन पर कुछ भी इंस्टॉल करने से बचना चाहता था और मुझे याद आया कि मैं इरफान व्यू का उपयोग करता हूं।
यदि आप लिनक्स पर हैं, तो आप gExtractWinIcons के साथ विंडोज डीएलएल से आइकन निकाल सकते हैं। यह gextractwinicons
पैकेज में उबंटू और डेबियन में उपलब्ध है।
इस ब्लॉग आलेख में screenshot and brief explanation है।
आप फ्रीवेयर Resource Hacker डाउनलोड कर सकते हैं और उसके बाद नीचे दिए गए निर्देशों का पालन करें:
- ओपन किसी भी dll फ़ाइल आप से माउस को खोजने के लिए चाहते हैं।
- विशिष्ट आइकन खोजने के लिए फ़ोल्डर ब्राउज़ करें।
- मेनू बार से, 'action' और फिर 'सहेजें' चुनें।
- .ico फ़ाइल के लिए गंतव्य का चयन करें।
संदर्भ: http://techsultan.com/how-to-extract-icons-from-windows-7/
मैं shell32.dll से आइकन # 238 निकालने के लिए की जरूरत है और दृश्य स्टूडियो या Resourcehacker डाउनलोड करने के लिए नहीं करना चाहता था, इसलिए मैं टेकनेट (धन्यवाद जॉन ग्रेनफेल से PowerShell स्क्रिप्ट की एक जोड़ी मिल गया और # https://social.technet.microsoft.com/Forums/windowsserver/en-US/16444c7a-ad61-44a7-8c6f-b8d619381a27/using-icons-in-powershell-scripts?forum=winserverpowershell पर) ने कुछ ऐसा किया और मेरी आवश्यकताओं के अनुरूप एक नई स्क्रिप्ट (नीचे) बनाई।
मापदंडों मैं में प्रवेश किया (स्रोत DLL पथ, लक्ष्य आइकन फ़ाइल नाम और DLL फ़ाइल के भीतर आइकन इंडेक्स) थे:
C: \ Windows \ System32 \ shell32.dll
C: \ (अपने डेस्कटॉप पर राइट क्लिक करें और चयन अस्थायी \ Restart.ico
मैं आइकन सूचकांक कि मैं # 238 अस्थायी रूप से एक नया शॉर्टकट बनाने के द्वारा परीक्षण और त्रुटि के द्वारा किया गया की जरूरत की खोज की नई -> शॉर्टकट और कैल्क में टाइप करें और दो बार एंटर दबाएं)। फिर नए शॉर्टकट पर राइट-क्लिक करें और गुणों का चयन करें और शॉर्टकट टैब में 'आइकन बदलें' बटन पर क्लिक करें। पथ सी में चिपकाएं: \ Windows \ System32 \ shell32.dll और ठीक क्लिक करें। वह आइकन ढूंढें जिसका आप उपयोग करना चाहते हैं और इसकी अनुक्रमणिका का काम करें। एनबी: इंडेक्स # 2 # 1 के नीचे है और इसके दाईं ओर नहीं है।आइकन इंडेक्स # 5 मेरे विंडोज 7 एक्स 64 मशीन पर कॉलम दो के शीर्ष पर था।
यदि किसी के पास एक बेहतर तरीका है जो समान रूप से काम करता है लेकिन उच्च गुणवत्ता वाले आइकन प्राप्त करता है तो मुझे इसके बारे में सुनना होगा। धन्यवाद, शॉन।
#Windows PowerShell Code###########################################################################
# http://gallery.technet.microsoft.com/scriptcenter/Icon-Exporter-e372fe70
#
# AUTHOR: John Grenfell
#
###########################################################################
<#
.SYNOPSIS
Exports an ico and bmp file from a given source to a given destination
.Description
You need to set the Source and Destination locations. First version of a script, I found other examples but all I wanted to do as grab and ico file from an exe but found getting a bmp useful. Others might find useful
No error checking I'm afraid so make sure your source and destination locations exist!
.EXAMPLE
.\Icon_Exporter.ps1
.Notes
Version HISTORY:
1.1 2012.03.8
#>
Param ([parameter(Mandatory = $true)][string] $SourceEXEFilePath,
[parameter(Mandatory = $true)][string] $TargetIconFilePath
)
CLS
#"shell32.dll" 238
If ($SourceEXEFilePath.ToLower().Contains(".dll")) {
$IconIndexNo = Read-Host "Enter the icon index: "
$Icon = [System.IconExtractor]::Extract($SourceEXEFilePath, $IconIndexNo, $true)
} Else {
[void][Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$image = [System.Drawing.Icon]::ExtractAssociatedIcon("$($SourceEXEFilePath)").ToBitmap()
$bitmap = new-object System.Drawing.Bitmap $image
$bitmap.SetResolution(72,72)
$icon = [System.Drawing.Icon]::FromHandle($bitmap.GetHicon())
}
$stream = [System.IO.File]::OpenWrite("$($TargetIconFilePath)")
$icon.save($stream)
$stream.close()
Write-Host "Icon file can be found at $TargetIconFilePath"
बाकी की तुलना में अधिक उपयोगी उत्तर। – slashp
महान विधि लेकिन यह मेरे लिए काम नहीं करता है। मैं विंडोज 7x64 पर हूं जिस पर स्क्रिप्ट को काम करने की पुष्टि की जाती है। लेकिन मुझे 'System.Drawing.Icon' और' System.Drawing.Bitmap' के लिए 'TypeNotFound' त्रुटियां मिलती हैं। मेरी पीएस-स्क्रिप्ट चलाने की पहली कोशिश है तो शायद मैं कुछ गलत करूँ? –
ठीक है, मुझे बस 'एड-टाइप-एस्सेप्लरनाम सिस्टम' ड्रॉइंग 'निष्पादित करने की आवश्यकता है। –
ऊपर दिए गए समाधान का एक अद्यतन संस्करण यहां दिया गया है। मैंने एक लापता असेंबली जो एक लिंक में दफनाया गया था। नवम्बर इसे समझ नहीं पाएंगे। यह नमूना बिना संशोधन के चलाएगा।
<#
.SYNOPSIS
Exports an ico and bmp file from a given source to a given destination
.Description
You need to set the Source and Destination locations. First version of a script, I found other examples
but all I wanted to do as grab and ico file from an exe but found getting a bmp useful. Others might find useful
.EXAMPLE
This will run but will nag you for input
.\Icon_Exporter.ps1
.EXAMPLE
this will default to shell32.dll automatically for -SourceEXEFilePath
.\Icon_Exporter.ps1 -TargetIconFilePath 'C:\temp\Myicon.ico' -IconIndexNo 238
.EXAMPLE
This will give you a green tree icon (press F5 for windows to refresh Windows explorer)
.\Icon_Exporter.ps1 -SourceEXEFilePath 'C:/Windows/system32/shell32.dll' -TargetIconFilePath 'C:\temp\Myicon.ico' -IconIndexNo 41
.Notes
Based on http://stackoverflow.com/questions/8435/how-do-you-get-the-icons-out-of-shell32-dll Version 1.1 2012.03.8
New version: Version 1.2 2015.11.20 (Added missing custom assembly and some error checking for novices)
#>
Param (
[parameter(Mandatory = $true)]
[string] $SourceEXEFilePath = 'C:/Windows/system32/shell32.dll',
[parameter(Mandatory = $true)]
[string] $TargetIconFilePath,
[parameter(Mandatory = $False)]
[Int32]$IconIndexNo = 0
)
#https://social.technet.microsoft.com/Forums/windowsserver/en-US/16444c7a-ad61-44a7-8c6f-b8d619381a27/using-icons-in-powershell-scripts?forum=winserverpowershell
$code = @"
using System;
using System.Drawing;
using System.Runtime.InteropServices;
namespace System
{
public class IconExtractor
{
public static Icon Extract(string file, int number, bool largeIcon)
{
IntPtr large;
IntPtr small;
ExtractIconEx(file, number, out large, out small, 1);
try
{
return Icon.FromHandle(largeIcon ? large : small);
}
catch
{
return null;
}
}
[DllImport("Shell32.dll", EntryPoint = "ExtractIconExW", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
private static extern int ExtractIconEx(string sFile, int iIndex, out IntPtr piLargeVersion, out IntPtr piSmallVersion, int amountIcons);
}
}
"@
If (-not (Test-path -Path $SourceEXEFilePath -ErrorAction SilentlyContinue)) {
Throw "Source file [$SourceEXEFilePath] does not exist!"
}
[String]$TargetIconFilefolder = [System.IO.Path]::GetDirectoryName($TargetIconFilePath)
If (-not (Test-path -Path $TargetIconFilefolder -ErrorAction SilentlyContinue)) {
Throw "Target folder [$TargetIconFilefolder] does not exist!"
}
Try {
If ($SourceEXEFilePath.ToLower().Contains(".dll")) {
Add-Type -TypeDefinition $code -ReferencedAssemblies System.Drawing
$form = New-Object System.Windows.Forms.Form
$Icon = [System.IconExtractor]::Extract($SourceEXEFilePath, $IconIndexNo, $true)
} Else {
[void][Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$image = [System.Drawing.Icon]::ExtractAssociatedIcon("$($SourceEXEFilePath)").ToBitmap()
$bitmap = new-object System.Drawing.Bitmap $image
$bitmap.SetResolution(72,72)
$icon = [System.Drawing.Icon]::FromHandle($bitmap.GetHicon())
}
} Catch {
Throw "Error extracting ICO file"
}
Try {
$stream = [System.IO.File]::OpenWrite("$($TargetIconFilePath)")
$icon.save($stream)
$stream.close()
} Catch {
Throw "Error saving ICO file [$TargetIconFilePath]"
}
Write-Host "Icon file can be found at [$TargetIconFilePath]"
किसी को भी एक आसान तरीका मांग कर रहा है, तो बस 7zip का उपयोग shell32.dll अनज़िप और फ़ोल्डर .src/आइकन देखने के लिए/
हाँ, मैं 7-ज़िप "खुले संग्रह" फ़ंक्शन का बहुत उपयोग करता हूं। – Niek
7Zip नहीं मिला है, लेकिन WinRAR में यह कोशिश की और यह कहता है कि खोलने के लिए कोई संग्रह नहीं है। – Hashim
shell32.7z का नाम बदलें, फिर इसे 7-ज़िप, पेज़िप, या अपने अन्य एफएवी संपीड़न उपकरण – ronaldwidha
भी इस संसाधन उपलब्ध है, दृश्य स्टूडियो छवि लाइब्रेरी नहीं है , जिसका उपयोग "माइक्रोसॉफ़्ट सॉफ़्टवेयर के साथ दृष्टि से संगत दिखने वाले अनुप्रयोगों को बनाने के लिए किया जा सकता है", संभवतः नीचे दिए गए लाइसेंसिंग के अधीन है। https://www.microsoft.com/en-ca/download/details.aspx?id=35825
- 1. shell32.dll जैसे dll को बनाने के लिए कैसे Icon
- 2. आप मेमोरीस्ट्रीम से स्ट्रिंग कैसे प्राप्त करते हैं?
- 3. आप DatePickerDialog से डेटपिकर कैसे प्राप्त करते हैं?
- 4. VSPackage से आप वर्तमान समाधान निर्देशिका कैसे प्राप्त करते हैं?
- 5. आप जिस तारीख को डेटपर्ट से प्राप्त करते हैं, उस दिन के नाम से आप कैसे परिवर्तित करते हैं?
- 6. आप फ़ंक्शन से "ब्रेक" कैसे करते हैं?
- 7. आप प्रोग्रामिंग रूप से एनएसएसएनयू कैसे प्रदर्शित करते हैं?
- 8. सही "नेटवर्क स्थान" आइकन कैसे चुनें?
- 9. आप PyWin32 के साथ exe फ़ाइल से एम्बेडेड आइकन कैसे लोड करते हैं?
- 10. आप प्रोटोटाइप कैसे करते हैं?
- 11. आप कैसे प्रतिक्रिया करते हैं?
- 12. Magento में आप डेटाबेस नाम कैसे प्राप्त करते हैं?
- 13. आप सभी स्थापित फ़ॉन्ट्स की सूची कैसे प्राप्त करते हैं?
- 14. आप svn diff में पेजर कैसे प्राप्त करते हैं?
- 15. आप PHP में 'रेफरर' हेडर कैसे प्राप्त करते हैं?
- 16. Eclipselink: आप प्रत्येक बंडल में EntityManager कैसे प्राप्त करते हैं?
- 17. आप फ्लास्क पर क्वेरी स्ट्रिंग कैसे प्राप्त करते हैं?
- 18. आप .text सेक्शन में पॉइंटर कैसे प्राप्त करते हैं?
- 19. gen_servers में आप चुनिंदा प्राप्त कैसे करते हैं?
- 20. आप एक क्रिया का भूतकाल कैसे प्राप्त करते हैं?
- 21. आप इवेंटमैचिन कार्यान्वयन में अपवाद कैसे प्राप्त करते हैं?
- 22. यूआईबटन ट्रिगर होने पर आप स्पर्श कैसे प्राप्त करते हैं।
- 23. आप ओरेकल में अधिकतम संभव तिथि कैसे प्राप्त करते हैं?
- 24. Moment.js में, आप वर्तमान वित्तीय तिमाही कैसे प्राप्त करते हैं?
- 25. jQuery/फ़्लोट: आप डेटापॉइंट के निर्देशांक कैसे प्राप्त करते हैं?
- 26. आप vb.net में स्ट्रिंगबिल्डर को कैसे प्राप्त करते हैं?
- 27. आप असेंबली के रूट नेमस्पेस को कैसे प्राप्त करते हैं?
- 28. आप फ़ाइल आकार को सी # में कैसे प्राप्त करते हैं?
- 29. आप जावा में स्क्रीन चौड़ाई कैसे प्राप्त करते हैं?
- 30. सी #: आप कक्षा 'बेस क्लास कैसे प्राप्त करते हैं?
ध्यान दें कि ऐसा करने से लाइसेंस का उल्लंघन होता है। "जबकि सॉफ्टवेयर चल रहा है, आप इसका उपयोग कर सकते हैं लेकिन अपने आइकन, छवियों, ध्वनियों और मीडिया को साझा नहीं कर सकते हैं।" –