Możesz sobie stworzyć ukryte okno, które będzie służyło tylko do odbierania komunikatów WM_TIMER. Chyba, że chcesz to zrobić bez okien. Wtedy tworzysz timer funkcją SetTimer, a następnie przechodzisz do pętli wiadomości: MSG msg; while (GetMessage(&msg, NULL, 0, 0)==1) { if (msg.message==WM_TIMER) { // kod obsługi timera...
Jeśli robisz to przy użyciu Sleep (bardzo złe rozwiązanie o dokładności nie mówiąc), to musisz wymusić obsługę kolejki komunikatów lub wymusić przerysowanie formatki. Powinieneś zastosować obiekt Timera.
Temat nie raz wałkowany, a rozwiązanie leży w WinAPI i QueryPerformanceCounter tak więc zupełnie niezależne od języka programowania.
Takie coś to się robi za pomocą zdarzeń albo osobnego wątku do odbioru a nie za pomocą timera :) Buildera nie znam ale jeśli masz komponent to zobacz czy nie posiada on zdarzenia do odbioru danych aby go oprogramować.
Skoro piszesz o WM_TIMER, to pewnie chodzi o funkcję SetTimer. Jej pierwszy argument może być zerem gdy nie masz okna, wtedy drugi argument jest ignorowany, a funkcja zwraca identyfikator utworzonego timera, który podajesz do funkcji KillTimer. Gdy już uruchomisz taki timer, będzie on wysyłał komunikat WM_TIMER tylko do kolejki komunikatów aktywnego...
Najprościej - utwórz Timer (CreateTimer) i utwórz procedurę odpowiadającą na zdarzenie WM_TIMER, która ponownie odczyta zmienną i uaktualni pole z tekstem.
kolego, powyzsze watki mowia zeby wykorzystac czestotliwice procesora + licznik cykli, wszystko jest w winapi, wiec kontrolowane systemem win a jaki jezyk do tego uzyjesz jest bez znaczenia. jezeli upierasz sie na dos, to wiem ze kiedys mozna bylo wykorzystac timer 8253/8254 piszac procedure w asm, np: procedure Wait; assembler; {----------------------------------...
Witam ! Mam sobie program, w którym każdy z wątków monitoruje jeden adres IP. Po odpaleniu, wątek ustawia sobie timer na zadany czas, a potem czeka w pętli na mesga WM_TIMER. Czeka uśpiony (mam nadizeję) gdyż konstrukcję mam while(GetMessage(&msg, NULL, 0, 0)) Dziś przeczytałem w MSDN, że nieefektywne jest ustawienie, kiedy odpali się...
A gdyby skorzystać z dodatkowego timera, który wysyłałby komunikaty co określony czas, i w zależności od stanu przycisku sterował pojedynczą lub powtarzaną akcją ?
Witam. W WinAPI raczej nie korzysta sie z akcji typu Delay() :). Uzyj kontrolki Timer - ustaw odpowiedni czas i zareaguj na komunikat od tej kontrolki (chyba OnTimer). Dziala to tak, ze Timer, po ustawieniu np: 400ms co 400ms generuje komunikat OnTimer. Dalej powinienes sobie poradzic. Jak nie, to pisz. Pozdrawiam.
rozwiazania są 2...Pierwszy na formie dajesz takie samo zdarzenie onmousemove... Drugie to obsługa myszy po winapi i kontrolowanie położenia bezwzględnego wraz z monitorowaniem położenia tej bitmapy...Tylko potrzebny wtedy timer albo wątek obsługi myszy... Jeszcze inny sposób to ONMOUSE LEAVE
Też polecam metodę z przedstawieniem liczby w postaci znakowej i przesłania jej w takiej postaci. Wymieniłbym tu następujące uwagi: 1. Rzeczywiście, jak zauważył bobbyAIR , żadna z wartości zaraz po odbiorze przez uP lub PC nie ma jeszcze jakiejś szczególnej interpretacji, o ile takiej nie narzucisz. Jednak używając postaci binarnej, każdy przesyłany...
Napotkałem kolejny problem...nie wiem w jaki sposób miałbym zrealizować taką funkcję która co jakiś czas po uruchomieniu automatycznie by sie wywoływała. Tzn chodzi mi o to że odpalam przyciskiem zbieranie pomiarów i one co 100ms się zbierają i aktualizuje się treść TextBoxa...jednakże nie chodzi mi o to żeby po wciśnięciu przycisku program wpadł w...
http://msdn.microsoft.com/en-us/library/... http://msdn.microsoft.com/en-us/library/... http://support.microsoft.com/kb/167345 2. Timer / wątek 3. A kiedy ma okno nie być jak nie przy włączaniu? 4. Procedury? Chcesz kod źródłowy Windowsa?
No to nie bedzie tak zle :) C++ ma duzo wspolnego z C :) po prostu nie bedziesz mial wszystkiego tego co masz w C++ :) Dobrze ze pisales w WinApi bo c++ z .NET ma juz nie wiele wspolnego z c++ i to by byl czas stracony, zwlaszcza ze w .NET najlepiej uzywac C# A co do Timera to ktory tam chcesz... po prostu pobaw najlepiej sie wszystkimi :) a i zerknij...
Kiedyś programowałem w WinApi i szło to jakoś tak: Na początku zdefiniuj sobie timer tak: #define IDT_TIMER1 1001 w trakcie programu po stworzeniu okna najlepiej wywołujesz pierwszy timer: unsigned int czas = rand() % 10 + 25; // czas od 10 do 35 sek SetTimer(hWnd,IDT_TIMER1,czas,TIMERPROC(... // tworzymy nowy timer Nastepnie w procedurze obsługi...
Mój program po stworzeniu nowego wątku odczytującego coma mocna obciąża procesor, ponad 90%. Nie musisz uruchamiać nowego wątku. Otwórz jakieś okienko i uruchom w nim timer np 100ms, a w zdarzeniu timera zrób ReadFile - to wcale nie obciąża procesora Timeout COMa ustaw na max 90% interwału timera okna Jest taką funkcja w WaitCommEvent ale ona nie powraca...
wtedy umiescic to w osobnym watku? czy w timerze ktory bedzie caly czas nasluchiwal WaitCommEvent? bo nie wiem co dokladniej mialoby mi to dac. czy prace w petli, czy tez zapobiec blednemu dzialaniu przy odbieraniu?
Kolega sulfur nie doczytał, nie pisałem o WinAPI, tylko o swoim okienkowym API na AVR, a że jest podobny do WinAPI z czasów W3 to nie dziwne. Pominąć zdarzenia możesz nie tylko w przypadku okienek, także w technicznych zastosowaniach. Np. czekasz na naciśnięcie przycisku, nerwowy użytkownik naciska go 3 razy, ale ciebie interesuje tylko fakt, że go...
Wątek to nic innego, jak niezależny blok kodu, który po części żyje własnym życiem. Choć jest uzależniony od procesu (programu), który go stworzył, to dysponuje przede wszystkim własnym czasem procesora. Dzięki temu możesz w nim wykonywać instrukcje w sposób równoległy (niezależny) od reszty programu (notabene, każdy program posiada przynajmniej jeden,...
Po bardzo długiej przerwie na forum wracam ;] Program świetnie działa na kolejce STL-a Teraz zmagam się z wątkami i ich synchronizacją... Chciałbym by: - jeden wątek był odpowiedzialny za odbiór z COM - drugi wątek był odpowiedzialny za wysyłanie do COM - trzeci wątek główny za interfejs. W tej chwili wszystko działa na timerach :/ bo to było najprostsze...
Joya obsługuje się najprościej z winapi. Poniżej 2 funkcje niezbędne...Najpierw należy przechwycić joy (joyGetDevCaps) a potem wystarczy tylko timer i cyklicznie JoyGetPos....Acha dla joystickjów więcej niż 2 osiowych używa się JoyGetPosEx z tej samej dll'ki... Public Declare Function joyGetPos Lib "winmm.dll" Alias "joyGetPos" (ByVal uJoyID As Long,...
Witam Od pewnego czasu zajmuje się komunikacją ATMEGI 328P i komputera poprzez popularny prot COM. Napisałem własny program w C++, który odbiera pewne dane od ATMEGI. W programie użyłem struktury DCB Winapi. Jako, że Atmega nie odzywa się nie pytana użyłem timera, który sprawdza czy przypadkiem coś nie przyszło. Poniżej kod, którego używam (dla komputera)...
ja proponuje funkcje WinAPI: SetTimer, potem juz tylko obsluga komunikatu WM_TIMER, nadaje sie doskonale do takich rzeczy.
Co do paska to TIMER załatwił sprawę :P. Możecie (jak wiecie jak) poprawić ten kod kalkulatora aby wreszcie działał :( #include <windows.h> #include<string> #define mnoz 1000 #define dzie 1001 #define odej 1002 #define dodaj 1003 using namespace std; LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); HWND klik1,klik2,klik3,klik4,klik5,klik6,klik...
Najprostszy przyklad w czystym WinAPI #include <stdio.h> #include <windows.h> #include "Res\resource.h" //*=====================================... #define ID_TIMER 1 #define CZAS_MS 10000// 10000ms (10s) //*=====================================...
Poprzedni temat został zamknięty... hmmm... no nic. Tu masz klasę do rejestracji klawiszy skrótu: Opis działania: Uruchamiasz program i klikasz klawisz skrótu lub przycisk. Okno chowa się na 1s, po 500ms robiony jest screen. Timer1 - realizuje opóźnienie 500ms test - flaga określająca stan timera - jeśli prawda to zrzut ekranu, jeśli fałsz to pokaż...
Programowanie uC od PC różni się tym że nie mam gotowych funkcji (np.Winapi) i nie operuje na np.skomplikowanej karcie graficznej do której mam gotowe przerwania, funkcje. W uC operuje głównie na rejestrach odpowiedzialnych za stan pinów na wyjściu, rejestrach timera/ów itd. W uC nie mam gotowego układu, wszystko co chcę zaprogramować muszę pierw stworzyć...
Tez kiedys korzystalem z winapi i mialem problemy z poustawianiem timerow. dobra rada, skorzystaj z komponentu comport - odwala cala robaote za ciebie i jest funkcja w ktorej mozesz porac dane jezeli tylko pojawia sie w buforze (onrxchar)
https://obrazki.elektroda.pl/8335986900_... Witajcie moi drodzy Przedstawię tutaj przykład użycia 32-bitowego mikrokontrolera PIC32MX250F128B w roli hosta USB obsługującego pendrive (zapisującego i odczytującego z niego dane). W temacie opiszę najpierw płytkę którą pod tego PICa zaprojektowałem, a potem przykładowe kody obsługi pendrive...
http://obrazki.elektroda.pl/4871444500_1... Steropes Witam, chciałem przedstawić robota klasy linefolower. Pracowałem nad nim w wolnym czasie około roku wliczając różne wersje. Jak zwykle chciałem odejść od stereotypów i głównego nurtu linefolowerów. Głównym celem było, aby robot mógł widzieć linie przed nim, by mieć trochę więcej czasu...
Posiadam (mysql-connector-c-6.1.11-win32.zip), więc myślę, że nie tu problem, jest 32 bitowa wersja. Zmiana na starsze pliki source nie wchodzi w grę, ponieważ stare mi działają, a chcę mieć tę nowszą, inaczej bym się z tym nie męczył. W kodzie źródłowym nic nie ruszałem, jedynym problemem jest ta "kompatybilność", też natknąłem się w google na temat...
Witam wszystkich BARDZO serdecznie ;] Od pewnego czasu piszę swoją aplikację (C++ Builder) wykorzystującą komunikację po RS-232. W wersjach BETA program był jednowątkowy a komunikacja opierała się na timerach. Postanowiłem jednak że w wersji finalnej program musi posiadać asynchroniczną komunikację RS-232 i najlepiej z niezależnymi wątkami nadawania...
winapi button winapi książek winapi rs232
zerwana plomba uziemienie instalacji elektrycznej bezpieczniki octavia
Czy w zabieraku od kopniaka potrzebny jest jlin? Schemat punktów masy Mercedes-Benz W163 (ML-Class)