Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать в консольном приложении имя машины [D7]


Страницы:   1 2

Андрей Пл ©   (2007-09-03 11:51:00) 

Возникла проблема:
функция GetComputerName() не работает для консольного приложения!!!
Как узнать в консольном приложения имя машины???

заранее спасибо.


Андрей Пл   (2007-09-03 12:18:00) [21]

> Сергей М. ©   (03.09.07 12:09) [7]
не вижу особой разницы что я сразу выделил место для переменной
buf: array [0..MAX_COMPUTERNAME_LENGTH + 1] of char;

или ты

var
Buf: String;
n: Integer;

n := MAX_COMPUTERNAME_LENGTH + 1;

SetLength(Buf, MAX_COMPUTERNAME_LENGTH);

Из вините за беспокойство моя ошибка была в том что я не занес значение в переменную N перед тем как воспользоваться функцией GetComputerName. (к стати в обычном приложении без этого работало)

 n := MAX_COMPUTERNAME_LENGTH + 1;
 fl:=GetComputerName(buf,n);


Всем спасибо.


Сергей М.   (2007-09-03 12:09:00) [22]

Точнее так:

var
Buf: String;
n: Integer;
..
n := var
Buf: String;
..

n := MAX_COMPUTERNAME_LENGTH + 1;

SetLength(Buf, MAX_COMPUTERNAME_LENGTH);
if GetComputerName(PChar(Buf), n) then
ShowMessage(Buf);


Сергей М.   (2007-09-03 12:03:00) [23]


> что не так делаю


Все)

И причем здесь консоль - совершенно непонятно.

var
 Buf: String;
..
SetLength(Buf, MAX_COMPUTERNAME_LENGTH);
if GetComputerName(PChar(Buf), MAX_COMPUTERNAME_LENGTH) then
 ShowMessage(Buf);


Desdechado   (2007-09-03 12:01:00) [24]

BOOL GetComputerName(
   LPTSTR lpBuffer, // addressof name buffer
   LPDWORD nSize  // addressof size of name buffer
  );


Андрей Пл   (2007-09-03 11:57:00) [25]

> Сергей М. ©   (03.09.07 11:52) [1]
ТОгда подскажи что не так делаю!
вот текст проги:

program Project1;

{$APPTYPE CONSOLE}

uses
 SysUtils, Windows;

var
 varFile:TextFile;
 fileReport,nameHost: String;
 buf: array [0..MAX_COMPUTERNAME_LENGTH + 1] of char;
 n:Cardinal;

begin

fileReport:= 'D:\Temp\Report\report.txt';
 assignFile(varFile, fileReport);
 if not FileExists(fileReport) then
   rewrite(varFile)
 else
   Append(varFile);

 GetComputerName(buf,n);
 nameHost:=buf;

 Writeln(varFile,FormatDateTime('dd"."mm"."yyyy" "hh":"nn":"ss":"zzz',Now)+' | '+ nameHost);
 CloseFile(varFile);
end.


Anatoly Podgoretsky   (2007-09-03 11:56:00) [26]

> Riply  (03.09.2007 11:55:02)  [2]

В военное время выдает имя пользователя.


Riply   (2007-09-03 11:55:00) [27]

> [1] Сергей М. ©   (03.09.07 11:52)
> Работает, не выдумывай.
А в военное время ? :)


Сергей М.   (2007-09-03 11:52:00) [28]

Работает, не выдумывай.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо