1. 程式人生 > >jenkins呼叫含有gui介面的window exe程式會一直卡住執行的問題

jenkins呼叫含有gui介面的window exe程式會一直卡住執行的問題

起因 我新建了一個jenkins構建,需要用windows下的cmd命令呼叫一個flash air的本地exe程式,結果在jenkins下會一直卡住不動,執行不下去。在windows下單獨用cmd命令調則能順利執行。 引自 分析 以上兩篇文章提到的問題跟我遇到的多少有點相似,基本得出兩個推論: 1、jenkins是以服務的形式執行在windows機上的,而服務不能直接呼叫GUI的程式 2、使用者許可權的問題 處理 基於以上兩點思考,我按照第1個參考裡面的做法: 1、在windows下開啟cmd程式,輸入"services.msc"開啟服務視窗 2、找到“jenkins”服務,然後右鍵->屬性,選擇“登入”標籤頁 此時,預設是勾選本地系統賬戶,“允許服務與桌面互動”為未勾選狀態。 我試著先勾選“允許服務與桌面互動”,然後點選應用->確定,再重啟"jenkins"服務,執行構建,發現並沒有作用。 最後我試著勾選此賬戶,然後輸入管理員賬戶和密碼,然後點選應用->確定,再重啟"jenkins"服務,執行構建,此時能夠正常執行。
結論 根據以上的嘗試基本可以得出是系統使用者許可權的問題,jenkins服務所在的使用者許可權不支援直接呼叫像flash air這樣的exe gui程式,換成管理員賬戶就可以了。

相關推薦

jenkins呼叫含有gui介面的window exe程式一直卡住執行的問題

起因 我新建了一個jenkins構建,需要用windows下的cmd命令呼叫一個flash air的本地exe程式,結果在jenkins下會一直卡住不動,執行不下去。在windows下單獨用cmd命令調則能順利執行。 引自 分析 以上兩篇文章提到的問題跟我遇到的多

C++以阻塞的方式呼叫外部exe程式,等待其執行結束

        SHELLEXECUTEINFO ShExecInfo = {0};         ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);  

C# 呼叫外部exe程式

有時候dll不能引用,那就只能另外做一個exe程式,然後通過呼叫這個程式就可以解決問題,但往往需要在本地生成一箇中間資料。雖然有name一點麻煩,但也挺好用。 這裡就是一個呼叫外部程式的方法。 /// <summary> /// 通過程序呼叫外部程式 /// <

.net 程式碼呼叫cmd執行.exe程式,獲取控制檯輸出資訊

使用.net core 對老專案升級, .net core 使用TripleDES.Create() 加密眾iv位元組限制 與 framework中的不同, 新專案還需要相容老專案版本,還不想通過webapi 進行資料request和response, 遂想到使用控制檯輸出的形式進行嘗試,  具體程

java呼叫自己編寫的.exe程式

Runtime rn = Runtime.getRuntime(); Process p = null; try { p = rn.exec("\"F:/export/qq.exe\"");//軟體存放地址的問題 } catch (Excep

java 執行 exe 程式:可以雙擊執行,程式卻不能呼叫解決

java 呼叫exe檔案 public static void main(String[] args) { try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec("cmd /c F:\\tankong2\\a

C#使用WinAPI中 WinExec 呼叫外部exe程式

1、新增引用 using System.Runtime.InteropServices;//呼叫外部的DLL 2、定義win32API //呼叫exe [DllImport("kernel32.dll")] public static extern int WinExec(string

程式不能呼叫豆瓣API介面(403錯誤碼)

1、按照網上較為流行的豆瓣API呼叫方法一般如下 onLoad: function(options) { wx.request({ url:"https://api.douban.

C++小知識(八)——C/C++執行外部程式呼叫外部exe程式

轉載自:https://blog.csdn.net/dongpanshan/article/details/7835722,其中我只用到了ShellExecute函式,根據下面的示例以及介紹的其中的引數進行了調整,實現了對外部exe的呼叫 C中的函式: 1.exec()

C#程式呼叫外部exe程式(轉)

連結:https://www.cnblogs.com/BookCode/p/5329890.html 在編寫程式時經常會使用到呼叫可執行程式的情況,本文將簡單介紹C#呼叫exe的方法。在C#中,通過Process類來進行程序操作。 Process類在System.Diagnostics包中。

C# 呼叫exe程式總結

已經很久沒有更新部落格,以後關於個人或者團隊在實際中遇到的問題在這裡做個記錄。 先總結一下C#呼叫執行exe程式,簡單直接上程式碼 Thread worker = new Thread(delegate () { System.Diagno

當我學完Python後寫的第一個程式,郵箱遠端控制電腦GUI介面程式

  前邊發了Python利用smtplib庫傳送郵件,現在我們來應用一下那部分知識,製作一個利用郵箱遠端控制電腦的軟體,該軟體一共分為兩部分,一部分為控制端,另一部分為被控端。先看一下介面: 學習Python中有不明白推薦加入交流群     &

silverlight呼叫exe程式

一定要在專案中新增引用Microsoft.CSharp 這裡是開啟寫字板程式 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.

Delphi 編寫呼叫WebService介面的小程式(天氣預報)

Delphi 編寫呼叫WebService介面的小程式 最近由於專案需要在編寫一個webservice的客戶端,網上找來了不少資料,都說可以通過delphi自帶的嚮導來生成呼叫介面的檔案。 如對天氣預報的webservice呼叫http://www.webxml.com.c

java 從程式內部呼叫外部url/介面

本人微信 zf363133213 歡迎各位新增好友,共同探討問題 第一種方法: public Object test(){ HttpHeaders headers = new HttpHeaders();//http請求頭 RestTemplate restTemplate = ne

使用java程式碼呼叫exe程式 (包括引數傳遞)

使用Java程式碼呼叫exe 1使用場景       我現在使用eclipse+tomcat的架構建立了web server, 在這個web project中我需要建立一個定時任務,在定時任務中執行本地的一個C#工程生成的exe。 2Java程式碼 public clas

windows呼叫另外一個EXE程式,WinExec+Cmd+BAT

首先說一下:WinExec的函式原型: UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow); 引數:lpCmdLine:指向一個空結束的字串,串中包含將要執

PHP 網頁呼叫本地exe程式例項

一、需求:在做網站的時候,有些網站網頁面需要呼叫本地的exe程式。 二、方法:利用註冊URL Protocol的方式。 程式碼如下: 1、檢視檔案裡面的程式碼: <a href="fyexe://123456">FY辦公</a> 2、reg檔案裡面

C#使用Process類呼叫外部exe程式

在C#中,通過Process 類來進行程序操作。 Process類在System.Diagnostics包中。 【System.Diagnostics.Process.Start("calc.exe");】執行計算器 示例一 using System.Diagno

【小程式呼叫wx.request介面時需要注意的幾個問題

回到目錄 寫在前面 之前寫了一篇,上次的小程式的專案我負責大部分前端後臺介面的對接,然後學長幫我改了一些問題。總的來說,收穫了不少吧! 現在專案已經完成,還是要陸陸續續總結一下的,總結的過程也是對知識梳理和清晰的過程! 這次主要聊一下小程式前後端介面對接的一些事