C#: Accessing a client webcam through Citrix session - c#

I’ve got an application running over Citrix that needs to take a pic with a webcam attached to the client PC. The app is coded in C# and using DirectShow libraries. Citrix XenApp is version 7.x, clients are on Windows 7 and 10. Remote Desktop and Citrix seem to have the same issue.
Everything works fine on the fat client. On Citrix or Remote Desktop, of course my local webcam doesn’t show up but the “Citrix HDX Web Camera” does. When I use that and try to start the camera I get the error “Failed to add a video capture filter.”
Going on the filter hint, I loaded GraphEdit onto the server and ran that through an RDP client. I can see the Citrix HDX Web Camera as a capture source but it has no input or output pins. Not sure what to do with that.
I’ve been looking around the web for days, but no luck. There are hints around that camera access doesn’t work in Citrix by default, but it can be done. Citrix even has a support article that talks about HDX Realtime Webcam Video Compression, but it lacks technical details. It’s more about config options and not about coding.
I’m sure this can be done as there are third party products that bridge the gap for the benefit of other applications. Does anybody have a link to some good information about coding this into one’s own application? Or even to point out some wrong direction, like “Don’t bother with DirectShow. You should be using…”
Many thanks.

The same issue on my environment that the Citrix HDX Web Camera has no output pin.
If you check the pin properties on your local machine, you may see like:
Prefered Media Types:
Major type: Video
Subtype type: YUY2
Format type: VideoInfo
rcSrc {X=0,Y=0,Width=0,Height=0}
rcDest {X=0,Y=0,Width=0,Height=0}
--
etc..
I guess the media type is not in the system, so the pin cannot be rendered. Unfortunately I don't know what I need to install.

Related

How to use Win10 IoT Core on Multiple Displays?

I am trying to find a way to have my Win10 IoT Core system display on a local screen via HDMI (this part is fine), as well as be accessible through remote access and be mirrored.
The idea is that it can be remote accessed and controlled from another computer. And if needed, the application can be mirrored purely for a view-only display.
Would any code offer me the ability to remote access and/or mirror my application over the network to other devices.
I have already tried the Win10 IoT Remote Client and I get the issue where it just displays a white screen but still allows my mouse and keyboard input to go through remotely. I am looking for an alternative way to do this.
Any insight to either of these questions would be greatly appreciated.
What device were you using, Raspberry Pi, DragonBoard or MinnowBoard or other device? And which build of Windows IoT Core were you testing the Remote Client? From release 16299, Remote Client does not support for Raspberry Pi. Please use a board with accelerated graphics such as Minnowboard Max or Dragonboard or attach a monitor for local display, and remote client works. Please refer to the known issue in the release note.
If you were not using Raspberry Pi, you can refer to the troubleshooting, here introduced how to troubleshoot the white screen issue when trying to connect.

Using Silverlight or Flash to detect USB Devices on Client Machine and Run them

I am using Asp.Net/C# in my application,I have a requirement where I need to access USB devices of client computer and run one of them.It is ok if the user has right to allow it or not.I need to know whether it is possible at all from browser.If yes what can be used here flash or silverlight.
Any suggestions are much appreciated.
Thanks
In other words, "can I use web-client technology running in browser sandbox for system programming". No, you can't. Neither Flash nor Silverlight can detect or run anything from USB devices. You need desktop technology like Adobe AIR or Microsoft WPF to do that.
Update:
If you really need to do something from browser that browser can't do, there is a way. Install helper application on user machine and control it from browser app via local network. I did it once, so it's possible. If you go this way, use what you like most - both Flash and Silverlight can do this.

Using Bluetooth to RECEIVE file - From Mobile to PC

I took me several time and days to research and try some codes applicable to my problem but unfortunately I wasn't able to see codes that pair and receive files (text, images etc..NOT audio or video in particular) from a mobile device.
Most of the examples found are for SENDING only (From PC to Mobile).
I have bluetooth device (USB) physically attached to my PC.
Summary:
All I need is a sample code that automatically detect/pair when a device is trying to send the file (like in Kodak kiosk but not limited to images only).
I also wanted to understand and study the code.
Perhaps use my 32feet.NET library and its ObexListener class see e.g. http://32feet.codeplex.com/wikipage?title=Server-side&referringTitle=OBEX
For more advanced scenarios use Andy Hume's Brecham.Obex library and his server sample application. See http://inthehand.co.uk/files/folders/objectexchange/entry9942.aspx
Which Bluetooth stack does your PC have installed? Microsoft, Widcomm, BlueSoleil...? See e.g. http://32feet.codeplex.com/wikipage?title=Supported%20Hardware%20and%20Software On Widcomm for instance the build-in OBEX server would have to be disabled to allow your server to get all the incoming connections...

GPS Windows Mobile 6 (using Microsoft.WindowsMobile.Samples.Location;)

well guys, i am part of one team. (I dont have the project yet, i am new).
They did a application using gps, problem is it fail sometimes...
why? they think gps fails because users has the device in "energy saving" mode; then the device hibernates
after 5 minutes if they dont use it.
GPS brings sometimes bad coordinates (for example coordinate shows users is on "SEA" or in "Japan". I repeat, My partners thinks problem is because device is in "energy saving" mode. how can i change this configuration with C# while application is running (maybe back old configuration when application has been closed).
I am using this library.
using Microsoft.WindowsMobile.Samples.Location;
I can't check if it works because now i dont have a device, and i my computer doesn't have GPS, do you have any idea for i can check the application?.
i am using
`"Windows Mobile 6.0 SDK"`
You can install networking functionality while using the Microsoft Device Emulator. This blog explains how to setup network functionality on Windows 7. Follow the official documentation if you're not using Windows 7.
You can emulate GPS functionality using the FakeGPS program supplied by Microsoft. If you want anything close to real data you'll need a text file containing raw NMEA to feed into FakeGPS. You can simply record bytes passed through the GPS COM port to a file to generate a NMEA file. If fake GPS doesn't like your file then remove the non-standard NMEA lines and try again.
You should do some research on Windows Mobile Power Management first to understand the problem. The quickest hack is to simply call SystemIdleTimerReset() more frequently than the battery idle timeout (use SystemParametersInfo() and SPI_GETBATTERYIDLETIMEOUT) to prevent the device from sleeping. This will decrease the battery life of the device! There are other more elegant solutions available such as using the Power Management API.

Windows Mobile - Device to Device via WiFi?

Are there any good api's or examples of communicating between two devices via WiFi?
I am programming an app for 600 window's mobile (version 5) devices. They occasionally will need to connect with another device and exchange info.
Each device connects to the internet via GPRS (using the phone line). I could do the communications via that, but it is slow and may not work in all locations (this app will be used nationwide).
Just as an FYI, I also plan to look into bluetooth, but the stack we get on our Symbol Devices (MC70) is the Stonestreet One stack (we cannot change that). It is a very difficult to use stack with no managed code API. Also, it requires manual setup to use. My users will not be very technically inclined.
If there is another way to communicate (ie via the WiFi connection) I would love that.
(Ideally, I would like to be able to programmatically turn on the WiFi, send/receive data and then turn off the WiFi (to save batteries).)
Any help/suggestions are appreciated.
Motorola (who have bought Symbol a few years ago) do release an Enterprise Mobility Developer Kit for .NET CF which also has some libraries for controlling the WLAN on a Symbol MC70. I have worked with this in the past and it seems to work very well. The SDK comes with the full documentation and some sample applications.
Here is an earlier question on this subject:
better way to communicate between ad hoc wifi windows mobile devices
... which suggests that this is at least possible.
As an alternative, if the devices have infrared ports, you could have them communicate that way (I think).
Update: just found this example:
http://community.opennetcf.com/articles/cf/archive/2008/06/09/exchanging-data-using-windows-mobile-windows-communication-foundation-net-compact-framework-and-exchange-2007.aspx
It looks like you can do peer-to-peer communications with it. It requires .Net CF 3.5, however.
Someone is welcomed to prove me wrong but, as far as i know, out of the box it has to be bluetooth. WiFi is for networks. If you setup each device to also act as an access point you could make this happen. So I am sure it can be done, but it's not a clear path.
I see other issue slike security as well, because a router would handle this and now each of the 600 devices would be an access point handling this security, i am just shooting from the hip now which is basically my long winded advice to not go that direction.
-update
maybe i am a bad answerer, I just thought this was a bad direction. You can google windows mobile wifi peer to peer. Here is one site that covers it.
http://www.smartphonemag.com/cms/blogs/3/588

Categories