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

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


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

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

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

Выпуск № 71
от 18.03.2005, 18:30

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


Вопрос № 18183: Здравствуйте. Подскажите, как в Делфи узнать имя активного пользователя Windows. ...
Вопрос № 18189: У меня возникло 4 вопроса: 1. Как мне сделать скрытое окно (cmd.exe) и передавать/принимать ввод от него. Причем так что-бы его не было видно!!! (Всмысле само окно. Но можно и в деспетчере задач). Нужна поддержка русских символов. Желательно с пр...
Вопрос № 18202: Доброго времени суток Уважаемые Эксперты, помогите пожайлуста. У меня такой вопрос: надо написать прогу которая может общаться с портом (на запись и на снятие данных) LPT устройство не стандартное не модем и не принтер таким образом что бы не...
Вопрос № 18221: Здраствуйте ув. эксперты. Написал чатик использующий сокеты. Теперь есть вопросы. 1. Как сделать что бы отображались смайлики (в тексте) какое поле необходимо для этого оприходывать и что с ним сделать (сейчас использую просто Memo: TMemo)<br...

Вопрос № 18183
Здравствуйте. Подскажите, как в Делфи узнать имя активного пользователя Windows.
Отправлен: 12.03.2005, 19:44
Вопрос задал: johnteen (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Bob Johnson
Здравствуйте, johnteen!
Функция GetUserName.

* EMan2.0: ---===*** Debug mode ***===---

Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 13.03.2005, 02:13

Отвечает: sir henry
Здравствуйте, johnteen!
Я думаю Вам поможет функция WinAPI GetUserName().
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 14.03.2005, 06:24

Отвечает: @lexander
Здравствуйте, johnteen!
Вот функция позволяющая определить имя активного пользователя:

Приложение:

Ответ отправил: @lexander (статус: 1-ый класс)
Отправлен: 14.03.2005, 16:44

Отвечает: michael91
Здравствуйте, johnteen!
В WinAPI есть функция GetUserName ( модуль Windows.pas)
возвращает имя текущего пользователя
первый параметр - ссылка на буфер (например PChar или PAnsiChar и т.д.)
Второй параметр указывает макс. длину буфера, в который помещается значение

Приложение:

Ответ отправил: michael91 (статус: 1-ый класс)
Отправлен: 14.03.2005, 21:56


Вопрос № 18189
У меня возникло 4 вопроса:
1. Как мне сделать скрытое окно (cmd.exe) и передавать/принимать ввод от него. Причем так что-бы его не было видно!!! (Всмысле само окно. Но можно и в деспетчере задач). Нужна поддержка русских символов. Желательно с примером.
2. В Windows XP SP2 можно ли перейт в 0 кольцо процессора. На языке Delphi.
Я понимаю что со вставками Assambler'a. Я тоже хотел-бы пример.
3. Как мне передавать/принимать сообщения по протоколу IRC. У меня есть библиотека компонентов Indy 10 (Delphi 2005), мне надо как-то реализовать прием/отправку сообщений. Причем чтобы модно было и лично и в общак.
Как вообще мне это зделать? Надо сначала создать пользователя на канале?
4. Как вообще происходит работа с потоками? Мне неясно. Вот допустим у меня есть TCP сокет. Как мне сделать чтоб его приниммал поток? А потом после принятия пакета TCP он(Поток) вызвал какое-то действие в программе.
P.S Очень надеюсь на ваши ответы.

Приложение:

Отправлен: 12.03.2005, 21:55
Вопрос задал: Delphin (статус: 1-ый класс)
Всего ответов отправлено: 2

Отвечает: Bob Johnson
Здравствуйте, Delphin!
1. Когда запускаешь cmd (CreateProcess), то укажи SW_HIDE в поле wShowWindow структуры startupinfo - окна не будет видно. также создай два хэндла для ввода и вывода, через которые ты будешь обмениваться данными с процессом (их тоже присвой в соотв. поля структуры). попробуй использовать пайпы (CreatePipe).
4. Просто вызывай функции чтения из этого сокета (или записи в него) из этого потока, а не из главного. для выполнения каких-либо действий попробуй метод synchronize.

* EMan2.0: ---===*** Debug mode ***===---

Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 13.03.2005, 02:13
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Теперь я понял как работать с нитями.
Особенно помогла справка по Delphi. У тебя случаем нет примера как работать с пайпами просто я где-то видел и не помню где.

Отвечает: Sh-st
Здравствуйте, Delphin!
Может вам книгу еще написать по вашим вопросам?
Ответ отправил: Sh-st (статус: 2-ой класс)
Отправлен: 13.03.2005, 11:29
Оценка за ответ: 1
Комментарий оценки:
Рђ СЏ всего-то СЃРїСЂРѕСЃРёР». Р∙сли ты РЅРµ знаешь ответа то зачем засорять рассылку? РЇ начинающий РІ Delphi, СЏ СЃРїСЂРѕСЃРёР» Рё надеился РЅР° ответы. Даже РЅРµ РЅР° РІСЃРµ Р° РЅР° некоторые. Причем тут РєРЅРёРіР°? Р∙сли можешь то напиши! РЇ Р±СѓРґСѓ благодарен. Рљ сожелению РІ нашем книжном магазине РёР· 20 РєРЅРёРі стоящих РЅРµ было. Там РІСЃРµ просто. Рђ РјРЅРµ нужны примеры. Р’РѕС‚ СЏ Рё подумал что можно обратиться Рє людям. РљРѕР» тебе Р·Р° ответ.


Вопрос № 18202
Доброго времени суток Уважаемые Эксперты, помогите пожайлуста. У меня такой вопрос:
надо написать прогу которая может общаться с портом (на запись и на снятие данных) LPT
устройство не стандартное не модем и не принтер таким образом что бы небыло глюков в NT системах. Assembler не предлогать и желательно только с помощью Delphi.
Отправлен: 13.03.2005, 02:08
Вопрос задал: Malish (статус: 2-ой класс)
Всего ответов отправлено: 2

Отвечает: rusfaq.ru
Здравствуйте, Malish!
>>что бы небыло глюков в NT системах
Используй WIN API функции CreateFile и WriteFile.
Ответ отправил: rusfaq.ru (статус: 2-ой класс)
Отправлен: 13.03.2005, 17:56

Отвечает: sir henry
Здравствуйте, Malish!
Только с помощью Дельфи - такой вариант не пройдет, нужны функции WinAPI. Думаю, что Вы будете не против их использования. :)
Для работы с портами существуют стандартные функции WinAPI, такие же, как и для работы с файлами:
CreateFile('LPT1", ...) - открывает порт
ReadFile()/WriteFile() - считываетзаписывает данные
CloseHandle() - закрывает порт.
За подробностями работы обращайтесь к справке по WinAPI - там довольно большое описание и переписывать его сюда нет смысла.
По поводу устройства. Поскольку оно нестандартное, то никто, кроме Вас, не скажет какие комманды должны быть посланы на это устройство.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 14.03.2005, 06:39


Вопрос № 18221
Здраствуйте ув. эксперты.
Написал чатик использующий сокеты. Теперь есть вопросы.
1. Как сделать что бы отображались смайлики (в тексте) какое поле необходимо для этого оприходывать и что с ним сделать (сейчас использую просто Memo: TMemo)
2. Как сделать что бы каждый юзер видел кто есть в чате? т.е. я могу отследить подключение\отключение клиентов и разослать это всем остальным клиентам простым текстом, а как это графически оформить соображалки не хватает :( и можно ли сделать какнить по другому?
3. Можно ли отключать клиентов с самого сервера, если да то набросайте примерный кодик...
Отправлен: 13.03.2005, 13:31
Вопрос задал: pablopicotso (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Shizuku Tsukishima
Здравствуйте, pablopicotso!
Поменяйте TMemo на TRichEdit - это должно позволить Вам использовать текст с графикой.
Смайлики можно передавать двумя способами:
1. Написать функцию определяющую, что идёт в потоке: текстовые или бинарные данные. Написать функции для пересылки/приёма этих данных (не пугайтесь, всё уже есть - только используйте).
2. Не пересылать графику вообще. Добавляйте в начало каждой посылаемой строки символов какую-нибудь заранее оговоренную комбинацию. Пусть клиенты проверяют все входящие на предмет этих символов. И в зависимости от полученной таким образом команды, каждый из клиентов сможет подзагрузить тот или иной смайлик себе в окно локально, с жёсткого диска. Экономия траффика очевидна ^_^
Ответ отправила: Shizuku Tsukishima (статус: 3-ий класс)
Отправлен: 15.03.2005, 13:14

Отвечает: Bob Johnson
Здравствуйте, pablopicotso!
1. Используй TRichEdit или напиши свой контрол для отображения текста (это не так сложно на самом деле )
2. Ну сделай список какой-нибудь :) попробуй listbox, который disabled или что-то такое. это прежде всего зависит от того, как оформлен твой чат. Или тебе нужна программная реализация? сделай несколько видов пакетов - текст, уведомление и т.п. текст будет использоваться только для передачи текста, уведомление - для передачи информации о том, что кто-то либо подключился, либо отключился...
3. Конечно - если ты используешь windows socket - то shutdown (), closesocket ().

* EMan2.0: ---===*** Debug mode ***===---

Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 15.03.2005, 22:48


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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
Отписаться

В избранное