Вопрос № 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.
Доброго времени суток Уважаемые Эксперты, помогите пожайлуста. У меня такой вопрос:
надо написать прогу которая может общаться с портом (на запись и на снятие данных) 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