Skocz do zawartości

Oddity

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wszystko napisane przez Oddity

  1. Oddity

    .net

    Zalet jest dużo, nie chce mi się samemu ich pisać, więc poniżej zamieszczam krótkie omówienie od Micro$oft :P. Platforma Microsoft .NET, wykorzystująca standardowy materiał integracyjny języka XML i protokołów internetowych, jest rewolucyjnym modelem tworzenia zaawansowanego oprogramowania nowej generacji. Wcześniej modele programowania skupiały się na pojedynczym systemie, usiłując maskować oddziaływania z innymi systemami w taki sposób, by wyglądały jak oddziaływania lokalne. Platforma Microsoft .NET została specjalnie zaprojektowana w taki sposób, by pozwolić na integrację lub koordynację dowolnej grupy zasobów internetowych w jedno rozwiązanie. Obecnie taki typ integracji jest niezwykle skomplikowany i kosztowny. Microsoft .NET sprawi, że będzie to naturalny element tworzenia wszelkich programów. Luźno powiązany XML-owy model programowania Microsoft .NET wprowadza koncepcję tworzenia XML-owych usług WWW. Obecne witryny internetowe są przygotowywane ręcznie i nie współpracują z innymi witrynami bez dużej ilości dodatkowego programowania. Model Microsoft .NET zapewnia naturalny mechanizm budowy dowolnego serwisu lub usługi WWW w taki sposób, że będą one mogły grupować się w federację i współpracować płynnie z dowolnymi innymi. Tak jak wprowadzenie wymiennych elementów przyspieszyło rewolucję przemysłową, tak system Microsoft .NET może przyspieszyć rozwój Internetu nowej generacji. Żadnego z tych celów nie da się zrealizować bez pomocy wielu partnerów i milionów niezależnych programistów z przedsiębiorstw, którzy przyczynili się do zbudowania obecnego kształtu branży komputerowej. Jak powiedział Alexander Graham Bell: "wielkie odkrycia i ulepszenia zawsze wiążą się ze współpracą wielu umysłów". Kiedy system DOS stał się popularny wśród użytkowników komputerów osobistych, nowa generacja niezależnych programistów uzyskała możliwość rozwinięcia interesów związanych z aplikacjami dla tego systemu. System Windows jeszcze bardziej rozszerzył te możliwości, a platforma Microsoft .NET przeniesie je na jeszcze wyższy poziom. W ciągu następnych trzech lat Microsoft zainwestuje 2 mld USD, aby umożliwić partnerom branżowym, niezależnym producentom oprogramowania i programistom z przedsiębiorstw tworzenie usług Microsoft .NET. Dla programistów Microsoft tworzy całkiem nowy zestaw narzędzi programowania Microsoft .NET, zaprojektowany od podstaw pod kątem wykorzystania w Internecie i obejmujący funkcje klienta, serwera i usług. Pozwoli on programistom przekształcić Internet z obowiązującej dzisiaj, statycznej prezentacji informacji w sieć bogatych, interaktywnych usług. Przełomowy pakiet narzędzi nowej generacji Microsoftu, Visual Studio, automatyzuje proces tworzenie usług WWW za pomocą techniki "przeciągnij i upuść", zgodnej ze standardem szybkiego programowania aplikacji wprowadzonym przez system Visual Basic. Usługi te będą mogły być wykorzystywane przez dowolną platformę obsługującą język XML. Visual Studio automatycznie generuje nawet kod XML. Microsoft wprowadza również nowy zestaw narzędzi koordynacyjnych BizTalk™, który pozwoli wizualnie programować procesy działalności gospodarczej przez komponowanie usług, umożliwiając analitykom gospodarczym opracowywanie rozwiązań w taki sposób, w jaki robią to programiści. Model programowania Microsoft .NET daje niezależnym twórcom oprogramowania możliwość przeznaczenia mniejszej ilości zasobów na takie aspekty, jak miejsce czy sposób działania aplikacji, a większej na to, co ona robi - czyli na ten aspekt, który jest najbardziej wartościowy. System Microsoft .NET pozwala sprostać niektórym z największych wyzwań stojących przed programistami, którzy zmagają się obecnie z problemem związanym z osiągnięciem kompromisu między funkcjonalnością a łatwością zarządzania. Platforma ta przenosi usługodawców ASP oraz hosting aplikacji na nowy poziom, umożliwiając integrację aplikacji udostępnianych w ramach hostingu z innymi aplikacjami oraz ich personalizację, zapewniając możliwość programowania takich aplikacji oraz ich uruchamiania bez połączenia z siecią. Programiści będą mogli ponadto wykorzystywać i dostosowywać szereg podstawowych komponentów konstrukcyjnych usług Microsoft .NET w tworzonych przez siebie aplikacjach i usługach, co zredukuje nakłady niezbędne do stworzenia doskonałych produktów. Podstawowe komponenty konstrukcyjne usług Microsoft .NET odpowiadają obszarom związanym z funkcjami, w dziedzinie których Microsoft jest ekspertem i może zaoferować szerokiej rzeszy programistów wartościową pomoc. W wielu przypadkach Microsoft unifikuje komponenty konstrukcyjne programów systemu operacyjnego Windows z podobnymi funkcjami obecnie opartymi na Internecie, umożliwiając łatwe oferowanie wysoce rozproszonych, programowalnych usług, które można uruchomić na komputerach autonomicznych, w centrach przetwarzania danych w przedsiębiorstwach, a także w Internecie. Dzięki opcji umożliwiającej natychmiastową subskrypcję podstawowych usług Microsoft .NET programiści mogą podjąć decyzję typu "zbudować czy kupić" w zależności od tego, jak zechcą rozdysponować swoje zasoby. Niektórzy mogą zdecydować się na samodzielne zbudowanie podstawowych usług, ale wielu prawdopodobnie będzie wolało zakupić dobrze zaprojektowany pakiet z doskonałymi narzędziami programowania - tak jak wielu programistów decyduje się nie pisać własnych programów sterujących (driverów) drukarek czy systemu okienek w systemie Windows, a zamiast tego koncentruje się na doskonaleniu jakości swoich produktów. Oferta podstawowych komponentów konstrukcyjnych usług Microsoft .NET obejmuje: § Identyfikację (Identity) - usługa ta wykorzystuje rozwiązanie Microsoft Passport oraz technologię uwierzytelniania systemu Windows, obsługuje poziomy identyfikacji od haseł i portfeli do kart procesorowych i urządzeń biometrycznych. Pozwala programistom na budowanie usług zapewniających klientom personalizację i poufność, klienci zaś uzyskują nowy poziom bezpieczeństwa i prywatności przy dostępie do usług, niezależnie od tego, gdzie się znajdują i z jakiego urządzenia korzystają. Usługa ta wchodzi w skład pierwszej dużej edycji systemu Windows.NET, kryptonim "Whistler". § Powiadamianie i przesyłanie wiadomości (Notification and Messaging) - usługa ta integruje natychmiastowe przesyłanie wiadomości, pocztę elektroniczną, faks, pocztę głosową i inne formy powiadamiania oraz przesyłania wiadomości w zunifikowane rozwiązanie, dostępne na dowolnym komputerze osobistym lub urządzeniu procesorowym. Wykorzystuje Hotmail, pocztę elektroniczną z interfejsem WWW, Exchange oraz system Instant Messenger. § Personalizację (Personalization) - usługa ta przekazuje kontrolę użytkownikowi, pozwalając na tworzenie zasad i preferencji, które bezpośrednio i pośrednio definiują sposób traktowania powiadomień i wiadomości, obsługi żądań udostępnienia danych, a także koordynacji urządzeń użytkownika (na przykład można ustawić stałą synchronizację laptopa z całą zawartością usługi pamięci masowej Microsoft .NET). Ponadto usługa ta przyspieszy i ułatwi przenoszenie danych do nowego komputera. § Magazyn języka XML (XML Store) - usługa ta używa uniwersalnego języka (XML) oraz protokołu (SOAP) do opisu znaczenia danych, co pozwala na zachowanie rzetelności danych podczas transmisji i przetwarzania przez rozliczne serwisy internetowe i użytkowników. W rezultacie serwisy internetowe stają się elastycznymi usługami, które mogą współpracować ze sobą, wymieniać się informacjami i wykorzystywać je. System Microsoft .NET oferuje również bezpieczne, opatrzone adresem miejsce do przechowywania danych w sieci WWW. Każde z urządzeń użytkownika może z tych danych korzystać, optymalizując replikację danych w celu zwiększenia wydajności i umożliwienia korzystania z danych bez połączenia z siecią. Inne usługi mogą korzystać z magazynu internetowego za zgodą użytkownika. Usługa ta łączy elementy NTFS, systemu SQL Server™, Exchange oraz MSN Communities. § Kalendarz (Calendar) - niezwykle ważnym czynnikiem kontroli użytkownika jest czas: kiedy można mi przeszkadzać, a kiedy należy mnie zostawić w spokoju? Staje się to szczególnie istotne wtedy, kiedy ludzie coraz częściej korzystają z coraz większej liczby urządzeń, a użytkownicy i usługi oddziałują na siebie w bogatszy sposób. System Microsoft .NET stanowi podstawę do bezpiecznej i poufnej integracji kalendarzy pracy, kontaktów osobistych i czynności domowych - staje się on dostępny na wszystkich urządzeniach, a za zgodą użytkownika może zostać udostępniony także innym usługom i osobom. Usługa ta wykorzystuje klienta komunikacji i współpracy Outlook oraz system Hotmail Calendar. § Katalogi i wyszukiwanie (Directory and Search) - system Microsoft .NET umożliwia wyszukiwanie usług i ludzi, z którymi chcemy się kontaktować. Katalogi Microsoft .NET to coś więcej niż wyszukiwarki czy książki adresowe. Można je zaprogramować pod kątem współpracy z usługami, aby odpowiadały na konkretne, schematyczne pytania związane z możliwościami tych usług. Mogą one być również grupowane i modyfikowane przez inne usługi oraz łączone z nimi. § Dynamiczne dostarczanie (Dynamic Delivery) - usługa ta pozwala Microsoftowi i programistom na dynamiczne oferowanie dodatkowych poziomów funkcjonalności i niezawodnych automatycznych modernizacji na żądanie, bez instalacji czy konfiguracji ze strony użytkownika. System Microsoft .NET z wyprzedzeniem adaptuje się do potrzeb użytkownika na dowolnym z jego urządzeń. To odwrócenie tradycyjnego modelu aplikacji zależnej od instalacji jest niezbędne w świecie, w którym użytkownicy będą korzystali z usług za pomocą wielu urządzeń. Usługi rozproszone Microsoft .NET będą dostępne zarówno w sieci, jak i w trybie offline. Mogą być wywoływane na autonomicznym komputerze, niepodłączonym do Internetu, dostarczane przez lokalny serwer pracujący wewnątrz przedsiębiorstwa lub udostępniane za pośrednictwem Internetu. Różne egzemplarze mogą ze sobą współpracować i wymieniać informacje w procesie nazywanym federacją, który daje przedsiębiorstwom i instytucjom wybór pomiędzy uruchamianiem własnej infrastruktury oraz korzystaniem z zewnętrznego hostingu, nie zmniejszając przy tym poziomu kontroli ani dostępu do usług w Internecie oraz bez połączenia z Internetem. Usługa katalogowa przedsiębiorstwa może więc na przykład utworzyć federację z usługą internetową. Cecha ta wyraźnie odróżnia usługi oferowane przez system Microsoft .NET od obecnej oferty internetowej. Komponenty konstrukcyjne usług Microsoft .NET mogą być wykorzystywane na każdej platformie obsługującej język XML. System Windows będzie zapewniać najlepsze środowisko do tworzenia i oferowania usług WWW, natomiast klienci oparci na Windows zostaną zoptymalizowane pod kątem dystrybucji usług WWW pomiędzy urządzeniami różnego typu. System Microsoft Windows DNA 2000 już teraz oferuje pierwszą wszechstronną, opartą na języku XML infrastrukturę służącą do budowania i uruchamiania usług WWW.
  2. Oddity

    skanowanie procesów

    Gdzieś na msdn.microsoft.com widziałem przykład, jak to się robi pod VC++ 6. W VC++ .net jest funkcja EnumProcess, jak już wcześniej wspomniałem. Żeby jednak się nie męczyć, radzę skorzystać z EnumWindows i sprawdzać tytuły każdego okna w systemie (wbrew pozorom nie zabiera to dużo czasu). Więcej informacji na ten temat jest w dokumentacji.
  3. Oddity

    .net

    Widzę, że tylko ja używam Microsoft Visual C++ .net. Mam zamiar całkowicie przesiąść się z WinAPI na .net framework i radzę, żeby wszyscy chcący związać swoją przyszłość z programowaniem zaczęli się uczyć tego nowego sposobu pisania aplikacji. Widząc możliwości tej platformy, sądzę, że za parę lat będzie już standardem. Jeśli planujecie zaopatrzyć się w produkt z rodziny Visual Studio .net, polecam C#, ewentualnie C++. Wersja C++ ma to do siebie, że nie można w niej wczytywac okienek z zasobów, wszystko trzeba tworzyć samemu.
  4. Oddity

    hehe

    Jak to dobrze, że ktoś mnie popiera :P
  5. Oddity

    procesy

    VC6 nie posiada wbudowanej funkcji EnumProcess, jednak samo wyliczanie procesów jest możliwe, chociaż trudniejsze niż w wersji .net kompilatora. Problem można rozwiązac poprzez enumeracje okien. Służy do tego funkcja EnumWindows. Później tylko sprawdzasz tytuły wszystkich okien i szukasz instancji danego programu. Takie rozwiązanie ma sens, gdy aplikacjia tworzy jakies okno i w VC++ 6 wydaje się nawet rozsądniejsze od skanowania procesów. Pozdrawiam.
  6. Oddity

    procesy

    Kombinujesz SHiP :P Takie rozwiązania są mało eleganckie i doświadczeni programiści nie powinni ich używać. Ciągle jestem za skanowaniem procesów - niezawodny sposób.
  7. Oddity

    realizacje programu

    Jak zwykle rozwiązań jest kilka. Sposób pierwszy: Skanujesz wszystkie uruchomione w systemie procesy i szukasz czy program jest już uruchomiony. O ile dobrze się orientuję, VC++ 6.0 nie posiada funkcji EnumProcess, więc trochę byś się musiał namęczyć jeśli nie posiadasz VC++ .net. Sposób drugi (opisowy algorytm): 1. Uruchom program. 2. Wczytaj plik np. c:\program\uruchomienie.dat 3. Jeśli jego zawartość to "1", zamknij program. 4. Jeśli "0", ustaw tą wartość na "1" i uruchom się 5. Wykonaj swój kod 6. Zakończ działanie i ustaw uruchamianie.dat na "0" Tak więc nigdy nie uruchomi się druga instancja programu tak długo, jak plik uruchomienie.dat ma wartość "1".
  8. Oddity

    Kompilator

    Zapraszam do głosowania.
  9. Oddity

    lista

    Służy do tego kontrolka ListView. Więcej informacji na jej temat znajdziesz w dokumentacji, którą można pobrać z tej strony. Niedługo pojawi się artykuł i pewna dosyć duża aplikacja wraz z omówieniem, więc będziesz mógł zobaczyć jak korzystać z kontrolki widoku listy. Pozdrawiam.
  10. Oddity

    stringi

    Witam. Banalne problemy są zawsze najtrudniesze :) Ja potrafię męczyć się godzinami z funkcjami typu SetWindowText :-P I tak zawsze błąd leży gdzie indziej. Doświadczenie skkłoniło mnie do sformułowania takiego oto prawa: Błąd jest zawsze prosty i oczywisty, ale nigdy nie leży tam, gdzie go szukasz. Sprawdza się i w programowaniu, i w życiu, prawda? ;)
  11. Oddity

    stringi

    Ojjj, źle myślisz, Pinolec :-P Xantos ma pole listy i chce znaleźć w nim wyraz wczytany z pliku. Słowa w słowniku są zgrupowane jedno pod drugim, więc każde z nich zakończone jest znakiem końca linii '\n' i dlatego, nawet jeśli tego nie widać, jedna pozycja listy przedstawia się następująco: słowo numer jeden\n\0 Natomiast gdy użytkownik wpisze "słowo numer jeden" w kontrolce edit, tekst w pamięci ma postać "słowo numer jeden\0". Dlatego siłą rzeczy nie można go znaleźć, chyba że jest ostatnią pozycją listy, gdyż ta w pliku zakończona jest '\0' a nie '\n'. Na tym polega problem, jeśli dobrze mniemam. Jego rozwiązanie jest bardzo proste. Ja widzę dwa sposoby: Nr. 1 - Usuwasz znak końca linii ze słowa (jeśli dane słowo nie jest ostatnie), pisząc: szWord [lstrlen (szWord) - 1] = '\0' ; Nr. 2 - Do ostatniego słowa z pliku dopisujesz \n na końcu, tak samo jak do tekstu z kontrolki edit. lstrcat (szText, TEXT ("\n")) ; Życzę powodzenia i pozdrawiam.
  12. Oddity

    static text

    Wydaje mi się, że piszesz program w WINAPI a używasz Class Wizarda obsługującego MFC. Gdy stworzysz static text, nadaj mu unikatowy identyfikator (powiedzmy IDC_MAIL) i dodaj jego obsługę do pętli komunikatów. Gdy masz np. adres e-mail i chcesz, aby po jego kliknięciu włączał się klient poczty z tematem ustawionym na "Cześć", to piszesz: LRESULT CALLBACK WndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { ////////////////////////////// // pozostałe komunikaty ////////////////////////////// case WM_COMMAND: switch (LOWORD (wParam)) { ////////////////////// // pozostałe kontrolki ////////////////////// case IDC_MAIL: ShellExecute (hwnd, TEXT ("open"), TEXT ("mailto:somebody@server.com?subject=Cześć"), NULL, NULL, 0) ; break ; } return TRUE ; } return DefWindowProc (hwnd, uMsg, wParam, lParam) ; }
  13. Oddity

    button

    Zgadzam się, przycisk ownerdraw byłby dobrym rozwiązaniem, gdyby obramowanie miało być rysowane po naciśnięciu lewego przycisku myszy. Jednakże w tym przypadku mniemam, że chodzi o narysowanie ramki, gdy nad kontrolką znajduje się kursor. Wymaga to przechwytywania komunikatu WM_MOUSEMOVE. Rozwiązaniem jest, jak już wspomniałem wcześniej, utworzenie nowej klasy lub subclassing klasy przycisku ownerdraw i wysyłanie komunikatu WM_DRAWITEM z wskażnikiem do zainicjowanej struktury DRAWITEMSTRUCT. Proponuję zdefiniować stałą znakową ODA_USER_MOUSEMOVE i podanie jej w polu itemAction, gdy kursor jest nad przyciskiem. Pozdrawiam i życzę powodzenia.
  14. Oddity

    MFC

    Ja mam u siebie "Visual C++ dla każdego" Davisa Chapmana, wydawnictwo Helion. Gorąco polecam!
  15. Oddity

    Ukrywanie okna

    Służy do tego funkcja API, ShowWindow (hwnd, nCmdShow), gdzie hwnd jest uchwytem okna a nCmdShow flagą określającą widocznośc okna (minimalizacja, przywrócenie, maksymalizacja itp). Gdy flagę tą ustawisz na SW_HIDE, okna nie będzie widać na ekranie. Nie pracuję na win 9x i nie wiem, czy to usunie program z listy Ctrl+Alt+Del, ale jestem pewien, że pod NT takie numery napewno nie przejdą.
  16. Oddity

    Button

    O ile dobrze pamiętam, nie ma standardowej kontrolki ani stylu przycisku, który pozwoliłby mu na takie zachowanie. Każdy problem ma jednak rozwiązanie. Proponuję więc samodzielne stworzenie klasy i implementację kodu "wtopionego" przycisku. Życzę powodzenia.
  17. Oddity

    Czcionka

    Komunikatem WM_SETFONT: WM_SETFONT wParam = (WPARAM) hFont; // uchwyt czcionki lParam = MAKELPARAM(fRedraw, 0); // flaga przerysowania okna Jeślui masz okno o uchwycie hwnd, kontrolkę IDC_BUTTON, czcionkę hFont i chcesz, aby owa kontrolka jej użyła, to piszesz: SendDlgItemMessage (hwnd, IDC_BUTTON, WM_SETFONT, (WPARAM) hFont, MAKELPARAM (TRUE, 0)) ; Życzę powodzenia!
  18. Oddity

    kolor tekstu

    Kontrolka edit z założenia jest tylko prostym interfejsem użytkownik/program, który ułatwia operacje wejścia/wyjścia. Projektanci Windows nie przewidzieli używania kontrolki do wyświetlania tekstu sformatowanego, aczkolwiek możesz zmienić kolor, czcionkę, rozmiar i inne właściwiości czcionki, ale zmiany te zostaną uwzględnione do całej zawartości. Do dokładnego określania formatowania dowolnego fragmentu tekstu przeznaczona jest kontrolka RichEdit (korzysta z niej np. WordPad). Aby ją utworzyć, muszisz wywołać LoadLibrary (TEXT ("RICHED32.DLL")), a następnie funkcję CreateWindow lub CreateWindowEx z nazwą klasy "richedit". Więcej informacji możesz znaleźć w dokumentacji Win32, którą możesz ściągnąć z działu download. Gorąco również zachęcam do ściągniecią z sekcji Upload programu, który demonstruje podstawy obsługi kontrolki tekstu sformatowanego. Życzę powodzenia!
×
×
  • Utwórz nowe...