Independent App- V Blog » Sequencing. I’ve been able to sequence every version of Microsoft Office I’ve ever come across. This goes back to Microsoft Office 9. Office 2. 00. 3 and 2. But I’m not writing this post to brag about this impressive list (ahum) and also not because I can now add Microsoft Office 2. No, I’m writing this post because this time it was the first time that there was actually a significantly different approach in virtualizing Microsoft’s top product on collaboration, email, presentation and document management and other, often online, related services. When I’m at a customer that are starting with application virtualization, they ask me frequently: “Ment, should we be virtualizing Microsoft Office?” The answer to this question has always been “well, it depends. The benefits of virtualizing Office includes running multiple versions of Microsoft Office on a single machine. Particularly useful in scenarios where organizations have LOB applications that are tied to specific, usually older, versions of the Office product. No more need for multiple computer running different versions of Office. But there is a downside to this approach as well. The most often heard complaint from users is that not all features from Microsoft Office seem to be working, especially those that tie deep into the Operating System. Now I’m not a heavy Office user and above all a technical guy. I find my way around the application. I start an Office application like Word, Excel, Powerpoint and Outlook from the start menu or from a file type association. I don’t mind that I can’t edit a document in Sharepoint, I just download en open and I don’t mind that I have to configure the mail settings through the virtual environment (how often does this change). On the other hand I do mind that Outlook Fast Search wasn’t working though, because I don’t seem to organize my stuff efficiently and this feature helps me a lot. But I can understand that end users simply don’t understand this approach. All functionality in Microsoft Office simply needs to work. For these users Microsoft has been all ears. With the release of Microsoft Application Virtualization 4. Microsoft Office 2. Deployment Kit for App- V these downfalls are now fixed, making the user- experience closer to natively installed than ever. The Office Deployment Kit for App- V enables the following functionality while Office is running virtualized: Extend your usage of virtual Office 2.
Share. Point integration to Open, Save, Edit files. Find your email items quickly with Outlook’s Fast Search. Connect to your inbox using Microsoft Outlook Send To functionality. Print your documents directly to One. Note. Find contents within your documents using Office Document Indexing. Open Web based calendar items and RSS Feeds in Outlook. Perform advanced mail configuration using the Virtual Mail Applet. The Deployment Kit offers proxies to deliver the functionality above. These proxies are simply additional entry points to the virtual environment. Normally shortcuts, file type association etc. They will simply pick up a request (an API) and send it to an application in the virtual environment. When it comes to deployment scenarios, the following will be supported: Microsoft Office 2. Sequencer Operating System. Deployment Kit on the Sequencer. Client Operating System. Required Deployment Kit on the Client. Supported. 32bit. Yes. 32bit. 32bit. Yes. 32bit. 64bit. Yes. 32bit or 6. 4bit. Windows 7; Windows 7 Service Pack 1; Windows Server 2003 Service Pack 2; Windows Server 2008; Windows Server 2008 R2; Windows Server 2008 R2 SP1; Windows Vista. Roadmap and Change Log paint.net 4.0.16 - Download, released on April 16th, 2017 This is a hotfix for a crash that results from copying images from some web browsers. No, sequencing on 6. Client. 64bit. 32bit. No, 6. 4bit software can’t be installed on 3. OS6. 4bit. 64bit. Yes, but proxies will not work. In this post I will provide you with some guidance how to virtualize Microsoft Office 2. Microsoft (Prescriptive Guidance for Sequencing Microsoft Office 2. Microsoft App- V 4. Technet and my personal experience. I will go for the first scenario in the table (highlighted in green). You must use App- V 4. App- V 4. 5. For demonstration purposes I will install all of the Microsoft Office 2. You can adjust this to fit your own organizational needs. Preparation. Sequencing preparation involves setting up a machine that is representative for and end user device in your environment. Microsoft offers best practices in that area and I do advise you to keep them in mind (and read the sequencing guide), because I will not cover these basics in this post. You will need to: Other best practices include: Disable and stop the Windows Update service (net stop wuauserv)Normally you would disable the Windows Search service, but since we are explicitly are elevating this features, we leave it enabled. Preparation also includes installing the Deployment Kit on a elevated command prompt and configured with some of the following parameters: If activation of Microsoft Office 2. KMS activation: PROFESSIONALPLUS=1, VISIOULTIMATE=1, PROJECTPROFESSIONAL=1 depending on which Office installation you are installing KMSSERVICENAME and KMSSERVICEPORTIf activation of Microsoft Office 2. MAK: Option 1: Volume Activation Management Tool (VAMT) Option 2: PIDKEYS=”xxxxx- xxxxx- xxxxx- xxxxx- xxxxx- xxxxx” USEROPERATIONS=0 if you want only Administrators to activate Office. USEROPERATIONS=1 if you want to let Non- administrators (e. Users) to activate Office. I will be executing the following command: msiexec /i Off. Virt. msi PIDKEYS=. Installing Microsoft Office is pretty straightforward since I’m going to install all Office applications, but you can choose otherwise. Start a New Package and give the package a descriptive name, like “Microsoft Office 2. The following actions should be done during monitoring: Install Microsoft Office 2. Q: \OFF2. 01. 0. V0. You’d might not want to include spaces in this path, just to be sure. Q: \OFF2. 01. 0. V0. Ms. Office) Don’t select Install on First Use for any Office application. Either install or don’t install. I will be selecting the entire suite here just for demonstrating purposes. The Office installation does not have to be activated during sequencing. Start your preferred applications (like Word, Excel etc) and configure settings to fit your needs. I personally like to change the shortcut location from . This would make sure that the shortcuts don’t end up in the same area as a potential local (or other virtual) installation of Microsoft Office. Execute the following registry commands. Make sure that start an elevated command prompt during monitoring: reg add . If you are sequencing 6. OS, you’ll need other registry key, see the Microsoft Recipe for more info. Be sure to change it to your situation: reg add . Watch out here, there’s a link here that depends on your installation path. So be careful with copy and paste. Not obligatory but I like these additional shortcuts to the virtual environment, because they might help me during troubleshooting and in other scenarios: Command Prompt Internet Explorer %CSIDL. Might become handy to define proxy server connections. By default the Add Applications wizard will create a shortcut for each added application. Because the proxies don’t need a shortcut, you can go ahead and remove that in the wizard. I personally like to rename all proxy applications to start with a similar word, so they sort out neatly in the screen. Make sure that the versions of all the Applications (including the proxies) are equal (for example: 1. You can change this in the Add Applications step of the wizard, but also manually change the OSD files after saving the entire project with Login Consultants OSD Editor. Optionally you can define Primary Feature Blocks by launching each of the application during the Launch Application step of the sequence wizard. When all monitoring is done you should do the following steps in the sequencer do the following: Set the following registry key to “Merge with local” HKEY. Set the text to “TRUE”. Alternatively you could save the project and edit the OSD’s through Login Consultants OSD Editor (registration required). This is what I would recommend! Not mandatory but you can clean up your sequence as well. I would check out the following directories and decide whether or not to include them: C: \Windows\Installer. Q: \MSOCache. You should also decide whether or not to Compress the package (I like to do so). Save the project and you’re done sequencing! Check out these video where I demonstrate the actual sequencing steps. Part 1/2. Part 2/2. Deployment. Once you have created the sequencing of Microsoft Office 2. Install Microsoft Application Virtualization Client 4. Depending on your infrastructure you should supply property values that fit your needs, which you can find here. For demonstration purposes I’m using a standalone configuration: ! SWICACHESIZE=\. In my case: msiexec /i Off. Virt. msi PIDKEYS=xxxxx- xxxxx- xxxxx- xxxxx- xxxxx- xxxxx USEROPERATIONS=1. Then you need to activate the Deployment Kit proxies through the following command line: msiexec /i Off. Virt. msi ADDDEFAULT=Click. One. Note. Proxy,Click. Outlook. Proxies,Click. WDSProxy,Click. 2run. OWSSupp. Proxies PACKAGEGUID=. It’s the value of GUID in the CODEBASE tag of the OSD file (don’t confuse this with the GUID in the SOFTPKG tag). PACKAGEVERSION should match the application version used during sequencing. The values of the properties representing the proxies should match the names used during sequencing. Add and load the virtualized version of Microsoft Office. I’m using command line for demonstration purposes and because of standalone deployment, but you can use the deployment model that fits your environment. More information on adding applications through the command line options of the client can be found here. By default the sequencer adds the version number of the package to this file (something like Microsoft Office 2. Check out this last video where I demonstrate how to deploy Microsoft Office to a machine and start using it. Closing thoughts. The Microsoft Office 2. Deployment Kit for App- V does add tremendous functionality to the use of Microsoft Office running as a virtualized application. HID USB Driver / Library. Table of Contents– Motivation– The Human Interface Device Class– USB Specific Stuff– The HID USB Device Interface– How to Integrate the Library into a Visual Studio Project– How the HID USB Library works internal– Where can I get the HID USB Library. Motivation. We wanted to find a new solution to connect our Hardware to the PC via USB because the experience we made with FTDI Chips was not satisfying at all. The USB controller of our choice was the Maxim MAX3. E that is connected to the microcontroller through a Serial Peripheral Interface (SPI). The MAX3. 42. 0E comes without any drivers or libraries you can use to “speak” with it. This is the reason why I had to develop my own “driver”. After a day of reading and googling I decided that the best an easiest way is to use the Human Interface Device Class (HID). The HID- Class is a generic device class which means that all devices in this class are supported by Microsoft Windows and there are already existing DLLs with functions that we can use. The start point for the “driver” was an article I found in the Microsoft developer network: ? Writing Better Software for Cool USB Hardware” written by Scott Hanselman. Scott’s software is based on the USBSharp Class. Luckily the MAX3. E comes with a code sample that configures the controller as a Human Interface Device so we didn’t have much trouble to find out how to configure it as HID. The Human Interface Device Class. As mentioned above the HID Class is a generic device class so the driver is integrated in the operating system which makes things easy. If a new HID device is plugged in there is no need of any driver installation. The functions to access and control a HID device are included in the Windows hid. System. 32 folder. If you do not know for sure if your device is a HID device you should have a look at this little application. It is a part of windows and you can run it with the start - > run “msinfo. Or under Windows Vista just press the Windows- Key Type msinfo. USB Specific Stuff. Identify your USB device. USB device are identified by their vendor and product id. Those IDs are consisting of a prefix (“vid. The MAX3. 42. 0E for example has the vendor id vid. Usually both values can be changed in the source code of the USB device (assumes that you have access to that code). Package Size / Communication Speed. HID devices are communicating with the pc through so called hid reports. Those reports consist of 6. Each microsecond one report is send from pc to the USB device and vice versa. This means that theoretical a transfer rate of 6. Kbytes per second can be achieved. The HID USB Driver Interface. The driver is written in C# and designed as a DLL, this has the benefit so it is very easy to integrate the drive into a new project. Just import the DLL or the project and you are finished. I tried to keep the interface as simple as possible on the one hand and on the other hand to integrate as much functionality as possible. At the moment it has the following functions: USBInterface(String,String) constructor. This method initializes a new instance of the USBInterface class. Parametersvid. The vendor id of the USB device (e. You can only establish a connection to a device if you have used the construct with vendor AND product id. Otherwise it will connect to a device which has the same vendor id is specified, this means if more than one device with these vendor id is plugged in, you can’t be determine to which one you will connect. Returns. False if any error occurs. Disconnect() method. Disconnects the deviceget. Device. List() method. Returns a list of devices with the vendor id (or vendor and product id) specified in the constructor. This function is needed if you want to know how many (and which) devices with the specified vendor id are plugged in. Returns. String list with device pathswrite(Byte. If the array length exceeds 6. The 0- 6. 3 byte of the array is sent first, then the 6. Parametersbytes. The bytes to send. Returns. Returns true if all bytes have been written successfullystart. Read() method. This method is used to activate the “reading- State”. If you execute this command a thread is started which listens to the USB device and waits for data. Read() method. This method switches from “reading- State” into “idle- State”. By executing this command the read data thread is stopped and now data will be received. Usb. Buffer. Event(Event. Handler) method. By calling this method with an event handler (System. Event. Handler) the add- event listener of the USB Buffer is enabled. Thus whenever a dataset is added to the buffer (and so received from the USB device) the event handler method will be called. Parameterse. Handler. The event handler (System. Event. Handler) method. How to integrate the HID USB Library into a Visual Basic Project. There a two ways to integrate the HID USB Library into a Visual Studio project. One is to add the library project to your Visual Studio solution. The other way is to add a reference to the USBHIDDRIVER. Add the library project to a Visual Studio 2. Open your Visual Studio solution. Go to “File > Add > Existing Project”2. The following Dialog will open. Navigate to the USBHIDDRIVER. Right click on your Visual Studio project and click « Add Reference »4. Select the . Then select the USBHIDDRIVER and click ok. Add the USBHIDDRIVER. Visual Studio project. Right click on your Visual Studio project and click « Add Reference »2. Select the . Then navigate to the USBHIDDRIVER. Use the USBHIDDRIVER. Visual Basic 6. The . Net runtime allows unmanaged COM aware clients (like Visual Basic 6 applications) to access . Net components through the COM interop and through the tools provided by the framework. The USBHIDDRIVER. NET assembly which can not be accessed by Visual Basic 6. Therefore we have to create a type library which can be used with Visual Basic 6. This can be done with the Tool Reg. Asm. exe that you will find in the directory of your . Net framework installation. Create a . bat file in the directory of the USBHIDDRIVER. Then run the bat file.“C: \WINDOWS\Microsoft. NET\Framework\v. 2. Reg. Asm. exe” USBHIDDRIVER. USBHIDDRIVER. dll. Now you have to copy both the dll and the tlb file in the same directory as the application which is consuming it. How to use the HID USB Library. Let’s say you want to communicate with an USB device that has the vendor id vid. To do this just make a new instance of the USBInterface class with only the vendor id as parameter. Then call the get. Device. List- Mehtod and you will receive a list of the devices that are connected. USBHIDDRIVER. USBInterface usb = new USBInterface(“vid. After that, you can call the connect- method and a connection will be established. USBHIDDRIVER. USBInterface usb = new USBInterface(“vid. To write data just call the write method with an array of bytes you want to send as parameter. For reading you have to options: first without the USB buffer event and second with USB buffer event. If the event is enabled, the event handler method will be called when a new dataset is received. Otherwise you can process the data with a timer or something like this. Byte); usb. enable. Usb. Buffer. Event(new System. Event. Handler(my. Event. Cacher)); Thread. Sleep(5); usb. start. Read(). The HIDUSBDevice class wraps those methods and handles the read thread. The USBInterface is the main interface, which is accessible from outside the dll. In the USBInterface class exists a object of the List. With. Event, which is basically a Array. List with the bonus that an event is fired when a new dataset is added. Last but not least in the Hid. Api. Declaration class you will find some declarations needed for the whole hid- thing. Where can I get the HID USB Library? You can download the library here. If you like the library and want to give something in return here is my Amazon Wishlist.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
October 2017
Categories |