日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET CF WM上创建快捷方式

發布時間:2025/5/22 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET CF WM上创建快捷方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WM設備上本身就支持創建快捷方式,在菜單上選擇“復制”,然后其他地方選擇“粘貼快捷方式”皆可。 可有時我們需要為用戶提供一種功能,讓用戶可以自己選擇是否在開機時啟動,這是就需要我們開發人員為其提供操作了。
當然,在.NET CF 上為WM創建快捷方式是件很容易的事情。這里提供兩種方式:
方法一: 通過P/Inovke調用系統API ?- ?SHCreateShortcut或SHCreateShortcutEx Code
DWORD?WINAPI?SHCreateShortcut(
??LPTSTR?szShortcut,????
//?快捷方式路徑,非空
??LPTSTR?szTarget???????//?需要被創建快捷方式的路徑,可以包括路徑和參數
);

DWORD?WINAPI?SHCreateShortcutEx(
??LPTSTR?lpszDir,???????
//?快捷方式路徑,非空
??LPTSTR?lpszTarget,????//?需要被創建快捷方式的路徑,可以包括路徑和參數
??LPTSTR?szShortcut,????//?返回唯一快捷方式名,?如果不想返回設置為NULL
??LPDWORD?lpcbShortcut??//?快捷方式允許的最大長度。如果快捷方式名小于該長度,則返回正確長度。如果不想返回則設置為NULL
);

BOOL?SHCreateShortcutExample()
{
????
//?Create?a?shortcut?called?myAppShortcut.lnk,?
????
//?that?links?to?the?target?file?in?\Windows\Program?Files,?named?myApp.exe.
????
//?Place?the?shortcut?in?the?folder?\Windows.
????return?SHCreateShortcut(TEXT("\\Windows\\myAppShortcut.lnk"),?TEXT("\\Windows\\Program?Files\\myApp.exe"));
}

BOOL?SHCreateShortcutExExample()
{
????
//?Create?a?shortcut?to?the?file?\Windows\Program?Files\myApp.exe
????
//?in?\Windows\myPath,?with?a?maximum?allowable?shortcut?name?length?of?64.
????
//?If?successful,?myAppShortcut?will?contain?the?name?of?the?shortcut.

????DWORD?maxLen?????????
=?64;
????LPTSTR?myAppShortcut?
=?new?TCHAR[maxLen?+?1];

????
return?SHCreateShortcutEx(TEXT("\\Windows\\MyPath"),?
??????????????????????????????TEXT(
"\\Windows\\Program?Files\\myApp.exe"),
??????????????????????????????myAppShortcut,
??????????????????????????????
&maxLen);
}


.NET CF c# 調用
????????[DllImport("coredll.dll",?EntryPoint?=?"SHCreateShortcut")]
????????
private?static?extern?bool?SHCreateShortcut(string?shortcut,?string?target);

????????
private?void?Btn_CreateShortCut_Click(object?sender,?EventArgs?e)
????????{
????????????SHCreateShortcut(
@"\Windows\StartUp\"?+?GetApplicationName()?+?".lnk",
????????????????
"\""?+?GetApplicationFullName()?+?"\"");
????????}

方法二: 打開一個WM上的后綴名為.lnk的文件,查看其中的格式,如下: {目標路徑包含字符數}#"{目標路徑和命令}" 48#"\Program Files\CreateShortCut\CreateShortCut.exe" 說明: 如果目標路徑包含空格,則要用2個引號把路徑包起來,當然推薦是在任何時候都是用2個引號把路徑包含進來。您可以去掉引號試試! 我們可以按照該格式來定義自己的快捷方式函數: Code
????????///?<summary>
????????
///?創建進程快捷方式
????????
///?說明:?需要注意該函數和系統提供API在target參數輸入的不同。如果target中含有空格符,
????????
///?那么需要在路徑外使用2個引號""將整個路徑個包含。
????????
///?</summary>
????????
///?<param?name="shortcut">快捷方式路徑</param>
????????
///?<param?name="arguments">參數</param>
????????
///?<param?name="target">需要被創建快捷方式的文件</param>
????????
///?<returns>true?or?false</returns>
????????public?bool?myCreateShortCut(string?shortcut,?string?arguments,?string?target)
????????{
????????????FileStream?fs?
=?null;
????????????
try
????????????{
????????????????
bool?bQuoted?=?false;
????????????????target?
=?target.Trim();
????????????????
//?檢查字符串中是否還有空格
????????????????if?(target.IndexOf('?')?>?-1)
????????????????????bQuoted?
=?true;

????????????????
int?len?=?target.Length;
????????????????
string?link?=?"";
????????????????
//?有空格,則在路徑前后添加引號
????????????????if?(bQuoted)
????????????????????link?
=?"\""?+?target?+?"\"";
????????????????
????????????????
//?判斷參數是否為空
????????????????if?(!string.IsNullOrEmpty(arguments))
????????????????{
????????????????????link?
+=?("?"?+?arguments);
????????????????????
//?記得要加上路徑和參數中間的空格
????????????????????len?+=?(arguments.Length?+?1);
????????????????}

????????????????
//?寫入信息
?? ? ? ? ? ? ? ?fs?
=?new?FileStream(shortcut,?FileMode.Create,?FileAccess.Write,FileShare.ReadWrite);
????????????????
if?(File.Exists(shortcut))
????????????????{
????????????????????
using?(StreamWriter?sw?=?new?StreamWriter(fs))
????????????????????{
????????????????????????sw.WriteLine(len.ToString()?
+?"#"?+?link);
????????????????????????sw.Close();
????????????????????????fs.Close();
????????????????????????
return?true;
????????????????????}
????????????????}
????????????????fs.Close();
????????????????
return?false;
????????????}
????????????
catch
????????????{
????????????????fs.Close();
????????????????
return?false;
????????????}
????????}

????????
//?調用,注意與方法一的不同
????????private?void?Btn_MyCreateShortCut_Click(object?sender,?EventArgs?e)
????????{
????????????myCreateShortCut(
@"\Windows\StartUp\"?+?GetApplicationName()?+?".lnk",
????????????????
"",
????????????????GetApplicationFullName());
?? ? ? ?}

好了,所有工作完成! 如下截圖



-------------------- 例子下載: CreateShortCut.rar





--------------------------------------------------

李森?– listen
E-mail:??lisencool@gmail.com

聲明:
這里集中了在WinCEWindows Mobile開發中的一些基本常識。我很樂意和大家分享,也希望大家提出意見,并給我投稿,我會第一時間替您發表并署上您的大名!

Announce:
Here collects general knowledge on WinCE and Windows mobile. I 'm very glad to share them with all friends, and also hope you can share your problems and opinions and contribute articles to me to share with others. I'll publish your articles and sign your name at the first time.

??

轉載于:https://www.cnblogs.com/Lisen/archive/2009/08/13/1544917.html

總結

以上是生活随笔為你收集整理的.NET CF WM上创建快捷方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。