映射Delphi寫的console 程式 |
缺席
|
bluesum
一般會員 發表:3 回覆:11 積分:2 註冊:2009-05-09 發送簡訊給我 |
各位好
我用JCL 的TJvCreateProcess 不能顯示以下Delph寫i的console 程式(看不到'type something') 大家有沒有辦法解決? 多謝先 [code delphi] program Project1; {$APPTYPE CONSOLE} uses SysUtils; var s:string; begin writeln('type something'); readln(s); writeln('You typed ' s); readln(s); end. [/code] |
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
Hello
你的 JCL 的TJvCreateProcess 的 Version 是多少?? 試試看 rev 1.29 的版本
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
編輯記錄
AndrewK 重新編輯於 2009-05-21 21:46:09, 註解 無‧
|
bluesum
一般會員 發表:3 回覆:11 積分:2 註冊:2009-05-09 發送簡訊給我 |
|
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
當你下載 Jedi Code Library 時,其中就會註明你下載的 version 為何
你可以上網查詢,會有很多相關的資料 若不確定你手上的版本為何 倒是建議可以下載新的版本來試試看 祝你好運~~ ===================引 用 bluesum 文 章=================== 怎樣查看 Version ? 請給我 rev 1.29 綱址 Thanks
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
編輯記錄
AndrewK 重新編輯於 2009-05-22 13:02:52, 註解 無‧
|
bluesum
一般會員 發表:3 回覆:11 積分:2 註冊:2009-05-09 發送簡訊給我 |
===================引 用 AndrewK 文 章=================== 尚你下載 Jedi Code Library 時,其中就會註明你下載的 version 為何 你可以上網查詢,會有很多相關的資料 若不確定你手上的版本為何 但是建議可以下載新的版本來試試看 祝你好運~~ 我重新安裝 jcl 1.104.1.3248 和JVCL 3.36 也不行 (我正在用Delphi 2009 Trial) 可否給我 JCL 1.29 和相關 JVCL 綱址的試試 ? |
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
Hello
其實你用 3.x 版本 我想~~ 原來 JCL 於 1.x 的 bug 也同樣修正了 如果你是使用 Delphi 2009 的試用版 建議先使用以下版本
最近行程太滿 沒什麼時間幫你測 所以以上沒測試過 資訊由官方網站 及 help 而來
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。 |
bluesum
一般會員 發表:3 回覆:11 積分:2 註冊:2009-05-09 發送簡訊給我 |
hi
===================引 用 AndrewK 文 章=================== Hello 其實你用 3.x 版本 我想~~ 原來 JCL 於 1.x 的 bug 也同樣修正了 如果你是使用 Delphi 2009 的試用版 建議先使用以下版本
最近行程太滿 沒什麼時間幫你測 所以以上沒測試過 資訊由官方網站 及 help 而來 我再裝Delphi 7 ,安裝JCL 和JVCL沒有warning(delphi 2009 有warning) 仍然看不到'type something' ,那個控件只有行 "C:\WINDOWS\system32\cmd.exe" 才沒有問題 我有心理凖備你很久才幫到我 |
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
Hello
我花了一點時間,測試了一下 發現~~ 在測試下是沒有問題的 你的 os 和 delphi 的語系各是什麼呢? 測試環境: 軟體:Delphi 7 Jvcl:只安裝 JvCmp 和 JvCore 描述: 依你所述寫了一個 console 程式, 再利用 TCreateProcess Run
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。 |
bluesum
一般會員 發表:3 回覆:11 積分:2 註冊:2009-05-09 發送簡訊給我 |
win xp sp3,Delphi 7
可能因為我用了X版的關系 我在無意中在大陸網找到 http://download.csdn.net/source/845128 雖然仍然不能映射Delphi寫的console 程式 但是可以映射VC寫的console 程式 [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) tmr1: TTimer; Memo1: TMemo; Edit1: TEdit; Button1: TButton; procedure tmr1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private procedure InitConsole; procedure WriteToPipe(Pipe: THandle; Value: string); { Private declarations } public { Public declarations } end; var Form1: TForm1; ReadIn, WriteIn,ReadOut ,WriteOut :THandle; implementation {$R *.dfm} function ReadFromPipe(Pipe: THandle): string; var Buffer: PChar; ReadBuffer,BytesRead: DWord; begin Result := ''; if GetFileSize(Pipe, nil) = 0 then Exit; Buffer := AllocMem(ReadBuffer 1); repeat BytesRead := 0; ReadFile(Pipe, Buffer[0], ReadBuffer, BytesRead, nil); if BytesRead > 0 then begin Buffer[BytesRead] := #0; OemToChar(Buffer, Buffer); Result := string(Buffer); end; until (BytesRead < ReadBuffer); FreeMem(Buffer); end; procedure TForm1.InitConsole; var Security: TSecurityAttributes; start: TStartUpInfo; ProcessInfo: TProcessInformation; begin with Security do begin nlength := SizeOf(TSecurityAttributes); binherithandle := true; lpsecuritydescriptor := nil; end; Createpipe(ReadOut, WriteOut, @Security, 0); Createpipe(ReadIn, WriteIn, @Security, 0); with Security do begin nlength := SizeOf(TSecurityAttributes); binherithandle := true; lpsecuritydescriptor := nil; end; FillChar(Start, Sizeof(Start), #0); start.cb := SizeOf(start); start.hStdOutput := WriteOut; start.hStdInput := ReadIn; start.hStdError := WriteOut; start.dwFlags := STARTF_USESTDHANDLES STARTF_USESHOWWINDOW; start.wShowWindow := SW_HIDE; CreateProcess(nil, PChar('cmd'), @Security, @Security, true, NORMAL_PRIORITY_CLASS, nil, nil, start, ProcessInfo) //cmd 可以改成其它的程式 end; procedure TForm1.tmr1Timer(Sender: TObject); var s: string; begin s := ReadFromPipe(ReadOut); if s <> '' then begin Memo1.Lines.Text := Memo1.Lines.Text s; Memo1.SelStart := Length(Memo1.Lines.Text); Memo1.SelLength := 0; end; end; procedure TForm1.WriteToPipe(Pipe: THandle; Value: string); var len: integer; BytesWrite: DWord; Buffer: PChar; begin len := Length(Value) 1; Buffer := PChar(Value #10); WriteFile(Pipe, Buffer[0], len, BytesWrite, nil); end; procedure TForm1.FormCreate(Sender: TObject); begin InitConsole; end; procedure TForm1.Button1Click(Sender: TObject); begin if Trim(edit1.Text) <> '' then begin WriteToPipe(WriteIn, edit1.Text); edit1.Text:=''; end; end; end. [/code] ===================引 用 AndrewK 文 章=================== Hello 我花了一點時間,測試了一下 發現~~ 在測試下是沒有問題的 你的 os 和 delphi 的語系各是什麼呢? 測試環境: 軟體:Delphi 7 Jvcl:只安裝 JvCmp 和 JvCore 描述: 依你所述寫了一個 console 程式, 再利用 TCreateProcess Run |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |