Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > как узнать имя компьютера?


Автор: lankin 2.3.2007, 10:46
Ребят привет! Очень простой вопрос: какую библиотеку подрубить чтобы
заработало следующее:
Код

var strRemoteMachine = wizard.GetComputerName();

а то в МСДН-ке нету упоминания.
стоит .Net 2002
Заранее спасибо!

Автор: mr.DUDA 2.3.2007, 10:47
Environment.MachineName есть такое свойство в 2002 ?

Автор: lankin 2.3.2007, 10:51
есть. щас посмотрю

Добавлено @ 11:02 
нету ни System.Object ни System.Enviroment 

Автор: mr.DUDA 2.3.2007, 14:03
Тогда так:
Код
using System;
using System.Text;
using System.Runtime.InteropServices;

class Program
{
    [DllImport("Kernel32")]
    static extern unsafe bool GetComputerName(byte* lpBuffer, long* nSize);

    static void Main(string[] args)
    {
        byte[] buffer = new byte[512];
        long size = buffer.Length;
        unsafe
        {
            long* pSize = &size;
            fixed (byte* pBuffer = buffer)
            {
                GetComputerName(pBuffer, pSize);
                size = *pSize;
            }
        }

        string name = Encoding.ASCII.GetString(buffer, 0, (int)size);
    }
}

Автор: lankin 5.3.2007, 05:45
Это интересный ход, но при компиляции ругается на "unsafe" и пишет вот что:
"Unsafe code may only appear if compiling with /unsafe"
Если убираю unsafe в DLLImport - все намана, но тогда ругается на 
unsafe
{
.......
}

Автор: lankin 5.3.2007, 07:43
как мне сдклать так, чтобы компиляция включала unsafe?

Автор: Idsa 5.3.2007, 09:24
Цитата(lankin @  5.3.2007,  07:43 Найти цитируемый пост)
как мне сдклать так, чтобы компиляция включала unsafe?

Project->Name Properties->Build->ставишь галочку на Allow unsafe Code. Name - имя проекта.

Автор: lankin 6.3.2007, 06:35
Спасибо всем - сделал)))

Автор: kulibin 9.3.2007, 17:41
на всякий случай smile - а так не проще?
Код

using System;
using System.Collections.Generic;
using System.Net;

namespace comp_name
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine(System.Net.Dns.GetHostName());
            Console.ReadLine();
        }
    }
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)