EXE執行程式DOS引數的運用

2021-07-25 07:35:15 字數 1720 閱讀 1453

一、windows作業系統提供的資料原型1、function paramstr(i:index):string      // 由命令列返回特殊引數
實際使用  paramstr(n)                    // 引數值   字串型別
2、paramcount                             // 引數總數 整數型別
二、引數的意義
1、paramstr(0)                            // 應用程式的絕對路徑
2、paramstr(1) - paramstr(paramcount-1)   // 返回的序列引數
三、呼叫
1、aaaa.exe 檔案執行時, 採取dos命令列的方式:比如,dos方式,鍵入命令列:
aaaa 111 222 333
2、在實際運用中,常運用在程式呼叫子程式是,比如在程式中,呼叫 個子程式 memo.exe,通過api函式呼叫::
paramstr(1)  = 111

paramstr(2)  = 222

paramstr(3)  = 333

所以用paramstr可以在應用程式間進行資料傳輸。

注意,我們在程式設計時,可以通過delphi的ide,直接設定dos命令列。
(1)delphi ide除錯,設定程式dos引數:project ->run -> parameters,開啟「run parameters」對話方塊,輸入模擬的引數:

程式放乙個listbos,加入以下**:

procedure tform1.formcreate(sender: tobject); 

var i: integer; 

begin  

for i := 1 to paramcount do 

listbox1.items.add(paramstr(i));

end;
獲取的引數值:

1、無引數不執行,可以實現子程式,只能呼叫,不能被單獨執行。只要在子程式的onshoe事件中,加入**以下即可:

if system.paramcount<1 then exit;

2、傳遞引數,(子程式的onshoe事件中)

s1:=paramstr(1); 

s2:=paramstr(2); 

3、獲取執行檔案的目錄路徑(子程式的onshoe事件中)

extractfilepath(paramstr(0)) // (目錄尾部包含\)

五、引數運用中注意的事項
1、引數的帶入時刻
我們實際運用時,執行命令列 a.exe lyhoo 2 true false
這4個引數,在a.exe執行時就能使用、但是我們在實際使用時不是使用paramstr,而是要將它們的值,賦值給全域性變數。這樣,該全域性變數,往往在mainform的onshow事件中執行。這樣,該變數的使用,就有乙個時間差的問題。在form的oncreate事件中,就不能執行。因為,此時它還沒有被賦值。
2、 paramstr在程式中,預設全域性變數,程式中,可以隨時運用。

手動製作python的exe可執行程式

手動製作python的exe可執行程式 by leo jay python沒有內建乙個編譯為exe的功能。給python程式的部署帶來不少的麻煩。所以就會出現一些py2exe之類的很不錯的工具,用於自動把.py檔案編譯為.exe檔案。最近抽空研究了一下手動實現類似py2exe的功能,希望加強對pyt...

c 獲取可執行程式 exe 路徑問題

最近寫c 程式,單獨執行沒有問題。可以讀取程式目錄下的檔案,而且能寫同一目錄下的日誌文字檔案。但 用任務計畫 taks schedule 呼叫程式執行會出問題。不會寫日誌檔案。除錯很久,發現是程式獲取當前執行 目錄寫法有問題。system.environment.currentdirectory 獲...

在dos下執行程式並得到執行結果

imports system.diagnostics dim p as new process p.startinfo.filename cmd.exe p.startinfo.useshellexecute false p.startinfo.redirectstandardinput true ...