Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 9265|回复: 12

如何呼叫外部程式 ??

[复制链接]

该用户从未签到

发表于 2010-10-22 22:27:48 | 显示全部楼层 |阅读模式
有沒有哪位長官知道 Lazarus 在 Linux 下如何呼叫外部程式 ??
謝謝


■在 Kylix 3 C++ 程式中如何呼叫外部程式

system("reboot"); 執行重開機
system("poweroff"); 執行關機
system("/home/mytest/Project1"); 執行另一支 Kylix開發的 AP
(以上方法只能執行 有GUI畫面或不需GUI畫面的程式,
回复

使用道具 举报

该用户从未签到

发表于 2010-10-23 00:54:26 | 显示全部楼层
在win下试过,我记得我在社区发过DEMO,linux下没试过
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2010-10-23 16:35:02 | 显示全部楼层
http://wiki.lazarus.freepascal.org/Executing_External_Programs

不過要達到我要求的功能還要再 try 一下 .. 像是必須以 sudo 才能啟動的 power off 或 shutdown
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2025-3-16 16:30
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2010-10-24 19:18:58 | 显示全部楼层
    看系统吧,在Fedora下可以直接使用halt,reboot。而Ubuntu则要sudo
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2010-10-25 11:29:29 | 显示全部楼层
    Use
      OpenDocument(Filename);
    or
      OpenURL(FileName);

    Both in unit LCLIntf (at least in Lazarus 0.9.29)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2010-10-25 11:33:33 | 显示全部楼层
    Use  OpenDocument(Filename); or  OpenURL(FileName);
    Both in unit LCLIntf (at least in Lazarus 0.9.29)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2010-10-25 11:35:17 | 显示全部楼层
    用OpenDocument(Filename);或OpenURL(FileName);在unit LCLIntf (Lazarus 0.9.29)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-10-25 20:56:47 | 显示全部楼层
    傷腦筋之處正是 sudo 後還要輸入 root 密碼 ....
    偶的收銀機程式總不能在交班清機後, 準備關機的程序中, 要收銀員輸入 root 密碼才能關閉收銀機吧 ??  XD ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-10-28 22:08:55 | 显示全部楼层
    Linux 跟 Windows 差異還挺大的, 寫程式外還需懂一些作業系統特性,
    不是拿 Windows 那套來照抄就可以 ....


    關於如何關機不用 root 密碼, 網路找到兩個方法
    How to shutdown and reboot without sudo password?

    there are two ways to do that (Any other ways available?)
    1. Adding suid mode to /sbin/shutdown
    By adding suid mode to shutdown command, you are allowing regular user to run shutdown command as root.
    sudo chmod u+s /sbin/shutdown
    Now you can run shutdown without needing sudo.


    2. Modify /etc/sudoers with visudo
    This seems to be proper way to allow a command to run as root from specified users without needing to type password.
    sudo visudo
    By running visudo, it leads to edit /etc/sudoers.
    Adding the line below to that file, assume mysurface is the user that allow to shutdown without password.
    mysurface ALL = NOPASSWD: /sbin/shutdown
    For ubuntu, usually the default user is in the %admin group. Therefore, you can also allow all users from the %admin group to shutdown without password.
    %admin ALL = NOPASSWD: /sbin/shutdown
    In fact, you still need sudo to shutdown, but this time you do not need to specified password.
    sudo shutdown -h now
    You can also reboot the system by using shutdown command too.
    sudo shutdown -r now
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2010-10-28 22:40:44 | 显示全部楼层
    至於如何在 unbuntu 下自動登入 (如為了要執行 POS 程式), 那就很簡單了
    用 unbuntu 中的菜單, 有 GUI 式的設定功具

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

    x
    回复 支持 反对

    使用道具 举报

    *滑块验证:

    本版积分规则

    QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

    GMT+8, 2025-5-2 21:18 , Processed in 0.033621 second(s), 9 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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