2013-03-09 4 views
0

Inno Setup을 사용하여 Windows 7의 Program Files에 저장된 HTA 파일을 여는 바탕 화면 바로 가기를 만듭니다.이 HTA 파일은 실행해야하는 외부 exe 파일을 호출합니다 관리자로.Inno Setup 관리 권한을 가진 HTA에 대한 바로 가기 만들기

이렇게하려면 Inno Setup을 사용하여 관리자 권한으로 실행되는 바로 가기를 자동으로 만들고 싶습니다. 여기서 문제는 바로 가기가 exe 대신 HTA 파일을 가리킨다는 것입니다. 어떻게해야합니까?

+0

_HTA_ 무엇입니까? – jachguate

+0

HTA는 HTML 응용 프로그램입니다. 그것은 기본적으로 스크립트입니다. http://en.wikipedia.org/wiki/HTML_Application – CookieMonster

+2

문서에 대한 바로 가기 (HTA가 중요하다고 생각하는 것)가 관리자 권한으로 실행될 수 없다고 합리적으로 확신합니다. 나는 어쨌든 어떤 일을하고 싶었던 HTA에 대해 매우 의심스러워 할 것입니다. HTA는 일반적으로 패키지 된 웹 페이지입니다. 그렇지 않습니까? – Miral

답변

-1

질문에 대한 직접적인 대답은 매개 변수로 HTA의 파일 이름을 사용하여 mshta.exe에 대한 바로 가기를 만드는 것입니다. mshta.exe의 바로 가기는 관리자 권한으로 실행되도록 표시 할 수 있습니다.

+0

* "... 관리자 권한으로 실행하도록 표시 할 수 있습니다."* 어떻게 대답 할 수 있습니까? – TLama

+0

아마도 단축키를 만드는 데 사용 된 도구에 따라 다릅니다. Inno Setup 툴이이 기능을 가지고 있는지 여부를 모르겠습니다. 다른 방법으로는 외부 스크립트 (예 : elevate.js, http://blogs.msdn.com/b/aaron_margosis/archive/2007/07/01/scripting-elevation-on-vista.aspx)를 사용하는 것입니다. 또는 elevate32.exe/elevate64.exe (http://www.westmesatech.com/misctools.html)를 사용하여 실행 파일을 시작할 때 UAC 프롬프트를 표시합니다. –

+0

"관리자 권한으로 실행"은 바로 가기가 아니라 실행 파일의 속성입니다. 관리자로 실행하면 다른 모든 시도를 사용하여 승격하라는 부작용이 있습니다. – Deanna

-1

실행 파일에 관리자 액세스 권한이 필요한 경우 add an appropriate manifest to your executable을 실행하고 HTML 응용 프로그램을 승격하지 마십시오.

+0

이것은 실제로 실행 파일의 매니페스트를 변경할 수 있는지 여부에 달려 있습니다. 그렇지 않은 경우 mshta.exe를 올리는 것과 같은 상황에 처해 있습니다. –

0

확인이 샘플 :

<html> 
<head> 
<title>HTA Helpomatic</title> 

<HTA:APPLICATION 
    ID="oHTA" 
    APPLICATIONNAME="HTAHelpomatic" 
    SCROLL="yes" 
    SINGLEINSTANCE="yes" 
> 
<!-- ID="objHTAHelpomatic" --> 
<!-- WINDOWSTATE="maximize" --> 

</head> 

<SCRIPT Language="VBScript"> 

If HTAElevate() = True Then 
    CreateObject("WScript.Shell").Run "mmc.exe compmgmt.msc", , True 
    Call Main() 
End If 

Sub Main() 
    MsgBox "HTA-Ende", 4096 
End Sub 


'*** v13.3 *** www.dieseyer.de ***************************** 
Function HTAElevate() 
'*********************************************************** 
' http://dieseyer.de/scr/elevate.hta 
' Unter Windows x64 laufen VBS' nach einem Doppelklick in der x64-Umgebung 
' mit %WinDi%\System32\wscript.exe oder mit %WinDi%\System32\cscript.exe. 
' In der x64-Umgebung laufen VBS aber nicht (richtig). Die Prozedur 
' HTAElevate() erkennt dies und startet ggf. das VBS in der 

    Const Elev = " /elevated" 

' MsgBox oHTA.commandLine, , "5016 :: " 

' Trace32Log "5018 :: oHTA.commandLine: ==" & oHTA.commandLine & "==", 1 

    HTAElevate = True 

' If InStr(LCase(oHTA.commandLine), Elev) > 0 then MsgBox oHTA.commandLine, , "5022 :: " 
    If InStr(LCase(oHTA.commandLine), Elev) > 0 then Exit Function 


    On Error Resume Next 
    window.resizeto 750, 10 ' : window.moveto screen.width/2, screen.height/2 
    On Error GoTo 0 

' MsgBox oHTA.commandLine, , "5030 :: " 

    createobject("Shell.Application").ShellExecute "mshta.exe", oHTA.commandLine & Elev, "", "runas", 1 

    HTAElevate = False 

    self.close 

End Function ' HTAElevate() 


</SCRIPT> 
<body> 


</body> 
</html>