全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1004
推到 Plurk!
推到 Facebook!

為什麼向另一程式傳送一組數據是經常少第一位?

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-26 19:50:39 IP:61.150.xxx.xxx 未訂閱
我的程式從串埠得到一組數據,然後發往另一程式A,剛開始我使用PostMessage,發現這組數據能傳到windows的Calc‧exe和Notepad‧exe,但不能傳送到另一程式A,我想是不是另一程式A是MDI的緣故,因此我用 Sendkeys(pchar((Edit1‧Text) '{tab}{tab}{enter}'),false);能發送給作業系統任意窗口,包括UltraEdit及Word都沒問題,數據都完整。但不知為何傳送給另一程式A時經常少第一位數據,注意是經常,如果是Always,我可以用Sendkeys(pchar(Copy(Edit1‧Text,1,1) (Edit1‧Text) '{tab}{tab}{enter}'),false);予以解決,特請各位先進指點迷津為什麼會出現這種問題?
derekcylin
一般會員


發表:0
回覆:7
積分:6
註冊:2003-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-05 18:30:57 IP:211.21.xxx.xxx 未訂閱
能否大概簡述一下程式A的程式呢? 依你所講的狀況, 應該是程式A的綠故, 而用SendKey的傳送, 就必需要了解在VCL中訊息的傳遞關係, 不知道這程式A是怎麼去取訊息的, 它應該在你的處理函式前就已經被處理過了.
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-09 11:51:32 IP:61.134.xxx.xxx 未訂閱
Hi! DereKcylin ,謝謝你的回應,4月26日提出問題後,過了一個星期,線上沒有人回應,我想是我問題表達不清楚抑或是提問題的方式不對,到今天(5‧9)才發現有你的回應。兩個字描述我現在的心情:開心!也再一次感謝你的回應! 至於程式A的狀況,我僅知道它是用Visual C 設計的,它怎樣去取訊息的我不清楚,如果方便希望有先進能告訴我怎樣trace 程式A取訊息的方式,然後再解決這個問題。
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-17 12:50:31 IP:218.166.xxx.xxx 未訂閱
就您的問題來說 您已經確定過發給其他的程式是正常的 只有發給您的A程式會這樣 這樣一來,很明白的,是A程式出了問題 您說不知道怎麼去追A程式...這個嘛.. 通常我的作法是倒追,也就是,由輸出的FUNCTION 開始 向之前處理和接收RS232的地方去追.. 找到接收的地方後,看看接到到的,是不是本身就有問題 再來想要怎麼解 有一個雙向CHECK的作法,就是你把A程式收到的東西再回傳給 你發送的程式,由發送的程式去CHECK是否正確 如果不正確,就再發送,直到正確為止,這應該也是一種辦法 發表人 - turboted 於 2003/05/17 12:52:04
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-27 13:46:02 IP:219.145.xxx.xxx 未訂閱
感謝turboted,derekcylin 兩位前輩的悉心指點,我今天已經知道為什麼在轉送中會隨機丟失一位數字的原因了。 可能與程式A自身特點有關,其他程式例如UltraEdit ,在我的程式取得數據後,就可以直接向 UltraEdit發送,但向程式A發送時,必須再經過1秒的延遲,才可以獲得完整數據。 最後,再次感謝turboted,derekcylin兩位前輩的回應。
系統時間:2024-04-28 17:17:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!