| |
|
|
- page 1 - |
|
| allô IF...
je habs la fois getestet et hoffe rien faux gemacht trop avons: KompilierenMarqueSéparation $U thread.pcu = thread.
DEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID"
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
Testprogramm Timer
Profan Version 9
$H Windows.ph
-Main----------------------------------------------------------------
Declare Timer_Busy%,Ende%
Declare TimerID&,Create%,T_Text&,Test#
WindowStyle 26
WindowTitle "Timertest PHU-60"
Window 100,100 - 370,200
cls
Let T_TEXT&=@CREATETEXT(%HWND,"",30,30,300,30)
-Menue---------------------------------------------------------------
PopUp "&Programm"
AppendMenu 108,"&Einstellungen"
AppendMenu 109,"&Ende"
Ende% = 0
Timer setzen (4x pro Sekunde, 250ms)
thread.start 1,1
WhileNot Ende%
WaitInput
If @MenuItem(108)
Einstellungen
Endif
If @MenuItem(109)
thread.stopall
Ende% = 1
Endif
Wend
End
-Proc Einstellungen
Proc Einstellungen
Declare hD%, hA%, hB%, OK%, hTime%
Declare hF1%, hT1%
Clear OK%
Dialogfenster erzeugen
hD% = @Create("Dialog",%hWnd,"Einstellungen",%WinLeft+80,%WinTop+155,230,190)
hF1% = @Create("Font","Arial",16,0,0,0,0)
hT1% = @Create("Text",hD%,"Einstellungen...",10,10,220,20)
SetFont hT1%,hF1%
hTime% = @Create("TimeEdit", hD%, "00:00:00", 10, 35, 70, 24)
hB% = @Create("Button",hD%,"&Nachstellen",10,120,100,28)
hA% = @Create("Button",hD%,"&Abbrechen",120,120,100,28)
WhileNot Ok%
WaitInput
If @ButtonClicked(hB%) Nachstellen
Ok% = 1
Aktionen hier
ElseIf @ButtonClicked(hA%) Abbrechen
Ok% = 1
ElseIf (%Key = 2) ALT+F4 bzw. schließen
Ok% = 1
EndIf
EndWhile
DeleteObject hF1%
@DestroyWindow(hD%)
EndProc
-Prozedur die in bestimmten Zeitintervallen ausgefuehrt wird (4x pro Sekunde)
Proc thread.do
parameters n&
Dim Test#,1000000
Inc Timer_Busy%
Locate 5,5
Print "Timer:" + @str$(Timer_Busy%) + " Durchläufe"
Settext T_Text&,"Timer:" + @str$(Timer_Busy%) + " Durchläufe"
ENDPROC
aussi ici wird cela la fenêtre pas richtig angezeigt! quoi bedeutet cela? Werden im Hauptprogramm au cours de un fil fonctionnement, überschreibt Profan interne gespeicherte Variablen zum Aufrufen de API. Je après que, quelle Profanfunktionen im Hauptprogramm verwendet volonté, ist qui péril la fois plus et la fois moins gegeben, vous ist mais aussi (le son Roland) beim direkten Aufrufen de APIs vorhanden. quand et si un faute auftritt, hängt vom gewählten Zeitintervall, vom calculateur et de qui Programmbedienung par den User ab. quoi bedeutet cela oui c'est ca?
un Beispiel: Beim einem calculateur sous Windows2000 wird beim Aufruf qui API RegUnloadKey un solcher Crash verursacht et qui API wird c'est pourquoi pas korrekt fonctionnement. Daraufhin wird qui Registryhive des User pas comment geplant entladen et ist beim prochain Start pas plus disponible => un ganzes Userprofile ist unwiederbringlich verloren.
un anders Beispiel: cela Hauptprogramm écrit au cours de un Callback fonctionne dans qui Registry. là alles ungünstig zusammentrifft, wird dans une anderen Schlüssel geschrieben et Datenj dans qui Registry aller verloren!
Weitere Fragen et Anmerkungen? |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
| allô IF...
Mir également - avant diesem schönen Voir le texte source konnte je malheureusement den Grund pas trouver. peux du dir maintenant présenter, pourquoi je absolument savons voulais, si du Minuteur dans qui PCU verwendest? Einen Fil serait je seulement stoppen, si il pas plus gebraucht wird => peux fatal volonté!
Salut
AH |
|
|
| |
|
|
|
| non peux je pas wirklich zumal qui Minuteur hierbei Nebensache ist si es réellement alle Dinge betrifft quelle avec procaddr zutun avons. voilà Minuteur wohl plutôt dans qui Minderheit si je bedenke comment souvent une wProc angecallt wird...
je veux dire, selbst si je maintenant dans qui DLL - la fois angenommen - selber qui Zeit le calcul serait et statt sur une Minuteur un Call sur qui ProcAddr fais - ensuite wäre es ebenso grave! cela Problem selbst hat alors pas vordergründig avec den Timern trop 1faire.
une Save-variante wäre es naturellement simple une Message à hwnd trop senden si un Event passer soll. cela wiederum serait mais malheureusement qui Struktur changement. |
|
|
| |
|
|
|
| aussi à toi: Lese dir oui c'est ca par, quoi j'écris. cela Problem hat meiner attitude pour rien avec anderen Callbacks trop 1faire! |
|
|
| |
|
|
|
| je lese qui Postings aller Mitglieder justeoui c'est ca par.
Mir fehlt mais pour Votre dernier Behauptung une Begründung... |
|
|
| |
|
|
|
| WM_TIMER wird chez Angabe einer Adresse pas absolument de qui WndProc bearbeitet, c'est qui Unterschied. |
|
|
| |
|
|
|
| qui Shatter Attack utilise cela - je cherche juste la fois den Artikel... |
|
|
| |
|
|
|
| [quote-part:bf2faa3b30]WM_TIMER wird chez Angabe einer Adresse pas absolument de qui WndProc bearbeitet, c'est qui Unterschied.[/quote-part:bf2faa3b30] Hm sei Je ne böse mais je trouve cela irreführend.
je veux dire, selbst si je maintenant dans qui DLL - la fois angenommen - selber qui Zeit le calcul serait et statt sur une Minuteur un Call sur qui ProcAddr fais - ensuite wäre es ebenso grave! cela Problem selbst hat alors pas vordergründig avec den Timern trop 1faire et pas avec cela - si wm_timer de qui wndproc erfasst wird - zumal unklar ist inwiefern Rolands wndProc ensuite wiederum weiterhandelt...
mais je crois ici peux uns seulement Roland aider... |
|
|
| |
|
|
|
| EasyVent.Dll - selbe Problem... insgesammt mais sicherlich pas unschlecht cela cela Thema angesprochen ist - es brennt aussi mir déjà longtemps sur qui Seele - saisir wirs alors chez den Haxen et attendre Rolands Statement ab... |
|
|
| |
|
|
|
| [quote-part:ae4c1936c9=iF][quote-part:ae4c1936c9]WM_TIMER wird chez Angabe einer Adresse pas absolument de qui WndProc bearbeitet, c'est qui Unterschied.[/quote-part:ae4c1936c9] Hm sei Je ne böse mais je trouve cela irreführend.
je veux dire, selbst si je maintenant dans qui DLL - la fois angenommen - selber qui Zeit le calcul serait et statt sur une Minuteur un Call sur qui ProcAddr fais - ensuite wäre es ebenso grave! [/quote-part:ae4c1936c9] Scon ausprobiert? je veux espérer, wir reden pas aneinander vorbei...
[quote-part:ae4c1936c9] Si you pass a non-zéro HWND after le specified interval has passed, a WM_TIMER message is posted to le window and le TIMERPROC paramètre is ignored. The other option is passing a zéro HWND and a valid TIMERPROC address. dans this cas, after le specified time has elapsed, le HWND is ignored and le system calls your TIMERPROC function. [/quote-part:ae4c1936c9] |
|
|
| |
|
|
|
| peux déjà son cela wir aneinander vorbeireden...
peut-être voyons wir qui Problematik aussi à verschiedenen se mettre...
Spielt oui aucun rôle - grundsätzlich ca va tout autor quoi passiert si une XProfanprozedur pas vom XProfan selbst - mais de außen angerannt wird... - qui Diener hierzu ist procaddr . qui Aufdröselung comment Roland cela realisiert hat peux seulement il uns donner - jusqu'à dato könnten alle Spekulationen im Nachhinein nichtig son. |
|
|
| |
|
|
|
| FALSCH!!!!!!
pas tout autor de wohin vous angerannt volonté, mais comment et wohin vous stehen! Stehen Callbacks außerhalb de Profan, gibt es aucun Probleme. aussi chez Callbacks dedans de Profan pourrait es wohl seulement chez WM_TIMER grand Probleme donner (suis mir là mais pas entier sûrement). |
|
|
| |
|
|
|
| LOL, FALSCH!!! et (suis mir là mais pas entier sûrement). à dem Postings ist rien faux vertrau mir.
eh bien étiez doch la fois Rolands Antwort ab. |
|
|
| |
|
|