PDA

Click to See Complete Forum and Search --> : my.computer


amitairos
Apr 4th, 2007, 02:26 AM
Hi,
I'm a Vb.net programmer moving to C#.
I wanted to know if anbody could tell me how to use the my.computer object -from Vb.net- in C#.
Thanks!

Shuja Ali
Apr 4th, 2007, 02:37 AM
Simplest way would be to add a Reference to Microsoft.Visualbasic.dll. And then add using Microsoft.VisualBasic.MyServices; at the top of your module. And then you can use the code like this MyComputer thisComputer = new MyComputer();

jmcilhinney
Apr 4th, 2007, 03:08 AM
http://www.google.com.au/search?q=my+namespace+%22c%23%22&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

Shuja Ali
Apr 4th, 2007, 05:49 AM
http://www.google.com.au/search?q=my+namespace+%22c%23%22&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
Sometime I think people just forget that there is something known as GOOGLE too in this world. And for that matter they even forget that MS has a dedicated network for developers who need to learn new things and search for resources, which is known as MSDN.

Bombdrop
Apr 4th, 2007, 10:46 AM
Is it really best practice to use these libraries in C#?

jmcilhinney
Apr 4th, 2007, 05:49 PM
Is it really best practice to use these libraries in C#?The My namespace makes many tasks easier, which is why it was created. If you don't want to do things the long way in C# then you could create your own library to make these tasks easier. You would then have a .NET assembly that you could reference in your C# projects that would make performing certain tasks easier. Microsoft.VisualBasic.dll is a .NET assembly that you can reference in your C# projects that makes performing certain tasks easier, and you don't have to spend the time writing it yourself. You choose.

David Anton
Apr 4th, 2007, 08:06 PM
Simplest way would be to add a Reference to Microsoft.Visualbasic.dll. And then add using Microsoft.VisualBasic.MyServices; at the top of your module. And then you can use the code like this MyComputer thisComputer = new MyComputer();

Unfortunately, this is a case where google is not your friend. That 'solution' has been widely circulated, but doesn't work. You can't access "My" even with a reference to the Microsoft.VisualBasic assembly.

Here is a support file we include with Instant C# which will provide some of what you need - the missing parts are converted in-line by Instant C#. Download the demo edition for details:

//----------------------------------------------------------------------------------------
// Copyright © 2005 - 2007 Tangible Software Solutions Inc.
//
// This file provides classes to reproduce most of the My.Computer and My.User
// functionality in VB. Calls to My.Computer.Clipboard, My.Computer.FileSystem,
// and My.Computer.Registry have been converted where they were referenced.
//
// Note: My.Settings is converted elsewhere to the standard C# Properties.Settings.
// Note: My.Resources is converted elsewhere to the standard C# Properties.Resources.
// Note: My.Application calls are redirected to the converted My.MyApplication.
//----------------------------------------------------------------------------------------

using Microsoft.VisualBasic.ApplicationServices;
using Microsoft.VisualBasic.Devices;
using System.Security.Principal;
using System.Windows.Forms;

namespace My
{
internal static class Computer
{
//Instant C# Notes:
//Calls to My.Computer.Clipboard have been redirected to System.Windows.Forms.Clipboard
//Calls to My.Computer.FileSystem have been redirected to Microsoft.VisualBasic.FileIO.FileSystem
//Calls to My.Computer.Registry have been redirected to Microsoft.Win32.Registry

internal readonly static Audio Audio;
internal readonly static Clock Clock;
internal readonly static ComputerInfo Info;
internal readonly static Keyboard Keyboard;
internal readonly static Mouse Mouse;
internal readonly static string Name;
internal readonly static Network Network;
internal readonly static Ports Ports;
internal readonly static Screen Screen;

static Computer()
{
Audio = new Audio();
Clock = new Clock();
Info = new ComputerInfo();
Keyboard = new Keyboard();
Mouse = new Mouse();
Network = new Network();
Ports = new Ports();
Screen = Screen.PrimaryScreen;

ServerComputer ThisServerComputer = new ServerComputer();
Name = ThisServerComputer.Name;
}
}

internal static class User
{
private static Microsoft.VisualBasic.ApplicationServices.User ThisUser = new Microsoft.VisualBasic.ApplicationServices.User();

internal static IPrincipal CurrentPrincipal
{
get
{
return ThisUser.CurrentPrincipal;
}
}
internal static bool IsAuthenticated
{
get
{
return ThisUser.IsAuthenticated;
}
}
internal static string Name
{
get
{
return ThisUser.Name;
}
}
internal static void InitializeWithWindowsUser()
{
ThisUser.InitializeWithWindowsUser();
}
internal static bool IsInRole(BuiltInRole ThisRole)
{
return ThisUser.IsInRole(ThisRole);
}
internal static bool IsInRole(string ThisRole)
{
return ThisUser.IsInRole(ThisRole);
}
}
}