ShellExcute API 在PB11中的使用
最近在做一個統計程式,將資料查詢出來儲存至一個Excel檔案後,想實現開啟這個Excel檔案。針對Excel檔案的開啟,可以使用OLE物件,同事也有一個透過查詢登錄檔獲取檔案關聯開啟方式的程式碼。其實最簡單的方式其實還是使用Windows的API ShellExcute
其在PB 中定義外部函式為:
Function Long ShellExecute(Long hwindow, String lpOperation, String lpFile, String lpParameters, String lpDirectory, Long nShowCmd) Library 'shell32.dll' Alias for ShellExecuteA
Function Long GetDesktopWindow() Library 'user32.dll'
在程式碼中為:
String ls_filename = "E:OpenExplorer1.XLS"
String ls_null
SetNull(ls_null)
ShellExecute(GetDesktopWindow(), ls_null, ls_filename , ls_null, ls_null, 0)
偏偏就是這麼簡單的例子,參照網上例子,我在PB11下花了一天時間也沒搞定。如果ShellExecute成功執行的話,返回值應該>32 , 可是每次都返回值為2.
快下班的時候,我使用PB5和PB9測試了一下,相同的程式碼,都能正確執行。
現在就是很迷惑,問題出在哪裡?難道是PB11的BUG ?
最後還是使用了同事透過查詢登錄檔獲取檔案關聯開啟方式的方式,但覺得還是有點不優雅,如果Windows使用者沒有使用登錄檔的許可權呢?
後記:
使用下面的定義:
Function long ShellExecute ( &
long hwnd, &
string lpVerb, &
string lpFile, &
string lpParameters, &
string lpDirectory, &
long nShowCmd &
) Library "shell32.dll" Alias For "ShellExecuteW"
可以在PB11下使用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9036/viewspace-1009212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Angular HTTPClient API 在 SAP 電商雲中的使用AngularHTTPclientAPI
- Native API 在 HarmonyOS 應用工程中的使用指導API
- 在 Laravel 中 Jwt 的使用 與 基礎 API 開發的搭建LaravelJWTAPI
- 百度Mp3的API在windows phone 7中的使用APIWindows
- Hooks API 在 Vue 中的實現分析HookAPIVue
- Node.js 中 Stream API 的使用Node.jsAPI
- 在Delphi中巧用WINDOWS 的API函式 (轉)WindowsAPI函式
- N-API中的Promise功能的使用APIPromise
- 在JavaScript SDK裡使用SoundCloud APIJavaScriptCloudAPI
- 多執行緒在微服務API統計和健康檢查中的使用執行緒微服務API
- 在 .NET Core 中構建 REST APIRESTAPI
- MybatisPlus 中的API 使用總結(CRUD)MyBatisAPI
- 聊聊asp.net中Web Api的使用ASP.NETWebAPI
- Java 8中的Stream API使用指南JavaAPI
- IoC在ASP.NET Web API中的應用ASP.NETWebAPI
- 在Scala中構建Web API的4大框架WebAPI框架
- 在NodeJS中操作檔案常見的APINodeJSAPI
- 在View and Data API中更改指定元素的顏色ViewAPI
- coreseek實戰(三):全文搜尋在php中應用(使用api介面)PHPAPI
- iota 在 Go 中的使用Go
- REST 在 Java 中的使用RESTJava
- 在Vue中使用高德地圖APIVue地圖API
- 在 VB 中使用 Unicode API (轉)UnicodeAPI
- 在 Laravel 應用中構建 GraphQL APILaravelAPI
- 論Node在構建超媒體API中的作用API
- 如何使用Web3.js API 在頁面中進行轉賬WebJSAPI
- Mobx在Flutter中的使用教程Flutter
- Protocol Buffers 在 iOS 中的使用ProtocoliOS
- Cordova在Android中的使用Android
- lottie 動畫在 vue 中的使用動畫Vue
- AspectJ 在 Spring 中的使用Spring
- getopt在Python中的使用Python
- UIScrollView在StoryBoard中的使用UIView
- ICONFONT在APP中的使用APP
- DNS在架構中的使用DNS架構
- Redis在.net中的使用(2).net專案中的Redis使用Redis
- API介面在電商商品資料獲取中的應用API
- API資料介面在電子商務中的應用API