找回密码
 注册
关于网站域名变更的通知
查看: 486|回复: 10
打印 上一主题 下一主题

呼叫外部執行檔

[复制链接]
  • TA的每日心情
    郁闷
    2025-10-13 15:46
  • 签到天数: 35 天

    [LV.5]常住居民I

    跳转到指定楼层
    1#
     楼主| 发表于 2024-4-22 13:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本帖最后由 雞翅加辣 于 2024-4-25 11:04 编辑

    最近遇到同事想要在allegro的畫面中,呼叫外部的執行檔,我們以notepad.exe 作為範本。
    爬了一些文,發現如果是linux系統的,可以使用ipcBeginProcess,但由於我的作業系統是windows,所以只能換個方法。
    於是乎,找到了一個指令"system" 可以作為切入點。

    作法如下
    1.在Allegro.men中寫好exe的名稱,好讓使用者辨別
    MENUITEM "NotePad++" "ex_notpad"

    2. 在Allegro.ilinit下 寫入
    load "ex_fun_notepad.il"

    3.ex_fun_notepad.il 內容如下
    axlCmdRegister ("ex_notpad" 'echo_etn_notepad" ?cmdType "general")
    procedure (echo_etn_notepad()
       exepath=strcat(cdsGetInstPath() "//tools//exturnal//ex_fun.bat"
       system(exepath)
    )


    4.建立一個文字檔,將檔名改成ex_fun.bat
    並寫入
       @Echo off
       start notepad++的路徑\notepad.exe
       exit
    再將此bat 放入candence安裝路徑下的tools\exturnal資料夾下。



    目前我使用上沒有問題,不曉得前輩們有沒有更好ˋ的作法?

    4/25 補
    1.如果是想要直接接呼叫外部程式,可以在commend下 執行shell "路徑\*.exe" 即可。謝謝aarom 大師的幫助!


    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    推荐
    发表于 2024-4-24 04:35 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽

    该用户从未签到

    3#
    发表于 2024-4-22 14:57 | 只看该作者
    你这个方法不错。
    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    4#
    发表于 2024-4-22 15:22 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽
  • TA的每日心情
    郁闷
    2025-10-13 15:46
  • 签到天数: 35 天

    [LV.5]常住居民I

    5#
     楼主| 发表于 2024-4-22 17:43 | 只看该作者
    aarom 发表于 2024-4-22 15:22
    很厲害!

    但只是要直接叫"NotePad++", 應該會更有簡單方式. (不用*.il,更不用*.bat)

    我有寫了一支.NET 開發的免安裝執行檔,主要用來匯入阻抗控制的規則。
    我發現直接用SYSTEM呼叫執行檔,會讓我執行檔無法參考到同資料夾下的config設定。
    所以才出此下策,改成呼叫bat ,再讓bat呼叫exe

    想請教前輩用的是哪種skill內建的函數?
    感激

    该用户从未签到

    6#
    发表于 2024-4-23 14:07 | 只看该作者
    我试过了,确实很厉害。棒棒哒
  • TA的每日心情
    郁闷
    2025-10-13 15:46
  • 签到天数: 35 天

    [LV.5]常住居民I

    7#
     楼主| 发表于 2024-4-25 10:58 | 只看该作者
    aarom 发表于 2024-4-24 04:35
    不是skill, 是一般 COMMAND 指令, 在 COMMAND 視窗 下指令就執行了.
    看一下 "shell" 指令.

    謝謝大師,我試過了
    shell "路徑\xxxxx.exe" 就可以了。不過我程式啟動還是會出現某些東西抓不到, 所以我還是會暫時先呼叫bat檔來啟動!
    非常感謝您的提示

    点评

    shell 也能叫*.BAT, 但*.BAT最有效率的用法, 是用 *.BAT 直接開檔案的用法. 當然你會寫SKILL, 就不用*.bat, 直接使用SKILL.  发表于 2024-4-26 06:50
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-22 04:30 , Processed in 0.187500 second(s), 29 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表