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

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


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


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 235
от 24.10.2003, 20:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1063
Отправлено ответов: 2192
Активность: 206.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Cybernetic Creature
Статус: Профессиональный
Общий рейтинг: 131.37
URL: В разработке
[Подробней >>]
THE_PRO
Статус: Опытный
Общий рейтинг: 138.88
URL: THE_PRO
[Подробней >>]
samum2000
Статус: Начальный
Общий рейтинг: 124.13
[Подробней >>]
 
Marouder
Статус: Профессиональный
Общий рейтинг: 123.24
URL: Первый Хабаровский Форум
Телефон: (4212) 21-93-65
[Подробней >>]
ART_43
Статус: Опытный
Общий рейтинг: 119.25
URL: ART_43 Home Site
[Подробней >>]
sir henry
Статус: Опытный
Общий рейтинг: 157.14
[Подробней >>]
 
CJ
Статус: Доверительный
Общий рейтинг: 126.61
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1048. ПРИВЕТ! ПИШУ ЛОВУШКУ КЛАВИШ! ПО ПРИНЦЫПУ RegisterKeys! При нажатии Win+R Win+F вместо задания из про... (ответов: 3)
Вопрос № 1050. Здравствуйте, уважаемые эксперты! Разрабатывается система контроля версий исходных кодов на ВСВ 5. Т... (ответов: 1)
Вопрос № 1051. Здравствуйте, эксперты! 1. Поскажите, как программно получить имя папки, из которой запущена програм... (ответов: 5)
Вопрос № 1052. Привет, народ! Почему код в приложении вылетает, полдня голову ломаю понять не могу, дело, вероятно ... (ответов: 2)
Вопрос № 1053. Привет CJ, Bob, Cyber! Сразу же прошу прощения, - никого не хотел обидеть, особенно Cybernetic Crea... (ответов: 4)

Вопросов: 5, ответов: 15


 Вопрос № 1048

ПРИВЕТ!
ПИШУ ЛОВУШКУ КЛАВИШ! ПО ПРИНЦЫПУ RegisterKeys!
При нажатии Win+R Win+F вместо задания из программы загружается меню Выполнить и Поиск!



Вопрос отправлен: 19.10.2003, 22:36
Отправитель: Кирилл

[Следующий вопрос >>] [Список вопросов]

Отвечает Cybernetic Creature

Приветствую Вас, Кирилл!
program WAHotKeys;
uses Windows, Messages;
ResourceString RC_Winamp = 'Winamp v1.x';
ResourceString RC_Winamp3 = 'BaseWindow_RootWnd';

const
Num = 13;
Spec = Num - 10;
keys: array[1..Num] of byte = (byte('X'), byte('V'), byte('C'), byte('B'),
byte('Z'), byte('L'), VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN,
byte('Q'), byte('S'), byte('N'));
var
msg: TMsg;
id: array[1..Num] of integer;
st: string;
WA3, handle: THandle;
i, key: integer;
begin
handle:= GetModuleHandle('WAHotKeys');
st:= 'hk ';
for i:= 1 to Num do
begin
st[3]:= char(64+i);
id[i]:= GlobalAddAtom(PAnsiChar(st));
RegisterHotKey(handle, id[i], MOD_WIN, keys[i]);
end;
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
WA3:= findwindow(PAnsiChar(RC_Winamp3), nil); // WinAmp3 window
if WA3=0 then WA3:=findwindow(PAnsiChar(RC_Winamp), nil); // WinAmp window
if (WA3<>0) then
begin
if ((msg.LParam shl 16) shr 16)=MOD_WIN then
begin // MOD_WIN
key:= (msg.LParam shr 16);
if key=byte('S') then
begin
if IsWindowVisible(WA3) then ShowWindow(WA3, sw_minimize)
else ShowWindow(WA3, sw_restore);
end else
if key=byte('N') then
begin
postmessage(WA3, wm_keydown, byte('B'), 0);
postmessage(WA3, wm_keyup, byte('B'), 0);
end else
if key=byte('Q') then
begin // UnRegisterHotKeys
for i:= 1 to Num do UnRegisterHotKey(handle, id[i]);
Halt(Msg.wParam);
end else
begin
for i:= 1 to (Num-Spec) do
begin // for i
if key=keys[i] then
begin
postmessage(WA3, wm_keydown, keys[i], 0);
postmessage(WA3, wm_keyup, keys[i], 0);
end;
end; // for i
end;
end; // MOD_WIN
end;
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end.
эта прграмма позволяет управлять винампом. измените код. надеюсь у вас получится

Ответ отправлен: 20.10.2003, 18:28
Отправитель: Cybernetic Creature


Отвечает THE_PRO

Добрый день, Кирилл!
Vidimo Win ix ne prinemayet... , no ya kakta takoye proboval: Budto kokayata proga zaqrujayetsya na autorun-e
i zakrivayet ves ekran, a user nicheqo ne mojet podelat!
Tak chto navernoye ti chto tam ne to sdelal!

Ответ отправлен: 21.10.2003, 09:34
Отправитель: THE_PRO


Отвечает samum2000

Доброе время суток, Кирилл!
Если я правильно тебя понял, то ты пишешь клавиатурный hook. Тогда убедись, что ты не вызываешь следующую функцию-фильтр.

Ответ отправлен: 20.10.2003, 11:30
Отправитель: samum2000


 Вопрос № 1050

Здравствуйте, уважаемые эксперты!
Разрабатывается система контроля версий исходных кодов на ВСВ 5. Технология клиент/сервер. СУБД - InterBase 6. Сервер хранит базу данных (БД) исходных кодов, которая содержит ссылки на местоположение исходников (файлов), описание файлов, кто их менял, когда менял и зачем это сделал. Исходники располагаются в виде файлов в различных каталогах.
Клиент при коннекте с сервером должен видеть эту БД, отметить какие-нибудь файлы и получить их с сервера. Затем внести изменения, отметить их и отправить измененные файлы снова на сервер.
Так вот, возникли следующие вопросы:
1. Как при помощи SQL (использую технологию IBX - компоненты ВСВ 5) получить определенные файлы, а также каталог с сервера на клиентскую машину?
2. Как обратно отправить их на сервер?
3. Можно ли это (легко) реализовать через BLOB-поля?
Заранее огромное спасибо!



Вопрос отправлен: 20.10.2003, 11:39
Отправитель: Эдуард

[Следующий вопрос >>] [Список вопросов]

Отвечает THE_PRO

Доброе время суток, Эдуард!
Da mojno!

Ответ отправлен: 21.10.2003, 09:21
Отправитель: THE_PRO


 Вопрос № 1051

Здравствуйте, эксперты!
1. Поскажите, как программно получить имя папки, из которой запущена программа.
2. Почему при упаковке программы UPX она занимает в памяти больше места (данные Norton System Information). Можно ли как-нибудь уменьшить занимаемую память, кроме как не пользоваться UPX.
Спасибо.



Вопрос отправлен: 20.10.2003, 19:48
Отправитель: iron

[Следующий вопрос >>] [Список вопросов]

Отвечает samum2000

Доброе время суток, iron!
1) Полный путь с именем программы передается ей первым параметром, т.е. paramstr(0);
2) На мой взгляд это логично, т.к. чтобы привести сжатую программу снова в рабочий вид, необходимо ее распаковать, а код распаковщика тоже должен занять в памяти место. Когда ты пользуешься UPX, ты сжимаешь ну память, а размер программы на диске, чтобы уменьшить память, надо программу оптимизировать.

Ответ отправлен: 22.10.2003, 08:21
Отправитель: samum2000


Отвечает Cybernetic Creature

Доброе время суток, iron!
function ExtractFilePath(FileName:String):String;
eg
Caption:=ExtractFilePath(ParamStr(0))

Ответ отправлен: 23.10.2003, 18:20
Отправитель: Cybernetic Creature


Отвечает Marouder

Здравствуйте, iron!
1. Получить имя exe-файла c помощью GetModuleFileName и выделить из этой строки путь. Это - очень просто - просматривай с конца строку пока не встретишь бэкслэш. То, что будет слева от бэкслэша - имя папки.
2. Жалко тебе нескольких килобайт что-ли?

Ответ отправлен: 23.10.2003, 13:59
Отправитель: Marouder


Отвечает THE_PRO

Здравствуйте, iron!
ExtractFilePath(Application.ExeName)//Delphi
ExtractFilePath(Application->ExeName)//C++Builder

Ответ отправлен: 21.10.2003, 09:18
Отправитель: THE_PRO


Отвечает ART_43

Доброе время суток, iron!
1. ExtractFilePath(ParamStr(0))

Ответ отправлен: 22.10.2003, 09:55
Отправитель: ART_43


 Вопрос № 1052

Привет, народ!
Почему код в приложении вылетает, полдня голову ломаю понять не могу, дело, вероятно в какой-то мелочи, поэтому взгляните свежим взглядом и подскажите. Процедура выводит в ListView список текущих процессов.


Приложение:


Вопрос отправлен: 21.10.2003, 00:55
Отправитель: Dick Wint

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Здравствуйте, Dick Wint!
А второй индекс массива разве не обязательно указывать?
И может быть лучше сразу добавлять название в Item у ListView:
Item.Caption=ppe.szExeFile;
ListView.Items.Add;
что-нибудь типа этого.

Ответ отправлен: 21.10.2003, 15:46
Отправитель: sir henry


Отвечает Marouder

Доброе время суток, Dick Wint!
Builder'а нет, проверить не могу, но код очень замудренный. Можно проще сделать. Сказал бы, хоть на какой строке вылетает.

Ответ отправлен: 23.10.2003, 14:00
Отправитель: Marouder


 Вопрос № 1053

Привет CJ, Bob, Cyber!
Сразу же прошу прощения, - никого не хотел обидеть,
особенно Cybernetic Creature. Прости за "не оригинальность",
я не то совершенно думал когда писал. Мне правда интересно узнать
чем ты пользуешься. Это никак не обижает тебя, т.к правильно
(по моему URiS писал, не помню) что запомнить всё нельзя а написать можно -
главное, что бы литература была. Выложил бы на своём сайте - сразу половина вопросов
у народа отпала бы. И тебе ещё раз спасибо за работу.
Bob Johnson - у Криса Касперского я и так в списке читателей. Мне вообще интересны
идеи по защите. Программирование мне не так уж и интересно, мне главное идеи!,
остальное уж сам нарисую. Вот смотри, если встречался с 4-м диском LG караоке, сделанным
нашими умельцами с CDcom'a, как они просто обошли копирование файлов подправив TOC.
Хотя я понимаю, что хорошую мысль никто не расскажет, а вдруг?
CJ - то же извини. Если отвечаешь - значит стараешься. Но, как правило, спрашивающий уже
порылся где-то и не нашёл, а ты на "дозвон по модему " отвечаешь "Есть много исходников!".
Или код регистрации мне советуешь зашить в программу, что бы ты его же и нашёл:).
Ладно, не обижайся.
Ребята, извините, я больше не буду.



Вопрос отправлен: 21.10.2003, 14:36
Отправитель: Igor

[Следующий вопрос >>] [Список вопросов]

Отвечает Cybernetic Creature

Добрый день, Igor!
Без обид.
Правда критика нужна. а то можем взлететь вверх и не заметим как падаем.
Дело в том что мой сайт не готов. и времени нету дорабатывать. как только освобожусь сделаю. Работа жмет . а беру я ответы с различных книг в частности Фаронов, Архангельский, Бобровский. эти три книги супер там про все написано. это не говорит что я ничего не знаю кое что я из головы пишу.
ЗЫ А критиковать ты имееш право. критикуй и дальше. только по делу. а если сможещь пришли ответы всех экспертов на твое пред. письмо
MHE
Danke Schön

Ответ отправлен: 23.10.2003, 18:20
Отправитель: Cybernetic Creature


Отвечает CJ

Доброе время суток, Igor!
Че-то ты добрым стал! То настроение портишь, то нате вам!
Конечно стараюсь!
Это я согласен, но по повторному вопросу я предложил исходники, которые потом послал.
А в письме еще и объяснил!
Код? Ну а ты сделай что-бы ни дебагером ни чем подобным просмотреть не смогли.
Или ты вообще хочешь создать текствоый файл с паролем? :-)
Но то что я ничего не знаю, это было очень обидно так как это ни так!
Все нормально!

Ответ отправлен: 22.10.2003, 20:01
Отправитель: CJ


Отвечает sir henry

Добрый день, Igor!
Можно мне сказать? :))
По поводу защиты программ - не совет, а так, голая идея, как Вы любите :)). Хотя реестр уже и оплевали со всех сторон, но думаю, для защиты его можно использовать. Например записать свой ключ не в HKEY_LOCAL_MACHINE\SOFTWARE (где его все могут найти), а куда-нибудь в неожиданное место, например в HKEY_CLASSES_ROOTDEGetBlockFmtNamesParam.DEGetBlockFmtNamesParam :)))
В реестре черти сколько напихано и искать ключ поэтому можно только по какому-нибудь шаблону, типа MyProgramProtect. А если отойти от шаблона? Тем более что в программе своей, Вы можете зашифровать обращение к этому ключу.

Ответ отправлен: 21.10.2003, 15:21
Отправитель: sir henry


Отвечает THE_PRO

Доброе время суток, Igor!
THE_PRO

Ответ отправлен: 22.10.2003, 16:18
Отправитель: THE_PRO



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (28)
C / C++ (29)
Perl (5)
Builder / Delphi (23)
Pascal (22)
Basic / VBA (6)
Java / JavaScript (7)
PHP (10)
Криптография (8)
WinAPI (16)
Пользователю
Windows 95/98/Me (49)
Windows NT/2000/XP (63)
"Железо" (37)
Поиск информации (27)
Администратору
Windows NT/2000/XP (36)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (6)
КоАП (6)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное