線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1990
推到 Plurk!
推到 Facebook!

shellexecute 的問題

尚未結案
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-30 16:07:29 IP:61.30.xxx.xxx 未訂閱
各位大大好 我利用shellexecute發一封附加檔案的mail 但是為什麼附加檔案的檔名中的":" 及 "\" 會變成 "_" 呢? 測試環境為windows200,delphi 6.0 程式如下 procedure Tform1.Button1Click(Sender: TObject); var email:string; begin   email:='mailto:?subject=test&body=test&Att:filename="d:\book1.xls"';   shellexecute(0,'open',pchar(email),nil,nil,sw_showdefault); end; 執行結果如圖:
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-31 10:39:07 IP:61.62.xxx.xxx 未訂閱
mnsf, 您好 我想附加檔案的檔名中的":" 及 "\" 會變成 "_" 是否為經過PChar的型別轉換之後所造成的。 如果單純的 ShowMessage(email);會得到 mailto:?subject=test&body=test&Att:filename='d:\book1.xls' 在這階段時":" 及 "\" 並沒有變成 "_",但經過PChar的型別轉換之後才會變成"__",所以該現象似乎為型別轉換之後所造成的。<--這是我的猜測(若要真的找出是否如此,就必須寫個小程式來讀取和驗證),不過就我所知ShellExecute好像是不能用來附加檔案。你可以參考下面的相關連結討論: http://delphi.ktop.com.tw/topic.php?topic_id=17882 我也在努力學習中 ^^ 發表人 - adonis 於 2004/07/31 11:03:21 發表人 - adonis 於 2004/07/31 11:04:20
------
我也在努力學習中,若有錯謬請見諒。
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-04 14:03:09 IP:61.30.xxx.xxx 未訂閱
引言: mnsf, 您好 我想附加檔案的檔名中的":" 及 "\" 會變成 "_" 是否為經過PChar的型別轉換之後所造成的。 如果單純的 ShowMessage(email);會得到 mailto:?subject=test&body=test&Att:filename='d:\book1.xls' 在這階段時":" 及 "\" 並沒有變成 "_",但經過PChar的型別轉換之後才會變成"__",所以該現象似乎為型別轉換之後所造成的。<--這是我的猜測(若要真的找出是否如此,就必須寫個小程式來讀取和驗證),不過就我所知ShellExecute好像是不能用來附加檔案。你可以參考下面的相關連結討論: http://delphi.ktop.com.tw/topic.php?topic_id=17882 我也在努力學習中 ^^ 發表人 - adonis 於 2004/07/31 11:03:21 發表人 - adonis 於 2004/07/31 11:04:20
adonis大大你好~~ 我將email宣告成Pchar了,但結果還是一樣 第一張圖是mail的內容,附加檔案的":"及"\"一樣會被"_"替換掉(操作環境是windows 2000,但在windows XP不會) 第二張圖是直接從mail開啟Excel後的結果,sheetname會被改掉 第三張圖是直接從d:\開啟Excel後的結果,這個才是我要的Excel檔
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-04 14:05:55 IP:61.30.xxx.xxx 未訂閱
引言:
引言: mnsf, 您好 我想附加檔案的檔名中的":" 及 "\" 會變成 "_" 是否為經過PChar的型別轉換之後所造成的。 如果單純的 ShowMessage(email);會得到 mailto:?subject=test&body=test&Att:filename='d:\book1.xls' 在這階段時":" 及 "\" 並沒有變成 "_",但經過PChar的型別轉換之後才會變成"__",所以該現象似乎為型別轉換之後所造成的。<--這是我的猜測(若要真的找出是否如此,就必須寫個小程式來讀取和驗證),不過就我所知ShellExecute好像是不能用來附加檔案。你可以參考下面的相關連結討論: http://delphi.ktop.com.tw/topic.php?topic_id=17882 我也在努力學習中 ^^ 發表人 - adonis 於 2004/07/31 11:03:21 發表人 - adonis 於 2004/07/31 11:04:20
adonis大大你好~~ 我將email宣告成Pchar了,但結果還是一樣 第一張圖是mail的內容,附加檔案的":"及"\"一樣會被"_"替換掉(操作環境是windows 2000,但在windows XP不會) 第二張圖是直接從mail開啟Excel後的結果,sheetname會被改掉 第三張圖是直接從d:\開啟Excel後的結果,這個才是我要的Excel檔
sorry,忘了則上我的原始碼了,如下 procedure TForm1.Button1Click(Sender: TObject); var MyExcel, FWorkBook, FWorkSheet: Variant; email:Pchar; begin MyExcel := CreateOleOBject('Excel.Application'); MyExcel.WorkBooks.Add; FWorkBook := MyExcel.WorkBooks.Add; FWorkSheet := FWorkBook.WorkSheets[1]; MyExcel.Visible := false; FWorkBook.Saveas('d:\test.xls'); FWorkSheet.cells[1,1]:='test1'; FWorkSheet.cells[1,2]:='test2'; FWorkBook.Save; FWorkBook.close; MyExcel.quit; email:='mailto:?subject=test&body=test &Att:filename="d:\test.xls"'; shellexecute(0,'open',pchar(email),nil,nil,sw_showdefault); end;
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-04 15:01:26 IP:210.201.xxx.xxx 未訂閱
mnsf, 您好    記得先前也有人碰到同樣的問題,不過有其他前輩測試的結果是OK沒問題的,但也有人持不同的見解,將其列出如下: 1. 測試環境 Windows 2000 SP3, BCB 6.0 Update4, Outlook 2000  <--結果OK 2. Win98, BCB6.0 <--結果問題和你一樣 3. http://delphi.ktop.com.tw/topic.php?topic_id=17882    
引言: Q:Can anybody show me how to use ShellExecute to prepare a e-mail with an attachment or how to use 'Send to' function from Windows context menu programatically. (有人可告訴我如何用ShellExecute送出一封含附檔的郵件?) A1:You can not attach files using the mailto, which is what you would have to do to use shellexecute. The only way I know of is to use OLE or scripting. (您不可用Mailto來附加檔案,我想可能要用OLE或Script)
4. 操作環境是windows 2000,但在windows XP不會 <--這是你測出來的結果 綜合以上的結果,若要確保你的開發程式不侷限於環境的不同,還是建議你改以其他作法,例如透過其他郵件元件來開發等..。提供給你參考。 我也正努力學習中 ^ ^ 發表人 - adonis 於 2004/08/04 15:06:04
------
我也在努力學習中,若有錯謬請見諒。
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-04 15:18:35 IP:61.30.xxx.xxx 未訂閱
引言: mnsf, 您好 記得先前也有人碰到同樣的問題,不過有其他前輩測試的結果是OK沒問題的,但也有人持不同的見解,將其列出如下: 1. 測試環境 Windows 2000 SP3, BCB 6.0 Update4, Outlook 2000 <--結果OK 2. Win98, BCB6.0 <--結果問題和你一樣 3. http://delphi.ktop.com.tw/topic.php?topic_id=17882
引言: Q:Can anybody show me how to use ShellExecute to prepare a e-mail with an attachment or how to use 'Send to' function from Windows context menu programatically. (有人可告訴我如何用ShellExecute送出一封含附檔的郵件?) A1:You can not attach files using the mailto, which is what you would have to do to use shellexecute. The only way I know of is to use OLE or scripting. (您不可用Mailto來附加檔案,我想可能要用OLE或Script)
4. 操作環境是windows 2000,但在windows XP不會 <--這是你測出來的結果 綜合以上的結果,若要確保你的開發程式不侷限於環境的不同,還是建議你改以其他作法,例如透過其他郵件元件來開發等..。提供給你參考。 我也正努力學習中 ^ ^ 發表人 - adonis 於 2004/08/04 15:06:04
adonis大大你好, 我之所以不選擇用郵件元件來發email的原因,是因為我不曉得使用者會寄給哪些人,所以才會想用mailto這種方式,因為使用者可能沒辦法記住收件人的完整email address,如果可以利用mailto這種方式的話,使用者就可以利用本身的通訊錄去選擇收件人是哪些人。如果是在醬子需求的前提下,大大會用什麼方式來做出使用者所想要的需求呢?
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-08-04 23:03:47 IP:61.62.xxx.xxx 未訂閱
mnsf, 您好  
引言: 我之所以不選擇用郵件元件來發email的原因,是因為我不曉得使用者會寄給哪些人,所以才會想用mailto這種方式,因為使用者可能沒辦法記住收件人的完整email address,如果可以利用mailto這種方式的話,使用者就可以利用本身的通訊錄去選擇收件人是哪些人。
因為無法確定使用者會寄信給哪些人所以才以mailto的方式好讓使用者當下去挑選要寄給誰,既然如此,何不也讓使用者當下去點選附加檔案(既然畫面都出現了)不是更簡單的解決了你的問題嗎?您說是嗎? 我也正努力學習中 ^ ^
------
我也在努力學習中,若有錯謬請見諒。
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-08-05 08:44:09 IP:61.30.xxx.xxx 未訂閱
引言: mnsf, 您好
引言: 我之所以不選擇用郵件元件來發email的原因,是因為我不曉得使用者會寄給哪些人,所以才會想用mailto這種方式,因為使用者可能沒辦法記住收件人的完整email address,如果可以利用mailto這種方式的話,使用者就可以利用本身的通訊錄去選擇收件人是哪些人。
因為無法確定使用者會寄信給哪些人所以才以mailto的方式好讓使用者當下去挑選要寄給誰,既然如此,何不也讓使用者當下去點選附加檔案(既然畫面都出現了)不是更簡單的解決了你的問題嗎?您說是嗎? 我也正努力學習中 ^ ^
adonis您好 我想要用程式去寫附加檔案的原因,是因為那個附加的Excel檔是由程式到資料庫去撈資料出來,產生在Excel檔的,會暫存在使用者的硬碟中,等到使用者寄出去後,可能會把該Excel檔刪除,所以才會不讓使用者自行點選附加檔案(而且使用者也不會知道程式把Excel檔存在哪裡,除非程式特別告知使用者)。
adonis
高階會員


發表:140
回覆:258
積分:159
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-08-08 16:59:06 IP:61.64.xxx.xxx 未訂閱
mnsf, 您好 我想,要透過OutlookExpress來寄附加檔我看真的在目前為止是很困難的。 不過建議你參考天使大大所提供的方法或許可以克服 ^^ http://delphi.ktop.com.tw/topic.php?topic_id=17882 祝你好運,若真試成功了不要忘了回來回饋給大家您寶貴的經驗。 我也正在努力學習中 ^ ^
------
我也在努力學習中,若有錯謬請見諒。
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-08-09 09:52:18 IP:61.30.xxx.xxx 未訂閱
謝謝你的建議,我會試試看的
系統時間:2024-06-26 23:41:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!