2016-09-19 65 views
1

我已經爲應用程序運行時出現在任務欄上的圖標執行此操作。現在,我正在嘗試爲Windows上的快捷方式圖標或應用程序圖標執行此操作(查看所有Windows程序/應用程序時看到的圖標)。如何以編程方式將.ico文件分配給Access數據庫的桌面快捷方式

我讀過這可以用.dll文件完成,但我對此不感興趣。

我的直覺是,這實際上不可能在.mdb中使用VBA。希望我錯了。尋找可能解決方案的討論。

謝謝。

+0

圖標顯示基於與該文件關聯的應用程序延期。改變圖標的​​目的是什麼? – Comintern

+0

這是一個商業產品,我們更願意使用我們的徽標而不是訪問徽標。我們目前通過右鍵單擊快捷方式並手動更改。我們正在尋找一個編程解決方案 –

+0

你見過這個嗎? http://www.pcreview.co.uk/threads/change-icon-of-a-shortcut-with-vba.976596/ – OpiesDad

回答

2

窗口快捷方式確實可以爲該快捷方式指定一個ico文件。雖然「經常」他們指向快捷方式的.exe和快捷方式拉出ico內部的.exe,OFTEN你會,並可以指定ico的快捷方式。而且,因爲在所有情況下,你的快捷方式實際上會指向msaccess.exe,那麼你必須創建一個指定了ico的自定義快捷方式。您甚至可以手動構建快捷方式,指定ico,然後使用VBA將該快捷方式複製到桌面(假設應用程序的路徑名始終相同 - 通常不會 - 如果路徑名將從用戶更改爲用戶,那麼安裝程序是解決此問題的唯一實用方法)。

我不確定您是否可以在VBA中設置/創建快捷方式,但我建議您採用Windows安裝程序(或免費的Inno)。這些安裝程序將在桌面上創建快捷方式,並允許您指定圖標。

一個自由和流行的安裝程序(INNO)可以在這裏找到:

http://www.jrsoftware.org/isinfo.php

通過VBA代碼設置你的桌面上的圖標和快捷鍵和訪問沒有什麼意義,因爲用戶不會有尚未運行你的應用程序/ VBA代碼來設置快捷方式!所以爲此使用安裝程序。

+0

謝謝。我會研究這個安裝程序。偶然,你知道程序高級安裝程序嗎?我最近一直在使用它,它似乎有能力。對我來說,似乎安裝程序是一個安裝程序;對此並不多。有什麼想法嗎? –

2

如果你正在尋找一種方式來創建VBA的快捷方式,你可以使用WshShell對象的CreateShortcut方法,例如,

Option Compare Database 
Option Explicit 

Sub CreateDesktopShortcutWithIcon() 
    ' ref - https://msdn.microsoft.com/en-us/library/xsy6k3ys(v=vs.84).aspx 
    Dim WshShell As Object 
    Set WshShell = CreateObject("WScript.Shell") 
    Dim strDesktop As String 
    strDesktop = WshShell.SpecialFolders("Desktop") 
    Dim oShellLink As Object 
    Set oShellLink = WshShell.CreateShortcut(strDesktop & "\My Shortcut.lnk") 
    oShellLink.TargetPath = "C:\Users\Public\UCanAccessTest.accdb" 
    oShellLink.WindowStyle = 1 
    'oShellLink.Hotkey = "Ctrl+Alt+f" 
    'oShellLink.IconLocation = "notepad.exe, 0" ' for embedded icon 
    oShellLink.IconLocation = "C:\__tmp\MIME\foo.ico" ' for .ico file 
    oShellLink.Description = "My shortcut created by VBA" 
    oShellLink.WorkingDirectory = strDesktop 
    'oShellLink.Arguments = "C:\myFile.txt" 
    oShellLink.Save 
End Sub 
相關問題