| Автор
| Сообщение |
 Ugrum
Бичара Сахалинский

Возраст: 49
Знак зодиака: 
Зарегистрирован: 15.07.2002
Сообщения: 872
Откуда: Холмск
|
|
|
Цитата |
|
А есть-ли какая функцыешка,или КАК узнать имя пользователя компа? _________________ ЛЕНЬ - двигатель прогресу ! |
|
| В начало |
|
 |
|
|
 |
 Ugrum
Бичара Сахалинский

Возраст: 49
Знак зодиака: 
Зарегистрирован: 15.07.2002
Сообщения: 872
Откуда: Холмск
|
|
|
Цитата |
|
Все,братва,не надо.В этом гребаном хелпе невозможно ничего
найти.У меня Дельфа откуда-то с китайского сайта , какая-то
тоже китайская.
Впрочем интересно кто чего по этому поводу скажет. _________________ ЛЕНЬ - двигатель прогресу ! |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
Будешь смеяться, GetUserName
Она в MSDN описана, в дельфийском гребаном хелпе ее нет _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 aka57
Я живу тут....

Возраст: 28
Знак зодиака: 
Зарегистрирован: 03.07.2003
Сообщения: 1287
|
|
|
Цитата |
|
| Хм.. А у меня эта функция в индексе Delphi Help затесалась (Delphi 2005). Может это как-то связано с установленной MSDN? |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
| Цитата: | | Впрочем интересно кто чего по этому поводу скажет |
А я полез в реестр искать (за неимением MSDN). Вот что нашёл
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"Logon User Name"="Sasha" _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
Это хреновов имя пользователя было нужно мне. Я ща делаю сетевое меню и там это применяется. НАсчет функции GetUserName, то в Делфийскоом хелпе(у Delphi 7) она есть. Вот только выйти на нее удалось написав ее название в коде и нажав F1. А вот через Find/Index на нее попасть невозможно.
При использовании функции была замечена одна странность. Она не работала при вызове из onCreate/onShow Датамодуля и Формы. Зато, когда я запихнул ее в событие BitBtn1Click, то все проканало. После, вызов данной процедуры сделал из события onShow и вот чудо - сработало!
Объясните - почему так происходит. _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
| Цитата: | | Хм.. А у меня эта функция в индексе Delphi Help затесалась (Delphi 2005). Может это как-то связано с установленной MSDN? |
Ага. А вообще ты отчаянный тип, раз работаешь с D2005
| Цитата: | | НАсчет функции GetUserName, то в Делфийскоом хелпе(у Delphi 7) она есть |
В меню Delphi есть пункт Win32 help. Это - обрезанная старая версия MSDN Library. Само собой, справка по этой функции там имеется.
| Цитата: | | При использовании функции была замечена одна странность |
Позови священника с кадилом и бубном, что ли Скорее всего, ты что-то напутал с выделением памяти. Покажи код _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
| Цитата: | | Позови священника с кадилом и бубном, что ли Скорее всего, ты что-то напутал с выделением памяти. Покажи код |
ДАй бог, дай бог, а то я уже собрался ё...ся.
Ща у меня все работает, но пришлось делать вызов процедуры, которая когда-то выполнялась при нажатии по кнопке мыши.
procedure TMainForm.FormShow(Sender: TObject);
begin
WITH DM DO
try
ADOC.Close;
ADOC.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
MainForm.EPath.text+';Persist Security Info=False';
ADOC.Open;
// SPGroup.Open;
// QGroup.Open;
QMENU.SQL.Clear;
QMENU.SQL.Add('SELECT * from MENU');
QMENU.Open;
DM.SPGetGRP.Close;
MainForm.ProcGetUserName(Self);//бывшее событие
DM.SPGetGRP.Parameters.ParamByName('USER').Value:=MainForm.UserName;
DM.SPGetGRP.Open;
MainForm.BBuildMenuClick(self);
except
ShowMessage('Íåâîçìîæíî îòêðûòü áàçó! Îáðàòèòåñü ê ïðîãðàììèñòó.');
end;
end;
//а вот и сама процедура
procedure TMainForm.ProcGetUserName(Sender: TObject);
var i:dword;
s:array[0..100] of char;
begin
try
GetUserName(s,i);// вот она
MainForm.UserName:=String(s);
MainForm.Caption:=MainForm.Caption+' ~['+String(s)+']';
except
MessageDlg('Error in GetUserName(buf,count)!',mtError,[mbYes],0);
end;
end;
Странность наблюдалась в том случае, если код GetUserName(s,i); я вставлял в событие онКриейт или ОнШоу формы.
Но ща все работает.
з.ы. и как всегда через жопу.  _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
Думаю, что если ты напишешь
try
i:=100;
GetUserName(s,i);
то странность вообще не будет наблюдаться  _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
|
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
Это последствия Ctrl+C из твоего кода  _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
| Цитата: | | Это последствия Ctrl+C из твоего кода |
Причем здесь имя функции. И я вообще-то штопал все ручками. А копирую только объекты  _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
8)
Я понял, почему ты не пьешь. Ты куришь
procedure TMainForm.ProcGetUserName(Sender: TObject);
var i:dword;
s:array[0..100] of char;
begin
try
i:=100;
GetUserName(s,i);// вот она
MainForm.UserName:=String(s);
MainForm.Caption:=MainForm.Caption+' ~['+String(s)+']';
except
MessageDlg('Error in GetUserName(buf,count)!',mtError,[mbYes],0);
end;
end; _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
Я ща получаю имя пользвателя, при этом переменная i=0;
Первоночально я устанавливал ее в 100 и глюк все равно наблюдался. Все заработало, как только я эту херню засунул в процедуру и сделал вызов ее из другой. _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Код: |
function GetUserName: string;
var n: cardinal;
begin
n := 200;
SetString(Result, nil, n);
if Windows.GetUserName(pchar(result), n) = false then
RaiseLastOSError;
SetLength(result, n-1);
end;
|
проверено - работает идеально. D6/D7 |
|
| В начало |
|
 |
|