我想测试 *.ico 图像是否是 PHP 中的有效图标。我尝试使用 getimagesize 函数,但它不支持 ICO 文件。
在尝试实现"打开方式"功能时,我遇到了从UWP应用程序中提取图标的问题.因此,在收到推荐的应用程序列表以便在SHAssocEnumHandlers的帮助下打开特定文件之后,我试图在IAssocHandler :: GetIconLocation和classic的帮助下为每个应用程序提取图标ExtractIcon()
.例如,像Paint这样的程序一切正常.我有绘制二进制文件的完整路径,可以从中提取图标.但是对于像"3D builder","Photos"和其他UWP应用程序这样的应用程序获得的图标位置看起来像@{Microsoft.Windows.Photos_16.511.8630.0_x64__8wekyb3d8bbwe?ms-resource://Microsoft.Windows.Photos/Files/Assets/PhotosAppList.png}
.我尝试了几个不同的API来提取图标,每次收到FILE_NOT_FOUND错误.那么,任何人都可以给我一个提示,在这种情况下哪个功能可用于提取图标?
更新 添加了一些源代码部分以澄清情况:
// m_handlers is a member of type std::vector<CComPtr<IAssocHandler>>
HRESULT FileManager::GetAssocHandlers(const std::wstring& strFileExtension, ASSOC_FILTER filter)
{
HRESULT hr = S_OK;
CComPtr<IEnumAssocHandlers> enumerator;
m_handlers.clear();
hr = SHAssocEnumHandlers(strFileExtension.c_str(), filter, &enumerator);
if (SUCCEEDED(hr))
{
for (CComPtr<IAssocHandler> handler;
enumerator->Next(1, &handler, nullptr) == S_OK;
handler.Release())
{
m_handlers.push_back(handler);
}
}
return hr;
}
HRESULT FileManager::GetAssociatedPrograms(BSTR bstrFileName, BSTR* bstrRet)
{
...
hr = GetAssocHandlers(strFileExtension, ASSOC_FILTER_RECOMMENDED);
if (SUCCEEDED(hr))
{
...
for …
Run Code Online (Sandbox Code Playgroud) 我在通知中显示的图标遇到了麻烦。我浏览了材料设计页面中的图标和Notification doc。
我使用了BMP 256颜色格式的不同比例:360px,144px,48px,24px 16px都继续显示白色块。
我将格式更改为PNG,使用了144px(在代码中使用的名称为“ ic_notify_icon”),仍然没有运气。
//Global
private NotificationManager mNotifyManager ;
private Notification mNotify;
private void initialize() {
mNotifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder mNotificationBuilder = new Notification.Builder(this);
mNotificationBuilder.setSmallIcon(R.mipmap.ic_notify_icon);
mNotificationBuilder.setContentTitle("A Title here");
mNotificationBuilder.setContentText("Some content text here");
mNotify = mNotificationBuilder.build();
ShowNotify();
}
private void ShowNotify(){
//...some code here
mNotifyMan.notify(0, mNotify);
//...some code here
}
Run Code Online (Sandbox Code Playgroud)
有什么建议么?
附言:我看了这篇文章,同样的问题,但我觉得它没有帮助/用处,或者我只是不理解要求...
我正在使用ExtractIconEx
提取图标句柄(以后再使用它们):
ExtractIconEx("c:\\progra~1\\winzip\\winzip32.exe", 0, &hIconLarge, &hIconSmall, 1);
Run Code Online (Sandbox Code Playgroud)
我将句柄存储在一个对象中,然后使用图标句柄DrawIcon
.当对象被释放时,我通过破坏两个句柄DestroyIcon
.
我的问题:是否保证我的应用程序可以使用并拥有这两个句柄(因为它的整个生命周期),或者我应该CopyIcon
用于此目的?
我正在为Rainmeter使用两个批处理文件,一个用于隐藏所有图标,然后启动Rainmeter,另一个用于显示所有图标,然后退出Rainmeter以使我的桌面恢复正常。
我的最终目标是使这两个批处理文件成为任务栏上的按钮,单击这些按钮可以切换桌面的外观。
到目前为止,我只有两个批处理文件,但它们所做的只是显示和隐藏桌面图标。(我在网上找到了代码,因为我自己无法编写代码)
show.bat
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /V HideIcons /T REG_DWORD /D 0 /F
taskkill /f /im explorer.exe
start explorer.exe
Run Code Online (Sandbox Code Playgroud)
hide.bat
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /V HideIcons /T REG_DWORD /D 1 /F
taskkill /f /im explorer.exe
start explorer.exe
Run Code Online (Sandbox Code Playgroud)
因此,我发现的代码可以正常工作,但比手动隐藏桌面图标要流畅得多……唯一的问题是,当我运行show.bat时,我的图标又回到了我不希望它们进入的位置。
如何使批处理文件更顺畅地显示/隐藏图标,以及如何不使图标四处移动?
PS:只是想强调一下,我真的不知道我发现的代码是如何工作的,因此您可能必须使用ELI5。
我正在使用谷歌的材料图标网站的一些图标.他们提供了从mdpi到xxxhdpi的图标.那些ldpi设备呢?
我在 Android Studio 中运行我的应用程序,它在 android 手机中创建了两个图标副本。
第一个图标以登录页面开始,第二个图标以打开用于扫描条形码的相机开始。
如何在安卓手机中只创建一个图标? 在此处输入图片说明
我不确定是否已经存在这样的问题并且可能重复这个问题,但我想知道如何将SVG文件集合制作成与FontAwesome的JS完全相同的东西?
我想用所有的图标从这个包,并使其可被称为和HTML一样使用FontAwesome的JS例如<i class="icon-leaf"></i>
,<i class="icon-sun"></i>
或<i class="icon-rainbow"></i>
.我见过一些在线工具,如https://icomoon.io/app/或http://fontello.com/,但这并不是我想要做的.我不需要css或webfonts(eot,woff等).我只想像上面的FontAwesome的js一样包含.js.
我在尝试突出显示更改其图标的'标签'时遇到问题,好吧,因此当为一个jLabel调用MouseEntered事件时,每个附近标签的事件也被调用并且他们的图标正在被更改.我试图通过使用变量来拒绝更改其他jLabel图标来禁用它,但它保持相同,就像它在同一时刻被调用而不让程序在变量中存储值并执行检查时,这是代码:
private int OverlayButton = -1;
private void jLabel1MouseEntered(java.awt.event.MouseEvent evt) {
SetButton( 1 );
}
private void jLabel1MouseExited(java.awt.event.MouseEvent evt) {
ResetButton( 1 );
}
private void jLabel2MouseEntered(java.awt.event.MouseEvent evt) {
SetButton( 2 );
}
private void jLabel2MouseExited(java.awt.event.MouseEvent evt) {
ResetButton( 2 );
}
private void jLabel3MouseEntered(java.awt.event.MouseEvent evt) {
SetButton( 3 );
}
private void jLabel3MouseExited(java.awt.event.MouseEvent evt) {
ResetButton( 3 );
}
public void SetButton( int button ) {
if( OverlayButton == -1 ) {
OverlayButton = button;
System.out.println( "SetButton method | …
Run Code Online (Sandbox Code Playgroud)