欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

關(guān)于SHELLEXECUTEINFO的用法

錢艷冰2年前31瀏覽0評論

關(guān)于SHELLEXECUTEINFO的用法?

Shellexecute的功能是運行一個外部程序(或者是打開一個已注冊的文件、打開一個目錄、打印一個文件等等),并對外部程序有一定的控制。有幾個API函數(shù)都可以實現(xiàn)這些功能,但是在大多數(shù)情況下ShellExecute是更多的被使用的,同時它并不是太復(fù)雜。 返回值: 執(zhí)行成功會返回應(yīng)用程序句柄 返回的HINSTANCE可以將它轉(zhuǎn)換為一個整數(shù)(%d),并比較它的值大于還是小于32或比較它的錯誤代碼 返回值大于32表示執(zhí)行成功 返回值小于32表示執(zhí)行錯誤 返回值可能的錯誤有:=0{內(nèi)存不足} ERROR_FILE_NOT_FOUND=2;{文件名錯誤} ERROR_PATH_NOT_FOUND=3;{路徑名錯誤} ERROR_BAD_FORMAT=11;{EXE文件無效} SE_ERR_SHARE=26;{發(fā)生共享錯誤} SE_ERR_ASSOCINCOMPLETE=27;{文件名不完全或無效} SE_ERR_DDETIMEOUT=28;{超時} SE_ERR_DDEFAIL=29;{DDE事務(wù)失敗} SE_ERR_DDEBUSY=30;{正在處理其他DDE事務(wù)而不能完成該DDE事務(wù)} SE_ERR_NOASSOC=31;{沒有相關(guān)聯(lián)的應(yīng)用程序} 示例: 下面的示例演示如何啟動一個應(yīng)用程序或?qū)⑽臋n加載到其關(guān)聯(lián)的應(yīng)用程序。WindowsAPIShellExecute()函數(shù)是文檔的不同于VisualBasicShell()函數(shù),可以將ShellExecute()函數(shù)傳遞的名稱,它將啟動關(guān)聯(lián)的應(yīng)用程序,然后將文件名傳遞給應(yīng)用程序。 在VisualBasic中開始一個新項目。默認(rèn)情況下,將創(chuàng)建Form1。 將以下代碼添加到Form1的通用聲明部分: OptionExplicit PrivateDeclareFunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhwndAsLong,ByVallpszOpAsString,ByVallpszFileAsString,ByVallpszParamsAsString,ByVallpszDirAsString,ByValFsShowCmdAsLong)AsLong PrivateDeclareFunctionGetDesktopWindowLib"user32"()AsLong ConstSW_SHOWNORMAL=1 ConstSE_ERR_FNF=2& ConstSE_ERR_PNF=3& ConstSE_ERR_ACCESSDENIED=5& ConstSE_ERR_OOM=8& ConstSE_ERR_DLLNOTFOUND=32& ConstSE_ERR_SHARE=26& ConstSE_ERR_ASSOCINCOMPLETE=27& ConstSE_ERR_DDETIMEOUT=28& ConstSE_ERR_DDEFAIL=29& ConstSE_ERR_DDEBUSY=30& ConstSE_ERR_NOASSOC=31& ConstERROR_BAD_FORMAT=11& FunctionStartDoc(DocNameAsString)AsLong DimScr_hDCAsLong Scr_hDC=GetDesktopWindow() StartDoc=ShellExecute(Scr_hDC,"open",DocName,"","C:\",SW_SHOWNORMAL) EndFunction PrivateSubForm_Click() DimrAsLong,msgAsString r=StartDoc("C:\WINDOWS\ARCADE.BMP") Ifr<=32Then'Therewasanerror SelectCaser CaseSE_ERR_FNF msg="Filenotfound" CaseSE_ERR_PNF msg="Pathnotfound" CaseSE_ERR_ACCESSDENIED msg="Accessdenied" CaseSE_ERR_OOM msg="Outofmemory" CaseSE_ERR_DLLNOTFOUND msg="DLLnotfound" CaseSE_ERR_SHARE msg="Asharingviolationoccurred" CaseSE_ERR_ASSOCINCOMPLETE msg="Incompleteorinvalidfileassociation" CaseSE_ERR_DDETIMEOUT msg="DDETimeout" CaseSE_ERR_DDEFAIL msg="DDEtransactionfailed" CaseSE_ERR_DDEBUSY msg="DDEbusy" CaseSE_ERR_NOASSOC msg="Noassociationforfileextension" CaseERROR_BAD_FORMAT msg="InvalidEXEfileorerrorinEXEimage" CaseElse msg="Unknownerror" EndSelect MsgBoxmsg EndIf EndSub 特殊用法: 如果將FileName參數(shù)設(shè)置為“http:”協(xié)議格式,那么該函數(shù)將打開默認(rèn)瀏覽器并鏈接到指定的URL地址。若用戶機器中安裝了多個瀏覽器,則該函數(shù)將根據(jù)Windows9x/NT注冊表中http協(xié)議處理程序(ProtocolsHandler)的設(shè)置確定啟動哪個瀏覽器。 格式一:http://網(wǎng)站域名 如:ShellExecute(Handle,"open","http://; www.neu.edu.cn","","",SW_SHOWNORMAL); 格式二:http://網(wǎng)站域名/網(wǎng)頁文件名 如:ShellExecute(Handle,"open","http://; www.neu.edu.cn/default.htm","","", SW_SHOWNORMAL); 如果將FileName參數(shù)設(shè)置為“mailto:”協(xié)議格式,那么該函數(shù)將啟動默認(rèn)郵件客戶程序,如MicrosoftOutlook(也包括MicrosoftOutlookExpress)或NetscapeMessanger。若用戶機器中安裝了多個郵件客戶程序,則該函數(shù)將根據(jù)Windows9x/NT注冊表中mailto協(xié)議處理程序的設(shè)置確定啟動哪個郵件客戶程序。 格式一:mailto 如:ShellExecute(Handle,"open","mailto:","","",SW_SHOWNORMAL);打開新郵件窗口。 格式二:mailto:用戶賬號@郵件服務(wù)器地址 如:ShellExecute(Handle,"open","mailto:who@mail.neu.edu.cn","","",SW_SHOWNORMAL);打開新郵件窗口,并自動填入收件人地址。若指定多個收件人地址,則收件人地址之間必須用分號或逗號分隔開(下同)。 格式三:mailto:用戶賬號@郵件服務(wù)器地址 subject=郵件主題&body=郵件正文 如:ShellExecute(handle,‘open’,‘mailto:who@mail.neu.edu.cn?subject=Hello&Body=Thisisatest’,"","",SW_SHOWNORMAL);打開新郵件窗口,并自動填入收件人地址、郵件主題和郵件正文。若郵件正文包括多行文本,則必須在每行文本之間加入換行轉(zhuǎn)義字符%0a。 例子(delphi): 在一個應(yīng)用程序調(diào)用c:\Project1.exe; ShellExecute(handle,'open',"c:\Project1.exe",'字串內(nèi)容',"",SW_SHOWNORMAL); 在Project1.exe里可以調(diào)用: procedureTForm1.FormCreate(Sender:TObject); vari:integer; begin fori:=1toparamcountdo ifParamStr(i)<>''thenshowmessage(ParamStr(i)); end; 最后的那個參數(shù),為窗口指定可視性方面的一個命令。 請用下述任何一個常數(shù) SW_HIDE隱藏窗口,活動狀態(tài)給另一個窗口 SW_MINIMIZE最小化窗口,活動狀態(tài)給另一個窗口 SW_RESTORE用原來的大小和位置顯示一個窗口,同時令其進(jìn)入活動狀態(tài) SW_SHOW用當(dāng)前的大小和位置顯示一個窗口,同時令其進(jìn)入活動狀態(tài) SW_SHOWMAXIMIZED最大化窗口,并將其激活 SW_SHOWMINIMIZED最小化窗口,并將其激活 SW_SHOWMINNOACTIVE最小化一個窗口,同時不改變活動窗口 SW_SHOWNA用當(dāng)前的大小和位置顯示一個窗口,不改變活動窗口 SW_SHOWNOACTIVATE用最近的大小和位置顯示一個窗口,同時不改變活動窗口 SW_SHOWNORMAL與SW_RESTORE相同