Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 110
от 29.04.2005, 02:00

Администратор:Калашников О.А.
В номере:Вопросов: 2, Ответов: 8


Вопрос № 20144: Как в Edit1 вывести имя текущего пользователя Windows ? edit1.text:=?????????...
Вопрос № 20149: Уважаемые эксперты. Как подсчитать скорость нажатия одной клавиши(допустим клавиши V) в минуту. Заранее благодарен. ...

Вопрос № 20144
Как в Edit1 вывести имя текущего пользователя Windows ?
edit1.text:=?????????
Отправлен: 23.04.2005, 14:55
Вопрос задал: source (статус: Посетитель)
Всего ответов отправлено: 6

Отвечает: Васильев Павел
Здравствуйте, source!
var
sUserName: string;
iLength: Cardinal;
begin
iLength := 0;
if GetUserName(nil, iLength) then
begin
if iLength > 0 then
begin
SetLength(sUserName, iLength);
if GetUserName(PChar(sUserName), iLength) then
Edit1.Text := sUserName;
end;
end;
end;
Ответ отправил: Васильев Павел (статус: 1-ый класс)
Отправлен: 23.04.2005, 17:18

Отвечает: corsar
Здравствуйте, source!
var P : PChar;S : Cardinal;
begin
S:=100;
P:=StrAlloc(S);
if GetUserName(P,S) then
Edit1.Text:=string(P) else
Edit1.Text:='User name not found :)';
StrDispose(P);
end;

Приложение:

Ответ отправил: corsar (статус: 2-ой класс)
Отправлен: 23.04.2005, 17:52

Отвечает: Malish
Здравствуйте, source!
Я дам расширенный ответ. Может ты его и не будешь использовать, но так можно получить чуть больше. ;)
Для этого мы воспользуемся реестром. Там вообще прячется очень много полезной информации, но надо знать, где она лежит. Итак, чтобы использовать реестр, необходимо добавить модуль Registry в Uses. Затем надо объявить переменную типа TRegistry, а дальше открыть нужный ключ и прочитать оттуда все, что хочется. Например, в событии формы OnCreate напишите:
var R:TRegistry; begin R:=TRegistry.Create; {создаем экземпляр объекта} R.RootKey:=HKEY_LOCAL_MACHINE; R.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersion', False); {#сюда потом запишем необходимые операторы}
R.Free; {уничтожим объект} end;
Чтобы прочесть какие-нибудь данные нужно воспользоваться функцией ReadString (если вам надо прочесть строку, чтобы прочитать число нужно воспользоваться функцией ReadInteger...). Допустим вы хотите, чтобы имя пользователя и название организации выводились с помощью метки. Тогда до оператора Free (после комментария #), впишите:
Edit1.Text:='Владелец: '+R.Readstring('RegisteredOwner')+#13+ 'Организация: '+R.Readstring('RegisteredOrganization');
Чтобы получить директорию Windows нужно вызвать R.Readstring('SystemRoot');
Обязательно посмотрите этот ключ реестра, там много полезных данных.
Ответ отправил: Malish (статус: Студент)
Отправлен: 23.04.2005, 23:16

Отвечает: VBA
Здравствуйте, source!
Вот функция, которая возвращает имя текущего пользователя:
function GetUserFromWindows: string;
var
UserName : string;
UserNameLen : Dword;
begin
UserNameLen := 255;
SetLength(userName, UserNameLen);
if GetUserName(PChar(UserName), UserNameLen) then
Result := Copy(UserName,1,UserNameLen - 1)
else
Result := 'Unknown';
end;
Т. е. теперь ты можешь написать:
edit1.text:=GetUserFromWindows;
Удачи!
Ответ отправил: VBA (статус: 1-ый класс)
Отправлен: 24.04.2005, 00:22

Отвечает: sir henry
Здравствуйте, source!
С помощью функции GetUserName(Буфер_типа_PChar, Length(Буфер_типа_PChar));
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 25.04.2005, 09:15

Отвечает: Delphin
Здравствуйте, source!
Пользуйся вот этой процедурой (см. приложение)
Объяви её например в Public а потом пиши где-нить в коде.
edit1.text := GetCurrentUserName;

Приложение:

Ответ отправил: Delphin (статус: 2-ой класс)
Отправлен: 25.04.2005, 19:39


Вопрос № 20149
Уважаемые эксперты.
Как подсчитать скорость нажатия одной клавиши(допустим клавиши V) в минуту.
Заранее благодарен.
Отправлен: 23.04.2005, 18:47
Вопрос задал: антон (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: John Freeman
Здравствуйте, антон!
Ловить KeyPress/Down и прибавлять соответствующую переменную, делить на время в минутах, клавиша - в аргументах callback'a VK_V или что-то вроде этого(константы в windows.pas)
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 23.04.2005, 19:06

Отвечает: X
Здравствуйте, антон!
Ну к примеру так(шитает кол-во нажатий клавиши v млм V в минуту и вывдит результат в Label)

Приложение:

Ответ отправил: X (статус: 2-ой класс)
Отправлен: 23.04.2005, 22:59


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться

В избранное