ParamCount不同電腦執行的問題 |
答題得分者是:malanlk
|
goat
高階會員 發表:53 回覆:130 積分:134 註冊:2002-06-03 發送簡訊給我 |
我有一支執行程式,要執行另外一之EXE程式,寫法如下:
var sExecStr: string; begin sExecStr := '"' sFileName '" "' ADOConnection1.ConnectionString '"'; WinExec(pchar(sExecStr), 0); end;被呼叫的程式在Create的時候有判斷傳進來的參數有幾個? 但是在不同的電腦執行的時候,卻有ParamCount不一致的情發發生! 因而造成程式判讀錯誤的情形發生? 不知道各位先進,有沒有發生過類似的情形? 感謝! |
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
goat
高階會員 發表:53 回覆:130 積分:134 註冊:2002-06-03 發送簡訊給我 |
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/winexec.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp 第二篇有特別提到 windows 2000 Cmd line 的長度取決於 MAX_PATH 環境變數
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
寫過一個類似的程式,可以分辨不同的作業系統來決定參數的給法,請參考!
< class="code">
var
VerInfo: TOSVersionInfo;
si:TSTARTUPINFO;
pi:TPROCESSINFORMATION;
VerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
GetVersionEx(VerInfo); if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
if not CreateProcess(nil,PChar( '"' ProgramPath '"' CommandLine ),nil,nil,false,0,nil,nil,si,pi) then
begin
MessageBox(GetActiveWindow(),PChar( '啟動程式失敗'),'啟動錯誤',MB_OK or MB_ICONERROR);
exit;
end;
end
else
begin
if not CreateProcess(PChar( '"' ProgramPath '"'),PChar(CommandLine),nil,nil,false,0,nil,nil,si,pi) then
begin
MessageBox(GetActiveWindow(),PChar( '啟動程式失敗'),'啟動錯誤',MB_OK or MB_ICONERROR);
exit;
end;
end; //ProgramPath 是執行程式的完整路經包含程式名稱
//CommandLine 是是多個參數形成的字串
-------------------
學,然後知不足。 發表人 - stallion 於 2005/07/27 17:59:17
|
goat
高階會員 發表:53 回覆:130 積分:134 註冊:2002-06-03 發送簡訊給我 |
終於找到原因了,兇手是ADOConnection1.ConnectionString?! 因為某些電腦上面產生出來的ConnectionString會有類似以下的情形(紅色字體)
Extended Properties="Use Encryption for Data=False;Tag with column collation when possible=False";Use Procedure for Prepare=1; 雖然我在傳參數的時候有使用雙引號包住,但是卻被上述的部分打亂了,導致接到的ParamCount會有不一樣的情形發生。 個人初步判斷,應該是MDAC版本不一樣所產生的...←求證中。 特別感謝malanlk及Stallion兩位兄台的熱心回應! 發表人 -
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |