Tôi đang cố tạo một lối tắt cho một thư mục theo chương trình. Tôi đã tìm thấy rất nhiều ví dụ, nhưng không có ví dụ nào xuất hiện thực sự.C# lập trình tạo lối tắt tới thư mục không phải lúc nào cũng hoạt động
tôi quan sát ba kết quả khác nhau về tính chất các phím tắt sản xuất của:
Các Loại Shortcut của file được gán là "Shortcut (.lnk)" mà gây ra hộp thoại Open With để bật lên yêu cầu tôi đính kèm một phần mở rộng cho nó.
Loại lối tắt thuộc tính tệp được chỉ định là "Tệp" hoàn toàn không có gì khi nhấp đúp.
Hoặc cuối cùng là khóa học ưa thích của tôi ... loại Lối tắt thuộc tính tệp được gán là: "Thư mục tệp" hoạt động như bình thường.
Đây là mã tôi hiện đang sử dụng ... Tôi đã thử một vài biến thể này.
bool IsExists = false;
string icon = appPath + "Welcome.ico";
// Their is a difference to local and ClickOnce App locations... this compensates for it
IsExists = System.IO.File.Exists(icon);
if (!IsExists)
{
icon = appPath + @"bin\Debug\Welcome.ico";
}
var desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
var target = (Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Artronix\Welcome To FreightWare Online\").Replace(@"\","/");
IWshShortcut shortcut;
var wshShell = new WshShellClass();
shortcut = (IWshShortcut)wshShell.CreateShortcut(Path.Combine(desktop, @"FreightWare Resources.lnk"));
shortcut.IconLocation = icon;
shortcut.TargetPath = Path.GetFullPath(target);
shortcut.Save();
Tôi nghi ngờ appPath là thủ phạm với nhiều thông tin này. Sử dụng nửa sau của mã của bạn (và sử dụng tập tin .ico của riêng tôi), tôi luôn nhận được kết quả thứ ba. Tôi chỉ đạt được kết quả đầu tiên khi đường dẫn đích không tồn tại. Nếu bạn có thể thu hẹp theo điều kiện nào thì kết quả khác nhau, điều đó có thể giúp – panhandel
Đây là appPath: chuỗi riêng appPath = System.AppDomain.CurrentDomain.BaseDirectory; Sự khác biệt nằm ở thực tế là nếu tôi cài đặt ứng dụng này cục bộ thông qua InstallShield hoặc VS nó sẽ cài đặt tệp biểu tượng trong cùng thư mục với appPath ... nhưng khi tôi chạy một cài đặt chỉ ClickOnce Web vì lý do nào đó, hãy thêm một thư mục bin và Debug khác trong thư mục appPath ... do đó câu lệnh if nếu không tìm thấy trong appPath thì hãy nhìn vào bên trong thư mục mở rộng. Cũng lưu ý rằng biểu tượng luôn hiển thị bên trong phím tắt nên tôi biết nó đang tìm đường dẫn chính xác. –
Tôi rất cám dỗ để downvote, chỉ vì bạn đang yêu cầu upvotes. Tôi khá chắc chắn có một quy tắc chống lại điều đó ở đâu đó, ngoài việc nó là một giả mạo internet rõ ràng. – Mels