Using ActiveX controls and DLLs directly from memory buffer (C#)
#1
Posted 26 May 2009 - 02:18 PM
Didn't find related topic, so creating new one.
Is it possible to use ActiveX controls and dynamic libraries without installing an application, by simply running EXE file? It’s means there is no temporary files, all ActiveX controls and DLLs are used from memory buffer. And there is no need to register DLLs.
Thanks!
#2
Posted 26 May 2009 - 02:33 PM
Use standard dll functions if you don't want to register anything.
Edited by Richard Robertson, 26 May 2009 - 02:33 PM.
#3
Posted 25 July 2009 - 05:50 PM
#4
Posted 25 July 2009 - 09:00 PM
#5
Posted 26 July 2009 - 09:19 AM
My Steps to succes
* Register the dll on your development system with regsvr32 (eg. AutoItX3.dll)
* Reference the dll from your project in a IDE of choice (i use sharpdevelop).
* Use the methods and properties you need from the dll in your code.
* After compiling your assembly there will be a interop.<dllclassname>.dll in your bin directory
* now comes the trick: you can merge the assembly and the interop dll into a new single executable with ILMerge.exe
From now on you exe will run from any system without having registered the dll on that system.
Get ILMerge here: http://www.microsoft.com/downloads/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0&displaylang=en
Cheers
-edit- example use for merging AutoItX3.dll:
"ilmerge" /target:winexe /out:New-Executable-Merged.exe Old-Exe-Name.exe Interop.AutoItX3Lib.dll(-> was created by referencing AutoItX3.dll)
Edited by Creator, 26 July 2009 - 09:23 AM.
#6
Posted 26 July 2009 - 11:23 PM
#7
Posted 27 July 2009 - 09:39 AM
I'm surprised that actually works. I was under the impression that the interop assembly still called the locally registered object and was just a wrapper for it.
I double checked that remark.
And you absolutely right. I wasnt aware that my target systems had AutoItX3 already registered (i believed it was not).
I did a regsvr32 /u and tried again.....after the tears had dried, i saw that the dll indeed must be registered.
/me gets a broom and puts together a broken dream... ;-)
Cheers
#8
Posted 27 July 2009 - 08:45 PM
#9
Posted 12 January 2011 - 01:56 AM
Thanks, but I've found an easier solution: BoxedApp SDK
http://boxedapp.com/
Are you used BoxedApp together with Autoit or instead of autoit ?
If you are using it together, do you know if an autoit exe can be instantiate the boxedapp apis so that anything it is doing and calling is virtualized?
#10
Posted 09 February 2011 - 03:25 AM
#11
Posted 08 February 2012 - 07:21 PM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users




