|
TRegistry *reg = new TRegistry;
TStringList *UnKey = new TStringList;
reg->RootKey = HKEY_LOCAL_MACHINE;
if( reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",false))
{
reg->GetKeyNames(UnKey);
reg->CloseKey();
}
ListBox1->Clear();
for ( int j=0 ; j < UnKey->Count ; j++)
{
if( reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + UnKey->Strings[j],false))
{
if ( reg->ValueExists("DisplayName"))
{
CSE->Socket->SendText(reg->ReadString("DisplayName") + " " );
}
reg->CloseKey();
}
}
위 소스를 보시면 아시다시피, 클라이언트 컴퓨터의 Uninstall 의 레지스트리 키값을
서버로 보내주고 있습니다.
서버에서는
String Rt1 = Socket->ReceiveText();
if ( Rt1 == "?" ){
U8->Clear();
}
else
U8->Items->Add(Rt1);
이런식으로 서버 Memo 나 List 박스로 받고 있구요..
Memo 나 List 컴포넌트를 둘다 써보아도 똑같이 에러가 나는데요.
한꺼번에 날라온다는겁니다..
한줄한줄씩 전속이 되서 리스트박스에 오르는게 아니고.
클라이언트의 Uninstall 목록이 한줄로 다 붙어서 전송되고 있습니다.
예를들면 키값이 a,b,c,d 4개가 나와서 전송을하면
a
b
c
d
이런식으로 리스트박스에 한줄씩 입력이 되지 않고.
abcd 이렇게 한꺼번에 전송받아서 한줄에 입력이 됩니다..
뭐가 문제인지.. 좀 해결해 주십시요
|