ShellExecute無法執行了?From x86 to x64 |
缺席
|
jimmywu
一般會員 發表:41 回覆:37 積分:15 註冊:2006-12-12 發送簡訊給我 |
Hello !
在Delphi 6.0寫的一個偵測host server網路卡編號的程式,放到64Bit 的環境不能執行了, 我想是因為D6的shell 是 32 bit ,在64bit中是無法執行的,不知怎樣用D6修改 讓該程式,放到64Bit 的環境也能執行???寫法如下: 1. 把字串: batf :='CMD /c NBTSTAT -a ' host 名稱 ' >>'c:\ chk.TXT' '寫到chk.bat 文字檔 (<===寫入正確) 2. 呼叫shell 執行chksvr.bat to write mac addr into chk.txt Delphi程式為: ShellExecute(handle, 'open', pchar(batf), Nil, Nil, SW_HIDE); (<===這一行無效,chk.txt內容是空的) 請教大大們,有解法嗎? |
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
應該是你ShellExecute的用法錯誤
改成以下的方式試看看吧 [code delphi] batf := '/c NETSTAT -a >> c:\Chk.txt'; ShellExecute(handle,'open' , PChar('CMD'), PChar(batf), nil,SW_HIDE); [/code] ===================引 用 jimmywu 文 章=================== Hello ! 在Delphi 6.0寫的一個偵測host server網路卡編號的程式,放到64Bit的環境不能執行了, 我想是因為D6的shell是32 bit ,在64bit中是無法執行的,不知怎樣用D6修改 讓該程式,放到64Bit的環境也能執行???寫法如下: 1.把字串: batf :='CMD /c NBTSTAT -a ' host 名稱 ' >>'c:\ chk.TXT' '寫到chk.bat 文字檔 (<===寫入正確) 2. 呼叫shell 執行chksvr.bat to write mac addr into chk.txt Delphi程式為: ShellExecute(handle, 'open', pchar(batf), Nil, Nil, SW_HIDE); (<===這一行無效,chk.txt內容是空的) 請教大大們,有解法嗎?
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL |
jimmywu
一般會員 發表:41 回覆:37 積分:15 註冊:2006-12-12 發送簡訊給我 |
|
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
你可以試著將batf中的/c拿掉,也就是batf:='NetStat -a >> C:\Chk.Txt';
讓command視窗不要直接關閉 , 看看command視窗會出現什麼訊息
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL
編輯記錄
eaglewolf 重新編輯於 2009-12-27 01:21:33, 註解 無‧
|
jimmywu
一般會員 發表:41 回覆:37 積分:15 註冊:2006-12-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |