저는 클라이언트와 서버를 가지고 있습니다. 서버는 데스크탑에서 응용 프로그램 목록 (각각 경로, 이름 및 아이콘 포함)을 검색합니다. 그런 다음 응용 프로그램을 LargeIcons가있는 ListView에 표시되도록 클라이언트에 다시 보냅니다. 그러면 클라이언트가 listview의 바탕 화면 아이콘을 두 번 클릭하고 해당 응용 프로그램을 서버에서 열 수 있습니다. (http://support.microsoft.com/kb/814735)ImageList를 키로 다시 연결
내가 따르려고 역 직렬화 할 때 직렬화 된 아이콘이 저하 될 수있는 마이크로 소프트의 버그가 있습니다, 그러나
(아래 버그로 수행되는 경우에 ... 100 % 작동) 고품질의 아이콘을 다시 가져 오기 위해 거기에 주어진 조언.
il.Images.Add(app.path, app.icon);
을 그래서를 가지고 같이 내가 getDesktopIcons() 다음과 같이 내가 할에의 ImageList에 아이콘을 추가 할 때
//Get the list of Applications, which will include an icon, which we'll ignore due to the bug.
List<App> apps = client.ServiceProxy.getDesktopShortcuts();
// Get the ImageListStreamer (The serializable portion of the ImageList) and assign it to our Image List
ImageListStreamer il = client.ServiceProxy.getDesktopIcons();
foreach (App app in apps){
ListViewItem item = new ListViewItem(app.name);
item.ImageKey = app.path;
lv.Items.Add(item);
}
: 여기
내가 뭘하는지입니다 응용 프로그램의 경로가 중요합니다. 그러나 이미지 스트림을 다시 클라이언트로 보내면 핵심 정보가 손실됩니다. 각각의 App 객체에 앱 경로가 있으므로 어떻게 그들을 imagelist의 해당 아이콘으로 순서대로 다시 연결할 수 있습니까?