簡體   English   中英

將參數傳遞給已經運行的nsis Java啟動器

[英]Pass arguments to already running nsis java launcher

我正在使用nsis啟動我的Java應用程序。 啟動應用程序后,我想顯示一個窗口。 這樣啟動Java應用程序時,可以傳遞命令行參數。

OutFile "Test.exe"
....
ExecWait javaw.exe -jar myapp.jar
SectionEnd

現在,如果要調用nsis啟動器的另一個實例,我想顯示已經運行的Java應用程序的默認窗口。 為了做到這一點,我需要將參數傳遞給我的java應用程序。 為此,我必須將參數傳遞給已經運行的實例的cmd窗口(由NSIS內部使用)。

我將如何完成?

我不確定我是否正確理解您,但是您可以使用此示例為nsis安裝程序創建互斥體。 此處的示例會將已經運行的安裝程序顯示在前面,如果您知道其句柄或標題,則可以對其進行一些更改以使正在運行的Java窗口顯示在前面。

     System::Call "kernel32::CreateMutexA(i 0, i 0, t 'my_mutex') i .r0 ?e"
     Pop $0
     StrCmp $0 0 launch
     FindWindow $1 "my window class" "my window title"
     IntCmp $1 0 bring_front end
     bring_front:
     System::Call "user32::SetForegroundWindow(i r1) i."
     end:
     Abort
     launch:

如果您有Spy ++(Microsoft Visual Studio隨附),則可以找到Java應用程序的窗口類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM