#define SW_SHOWNORMAL 1#define SW_SHOWMINIMIZED 2#define SW_SHOWMAXIMIZED 3DECLARE INTEGER ShellExecute IN "shell32" INTEGER, STRING, ;STRING, STRING, STRING, INTEGERm.lnOwnerHWND = 0m.lcCommand = "runas" && this does the trick!m.lcTarget = "C:\Windows\Notepad.exe"m.lcParams = ""m.lcDirectory = ""ShellExecute(m.lnOwnerHWND, m.lcCommand, m.lcTarget, m.lcParams, m.lcDirectory, SW_SHOWNORMAL)
The class context, taken from the CLSCTX enumeration, that is to be used for instantiating the object. Monikers typically pass this value to the dwClsContext parameter of CoCreateInstance."
m.lcBindOpts3Struct = BINTOC(34,"4rs") && structure size m.lcBindOpts3Struct = m.lcBindOpts3Struct + REPLICATE(CHR(0), 16) m.lcBindOpts3Struct = m.lcBindOpts3Struct + BINTOC(CLSCTX_LOCAL_SERVER,"4rs") m.lcBindOpts3Struct = m.lcBindOpts3Struct + REPLICATE(CHR(0), 10)
?m.loModuleResourceEditor.AddStringToStringTable("RegFreeDll Adder",-1)
LOCAL loElevatedInstancem.loElevatedInstance = CreateObjectElevated("MyComServer.MyOLEPublicClass")***************************FUNCTION CreateObjectElevated(tcProgID, tnLevel)*************************** #DEFINE CLSCTX_INPROC_SERVER 1 #DEFINE CLSCTX_LOCAL_SERVER 4 #DEFINE IID_IDispatch "{00020400-0000-0000-C000-000000000046}" #DEFINE ADMINELEVATION 'Elevation:Administrator!new:' #DEFINE HIGHESTELEVATION 'Elevation:Highest!new:' LOCAL lnIDispatchPointer, lcClsID, lnReturn, lcMoniker, lcBindOpts3Struct, lcIDispatch DECLARE INTEGER CLSIDFromString IN ole32 STRING lpszProgID, STRING @ strClSID DECLARE LONG CoGetObject IN "ole32" STRING, STRING@, STRING, LONG @ m.lcBindOpts3Struct = BINTOC(34,"4rs") && structure size m.lcBindOpts3Struct = m.lcBindOpts3Struct + REPLICATE(CHR(0), 16) m.lcBindOpts3Struct = m.lcBindOpts3Struct + BINTOC(CLSCTX_LOCAL_SERVER,"4rs") m.lcBindOpts3Struct = m.lcBindOpts3Struct + REPLICATE(CHR(0), 10) m.lcClsID = CLSIDFromProgIDEx(m.tcProgID) m.lcMoniker = STRCONV(ADMINELEVATION + m.lcClsID + CHR(0),5) m.lcIDispatch=SPACE(16) CLSIDFromString(STRCONV(IID_IDispatch + CHR(0),5), @m.lcIDispatch) m.lnIDispatchPointer = 0 m.lnReturn = CoGetObject(m.lcMoniker, @m.lcBindOpts3Struct, m.lcIDispatch, @m.lnIDispatchPointer) IF m.lnReturn = 0 RETURN SYS(3096, INT(m.lnIDispatchPointer)) && int casts the pointer to what Sys(3096) expects ELSE RETURN GetLastErrorMessage(m.lnReturn) ENDIF RETURN NULLENDFUNC*****************************FUNCTION GetLastErrorMessage(tnError)***************************** LOCAL lcBuffer DECLARE INTEGER FormatMessage IN kernel32.DLL ; INTEGER dwFlags, ; STRING @lpSource, ; INTEGER dwMessageId, ; INTEGER dwLanguageId, ; STRING @lpBuffer, ; INTEGER nSize, ; INTEGER Arguments m.lcBuffer = SPACE(128) =FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 'WINERROR.H', m.tnError, 0, @m.lcBuffer, 128, 0) RETURN m.lcBufferENDFUNC***************************FUNCTION CLSIDFromProgIDEx(tcProgID)*************************** LOCAL lcGuid, lnResult, lnLen, lcReturn m.lcReturn = SPACE(82) m.lcGuid = SPACE(16) m.tcProgID = STRCONV(m.tcProgID + CHR(0), 5) DECLARE INTEGER CLSIDFromProgID IN ole32.DLL STRING pProgID, STRING @ pGuid m.lnResult = CLSIDFromProgID(m.tcProgID, @m.lcGuid) IF m.lnResult = 0 DECLARE INTEGER StringFromGUID2 IN ole32.DLL STRING pGuid, STRING @ pString, INTEGER nMaxChars m.lnLen = StringFromGUID2(m.lcGuid, @m.lcReturn, 40) - 1 m.lcReturn = STRCONV(m.lcReturn, 6) m.lcReturn = LEFT(m.lcReturn, m.lnLen) ENDIF RETURN m.lcReturnENDFUNC
Remember Me
a@href@title, b, blockquote@cite, em, i, strike, strong, sub, super, u