ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

17.09.2008, 19:12
|
|
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме: 800727
Репутация:
83
|
|
Автозагрузка
Интересует как на делфи добавить прогу в автозагрузку)))
|
|
|

17.09.2008, 19:52
|
|
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме: 4612647
Репутация:
368
|
|
Нужно получить текст с программы,а точнее с TPanel'и. Вообщем эта программа представляет из себя чат,и когда пользователь пишет текст в чате,данный текст потом отображается в TPanel. Мне необходимо этот текст получить из моей программы,для этого я юзаю FindWindow и FindWindowEx и SendMessage с WM_GETTEXT,но они к сожалению не дают желаемого результата. Кто знает как осуществить это пишите
Вот скрины:

--------------------------------------------------------------------------------------
А вот код:
///Код примерный
var
hnd: HWND;
stx: String;
begin
hnd:=FindWindow('TMainForm',nil);
hnd:=FindWindowEx(hnd,0,'TPanel',nil);
SendMessage(hnd,WM_GETTEXT,0,Integer(PChar(stx)));
ShowMessage(stx); 'в итоге вместо настоящего текста появляется TPanelCentral
end;
|
|
|

17.09.2008, 19:57
|
|
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме: 4612647
Репутация:
368
|
|
ronald,
function RegWrite(RK:HKEY;K,N,V:String):Boolean;
var
Handle: HKEY;
ReSo: LongInt;
Begin
Result:=False;
ReSo:=RegCreateKeyEx(RK, PChar(K), 0, nil, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, nil, Handle, nil);
if ReSo <> ERROR_SUCCESS then
Exit;
ReSo:=RegSetValueEx(Handle, PChar(N), 0, REG_SZ, PChar(V),
Length(V) + 1);
Result:=ReSo=ERROR_SUCCESS;
RegCloseKey(Handle);
end;
RegWrite(HKEY_CURRENT_USER,'\Software\Microsoft\Wi ndows\CurrentVersion\Run','XZ','MYPROG.EXE');
как то так.
Только пробелы убери после копипаста
|
|
|

17.09.2008, 21:48
|
|
Новичок
Регистрация: 26.06.2007
Сообщений: 20
Провел на форуме: 8322019
Репутация:
122
|
|
Как можно сделать проверку нескольких Edit (например 6-ти) на наличие символов. кроме как вот так:
if length(edit1.text) and .... length(edit6.text)=0 then
showmessage('заполните все поля!');
|
|
|

17.09.2008, 21:56
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
Код:
for i:=1 to n do if length(edit[i].text)=0 then showmessage()
|
|
|

18.09.2008, 01:15
|
|
Новичок
Регистрация: 25.01.2008
Сообщений: 2
Провел на форуме: 34618
Репутация:
0
|
|
или
Код:
for i:=1 to n do if edit[i].text='' then showmessage()
|
|
|

18.09.2008, 03:58
|
|
Познающий
Регистрация: 29.02.2008
Сообщений: 35
Провел на форуме: 36950
Репутация:
54
|
|
Или вот так, + все едиты и те которые будут создаватся в реалтайм.
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
i : integer;
begin
try
for i:=0 to Form1.ComponentCount - 1 do
if Form1.Components[i] is TEdit then
if ((Form1.Components[i] as TEdit).Text='') then
ShowMessage('Заполните все поля!');
except
end;
end;
|
|
|

19.09.2008, 00:22
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
очищаем массив for i:=0 to 4 do a[i]:=0;
FillChar(a, 0, sizeof(a)); или ZeroMemory(a, sizeof(a));
|
|
|

19.09.2008, 04:11
|
|
Познающий
Регистрация: 29.02.2008
Сообщений: 35
Провел на форуме: 36950
Репутация:
54
|
|
UnPazz
for i:=0 to 4 do a[i]:=i;
freeandnil(a);
fillchar(a,sizeof(a),char(0));
|
|
|

19.09.2008, 18:38
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
вопрос
Сообщение от Scofild
Как можно сделать проверку нескольких Edit (например 6-ти) на наличие символов. кроме как вот так:
if length(edit1.text) and .... length(edit6.text)=0 then
showmessage('заполните все поля!');
ответы
Сообщение от PaNaDoL
Код:
for i:=1 to n do if length(edit[i].text)=0 then showmessage()
Сообщение от Dober'man
Код:
for i:=1 to n do if edit[i].text='' then showmessage()
че за бред?
вы где это увидели?
Вот код который сделает то что нужно (P.S. строгое оформление кода у меня пошло от C#)
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to Form1.ComponentCount - 1 do
begin
if (Form1.Components[i] is TEdit) then
begin
if ((Form1.Components[i] as TEdit).Text = '') then
begin
ShowMessage(Form1.Components[i].Name + ' is empty');
Exit;
end;
end;
end;
end;
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|