Talk:CreateMutex plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 2: Line 2:
Check out this code:
Check out this code:


<nsis>
<highlight-nsis>


; Just a key to store a window handle in
; Just a key to store a window handle in
Line 29: Line 29:
FunctionEnd
FunctionEnd


</nsis>
</highlight-nsis>


This code also brings the running instance of the installer to the foreground if starting another instance.
This code also brings the running instance of the installer to the foreground if starting another instance.

Revision as of 16:09, 20 January 2006

No real need for this plugin as the System.dll plugin alread can do this. Check out this code:

; Just a key to store a window handle in
!define PLUGIN_INSTREGKEY "Software\My Company\My Product"
 
Function .onInit
  System::Call 'kernel32::CreateMutexA(i 0, i 0, t "NxSBalloonTipPluginSetup") i .r1 ?e'
  Pop $R0
 
  StrCmp $R0 0 noprevinst
    ReadRegStr $R0 HKCU "${PLUGIN_INSTREGKEY}" "WindowHandle"
    System::Call 'user32::SetForegroundWindow(i $R0) i ?e'
    Abort
 
  noprevinst:
 
FunctionEnd
 
Function .onMyGUIInit
  WriteRegStr HKCU "${PLUGIN_INSTREGKEY}" "WindowHandle" "$HWNDPARENT"
FunctionEnd
 
Function .onGUIEnd
  DeleteRegValue HKCU "${PLUGIN_INSTREGKEY}" "WindowHandle"
  DeleteRegKey /ifempty HKCU "${PLUGIN_INSTREGKEY}"
FunctionEnd

This code also brings the running instance of the installer to the foreground if starting another instance.