raspkol
Posts: 3
Joined: Tue Feb 12, 2013 3:58 pm

C# Mono application with vnc

Sun Mar 17, 2013 2:58 pm

Hi friends,
How can i use my c# mono application with vnc server
I installed vnc server and started with -create parameter.(before -display :0).
But when i start the c# application, gives an error and stops running.(says "check DISPLAY environment variable")
but i configured as export DISPLAY :0
---
echo $DISPLAY
:0
---
Thanks

Spid
Posts: 525
Joined: Sat Jan 19, 2013 12:47 pm

Re: C# Mono application with vnc

Sun Mar 17, 2013 3:46 pm

Raspbian "wheezy" does not have MONO support and VLC appears to be sluggish !
I will always assume you are running Raspbian for desktop and Raspbmc for XMBC !

raspkol
Posts: 3
Joined: Tue Feb 12, 2013 3:58 pm

Re: C# Mono application with vnc

Sun Mar 17, 2013 3:54 pm

Spid wrote:Raspbian "wheezy" does not have MONO support and VLC appears to be sluggish !
Thanks for your reply but
im running vnc server on my pi and i want to run my application on vnc server(virtual x server)
im not working with vlc
http://elinux.org/RPi_VNC_Server

Spid
Posts: 525
Joined: Sat Jan 19, 2013 12:47 pm

Re: C# Mono application with vnc

Sun Mar 17, 2013 4:22 pm

Apologies read that wrong about VLC :oops: :oops: :oops: :oops: :oops: :oops:
I will always assume you are running Raspbian for desktop and Raspbmc for XMBC !

pauldy
Posts: 54
Joined: Tue Jun 12, 2012 3:34 pm

Re: C# Mono application with vnc

Mon Mar 18, 2013 8:43 pm

You might want to provide more detail about exactly what steps your taking here. Information you might be leaving out here is likely what is causing your problem here. For instance "I installed vnc server and started with -create parameter.(before -display :0)." Is not a succinct process and things done here may lock you out of starting your mono app from the command line. I'm pretty sure the culprit here is xauth but I'm not sure how to solve it without more info.

raspkol
Posts: 3
Joined: Tue Feb 12, 2013 3:58 pm

Re: C# Mono application with vnc

Mon Mar 18, 2013 9:18 pm

im running vnc server with "x11vnc -display :0 -create" and i connected from host pc(Win7).No problem
after that i started my app with "mono testapp.exe" but my application crashes with this:

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.ArgumentNullException: Could not open display (X-Server required. Check you DISPLAY environment variable)
Parameter name: Display"
at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown>:0
at WindowsFormsApplication1.Program.Main () [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.ArgumentNullException: Could not open display (X-Server required. Check you DISPLAY environment variable)
Parameter name: Display
at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown>:0
at WindowsFormsApplication1.Program.Main () [0x00000] in <filename unknown>:0

but the DISPLAY variable seems correct
echo $DISPLAY
:0

i started x11vnc without any parameter,this is output message
it seems auth problem as you say but im running server with -create parameter.
x11vnc
###############################################################
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@ @#
#@ ** WARNING ** WARNING ** WARNING ** WARNING ** @#
#@ @#
#@ YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!! @#
#@ @#
#@ This means anyone with network access to this computer @#
#@ may be able to view and control your desktop. @#
#@ @#
#@ >>> If you did not mean to do this Press CTRL-C now!! <<< @#
#@ @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@ @#
#@ You can create an x11vnc password file by running: @#
#@ @#
#@ x11vnc -storepasswd password /path/to/passfile @#
#@ or x11vnc -storepasswd /path/to/passfile @#
#@ or x11vnc -storepasswd @#
#@ @#
#@ (the last one will use ~/.vnc/passwd) @#
#@ @#
#@ and then starting x11vnc via: @#
#@ @#
#@ x11vnc -rfbauth /path/to/passfile @#
#@ @#
#@ an existing ~/.vnc/passwd file from another VNC @#
#@ application will work fine too. @#
#@ @#
#@ You can also use the -passwdfile or -passwd options. @#
#@ (note -passwd is unsafe if local users are not trusted) @#
#@ @#
#@ Make sure any -rfbauth and -passwdfile password files @#
#@ cannot be read by untrusted users. @#
#@ @#
#@ Use x11vnc -usepw to automatically use your @#
#@ ~/.vnc/passwd or ~/.vnc/passwdfile password files. @#
#@ (and prompt you to create ~/.vnc/passwd if neither @#
#@ file exists.) Under -usepw, x11vnc will exit if it @#
#@ cannot find a password to use. @#
#@ @#
#@ @#
#@ Even with a password, the subsequent VNC traffic is @#
#@ sent in the clear. Consider tunnelling via ssh(1): @#
#@ @#
#@ http://www.karlrunge.com/x11vnc/#tunnelling @#
#@ @#
#@ Or using the x11vnc SSL options: -ssl and -stunnel @#
#@ @#
#@ Please Read the documention for more info about @#
#@ passwords, security, and encryption. @#
#@ @#
#@ http://www.karlrunge.com/x11vnc/faq.html#faq-passwd @#
#@ @#
#@ To disable this warning use the -nopw option, or put @#
#@ 'nopw' on a line in your ~/.x11vncrc file. @#
#@ @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
###############################################################
22/11/2012 13:50:02 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 356
22/11/2012 13:50:02 XOpenDisplay(":0") failed.
22/11/2012 13:50:02 Trying again with XAUTHLOCALHOSTNAME=localhost ...

22/11/2012 13:50:02 ***************************************
22/11/2012 13:50:02 *** XOpenDisplay failed (:0)

*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

Some tips and guidelines:

** An X server (the one you wish to view) must be running before x11vnc is
started: x11vnc does not start the X server. (however, see the -create
option if that is what you really want).

** You must use -display <disp>, -OR- set and export your $DISPLAY
environment variable to refer to the display of the desired X server.
- Usually the display is simply ":0" (in fact x11vnc uses this if you forget
to specify it), but in some multi-user situations it could be ":1", ":2",
or even ":137". Ask your administrator or a guru if you are having
difficulty determining what your X DISPLAY is.

** Next, you need to have sufficient permissions (Xauthority)
to connect to the X DISPLAY. Here are some Tips:

- Often, you just need to run x11vnc as the user logged into the X session.
So make sure to be that user when you type x11vnc.
- Being root is usually not enough because the incorrect MIT-MAGIC-COOKIE
file may be accessed. The cookie file contains the secret key that
allows x11vnc to connect to the desired X DISPLAY.
- You can explicitly indicate which MIT-MAGIC-COOKIE file should be used
by the -auth option, e.g.:
x11vnc -auth /home/someuser/.Xauthority -display :0
x11vnc -auth /tmp/.gdmzndVlR -display :0
you must have read permission for the auth file.
See also '-auth guess' and '-findauth' discussed below.

** If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:

gdm: -auth /var/gdm/:0.Xauth
-auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
-auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa

Sometimes the command "ps wwwwaux | grep auth" can reveal the file location.

Starting with x11vnc 0.9.9 you can have it try to guess by using:

-auth guess

(see also the x11vnc -findauth option.)

Only root will have read permission for the file, and so x11vnc must be run
as root (or copy it). The random characters in the filenames will of course
change and the directory the cookie file resides in is system dependent.

See also: http://www.karlrunge.com/x11vnc/faq.html

Thanks for your interest

pauldy
Posts: 54
Joined: Tue Jun 12, 2012 3:34 pm

Re: C# Mono application with vnc

Tue Mar 19, 2013 10:00 pm

Are you starting it from some ssh terminal session or are you in the vnc session running it from an xterminal? In any event you might just try xhost +localhost. If I remember right that will allow pretty much anyone on localhost to connect to the xserver providing the DISPLAY path is set properly. DISPLAY=localhost:0.0.

Return to “Other programming languages”