發表文章

目前顯示的是 2020的文章

Chrome native messaging host with C# app in windows

圖片
由於工作需要使用到chrome擴充功能跟C#寫的app做資料傳輸,所以學了一下 以下開始來看,先看chrome extension的部分: chrome的manifest.json: { "name": "Native Messaging Windows", "version": "1.0", "manifest_version": 2, "description": "Communicate with a native application.", "icons": { "16": "icons/icon_windows.png", "48": "icons/icon_windows.png", "128": "icons/icon_windows.png" }, "app": { "launch": { "local_path": "main.html" } }, "permissions": [ "nativeMessaging" ] } main.html: <!DOCTYPE html> <html> <head> <script src='./main.js'></script> </head> <body> <button id='connect-button'>Connect</button> <input id='input-text' type='text' /> <button id='send...

Visual Sudio2019創建MFC ActiveX工程製作IE OCX插件

圖片
前言 最近因為工作需要,實現IE extension插件,現在將學到的內容細節記錄下來, 本次的學習內容如下幾個主題: VS2019創建MFC ActiveX工程製作IE OCX插件 VS2019中MFC ActiveX工程如何調試 註冊ocx插件 在IE中使用JS調用第三方DLL函數 ㄧ. VS2019創建MFC ActiveX專案 1.新建專案 2. 默認,直接點下一步 3.  由於不需要顯示AboutBox,取消打勾“有關於對話框”,點擊完成 4. 建好的專案,文件格式如下圖 二. 加入自己要加的方法 js可以調用的ocx函數,一般寫在CDemoAXCtrl類中,該類即爲控件類(一個ActiveX可以寫多個控件類,本文就使用默認生成的這個CDemoAXCtrl控件類) 本人在 DemoAXCtrl.cpp中 添加了兩個隸屬於 CDemoAxCtrl底下的 方法,代碼如下 // JS調用返回 歡迎 xx,hello world! BSTR CDemoAXCtrl::speakHelloWorld(LPCTSTR pname) { CString res(""); res.Format(_T("您好%s,hello world!"), pname); return res.AllocSysString(); } LONG CDemoAXCtrl::add(LONG a, LONG b) { return a + b; } 此時會有紅線,不用緊張, JS還不能調用,我們還需要在DemoAXCtrl.h & .cpp加入如下代碼 //DemoAXCtrl.h中,添加如下代碼 class CDemoAXCtrl : public COleControl { //此處爲默認生成的代碼 // 調度和事件 ID public: enum { dispidSpeakHelloWorld = 1L, dispidadd = 2L }; protected: // JS調用返回 歡迎 xx,hello world! BSTR speakHelloWorld(LPCTSTR...

electron打包:electron-packager及electron-builder兩種方式實現(for Windows)

前言 本文主要介紹如何通過electron-packager及electron-builder兩種方式,將已有的electron應用打包成msi格式和exe可執行檔案。打包是一個成熟的應用程式一個重要的環節,希望這篇文章可以給大家一些參考,最後會講到打包時遇到的一些坑,與大家分享。 electron-packager 使用命令 npm install electron-packager --save-dev 安裝好之後會在package.json中的devDependencies生成程式碼: "devDependencies": { "electron-packager": "^9.1.0" } 打包時要分清devDependencies與dependencies的區別,文章後會講。 package.json 的額外欄位 —— productName、author 和 description,雖然這幾個欄位並不是打包必備的,但它們會在 Windows 的 Squirrel 安裝包(用於自動更新)中使用到,所以請讀者根據實際情況新增。 安裝好模組之後,就可以對應用進行打包, 為了方便起見,在 package.json 中新增程式碼: { "scripts": { "start": "electron .", "build": "electron-packager . AlarmClock --out AlarmClock --overwrite --platform=win32 --arch=x64 --icon=clock.ico --prune=true --squirrel-install --ignore=node_modules/electron-* --electron-version=1.7.9 --ignore=AlarmClock-win32-x64 --version-string.CompanyName=Robby --version-string.ProductName=AlarmClock", }, } 引數說明: elec...

Electron - pcsclite.node was compiled against a different Node.js version

首先我使用 pcsclite  遇到以下問題 Error: The module '.../node_modules/@pokusew/pcsclite/build/Release/pcsclite.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 51. This version of Node.js requires NODE_MODULE_VERSION 53. Please try re-compiling or re-installing 把 Node version提升了,也沒作用 後來使用rebuild才成功 安裝模組並重新建置 Electron npm install --save-dev electron-rebuild # 每次執行完 "npm install" 後,記得再跑: ./node_modules/.bin/electron-rebuild # 如果你在 Windows 下碰到問題,可以試: .\node_modules\.bin\electron-rebuild.cmd

Electron - 跨平台的視窗應用程式

圖片
一、Electron介紹 Electron Logo Electron(原名為Atom Shell)是 GitHub 開發的一個 開源 框架 。 [5] 它允許使用 Node.js (作為後端)和 Chromium (作為前端)完成桌面 GUI 應用程式 的開發。Electron現已被多個開源 Web應用程式 用於前端與後端的開發,著名專案包括GitHub的 Atom 和 微軟 的 Visual Studio Code 。 由於開發環境就是基於 Node.js ,請務必安裝好。 很多知名的桌面應用程式都是使用 Electron 開發的例如: Github Desktop Discord WordPress.com Visual Studio Code Slack Atom 二、專案建立 以下實務操作將建立一個桌面鬧鐘通知應用程式,此範例從 此處 學習 首先我們建立專案資料夾,並初始化: mkdir electron-alarm-clock && cd electron-alarm-clock npm init -y 你可以直接手動新增資料夾,然後進入(可以不用這麼工程師的方式) 進入專案後使用終端機輸入 npm init -y 進行初始專案(-y 是將詢問的條件通通默認 yes) 安裝 electron: npm install --save--dev electron --save-dev 會將指定套件存於 package.json 的 devDependencies 因為 electron 只有開發階段才需要用到,因此只需要 --save--dev 在 package.json 修改程式進入點位置: 在 main 的部分,將 index.js 改為 main.js 。 在 script 的部分,新增 start 。 [ package.json ] { "name": "electron-alarm-clock", "version": "1.0.0", "description": "...