Delphi中paramstr 的用法(转载)

  function   paramstr(i:index):string
        对于任何application paramstr(0)都默认代表的是应用程序的绝对路径。那么有paramstr(0),就肯定
有paramstr(1),paramstr(2)...了。它们的值又是什么了?我试了下取出的是空值,又不能赋值。
        delphi帮助中说Returns a specified parameter from the command-line.从命令行中返回一个特别的参数。

折腾了半天才搞清楚,就是在exe文件后面可以跟参数,paramstr 获取的就是exe文件后面跟参数。
        如有可执行文件project1.exe 在运行中输入   e:/project1.exe 123 456 789
        那么paramstr(1)='123' paramstr(2)='456' paramstr(3)='789'
        用shellexecute的话可以在parameters参数位置输入值。不同的参数值之间用空格隔开
如 shellexecute(application.Handle,'open','project4.exe','123 456', 'e:/',SW_SHOW);
        所以用paramstr可以在应用程序间进行数据传输。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Delphi编写程序时,添加UAC(User Account Control)可以提高程序的安全性。UAC是Windows操作系统的一种安全机制,可以防止程序在没有管理员权限的情况下对系统进行更改,因此添加UAC是非常必要的。 首先,需要在程序的清单文件(.manifest)添加UAC请求,声明程序需要管理员权限才能运行。在Delphi,可以通过添加一个res文件来实现。将以下代码复制到文本编辑器,另存为一个名为“程序名.res”的文件。 {$R 'UAC.res' 'UAC.rc'} 其,UAC.rc文件的内容如下: 1 RT_MANIFEST "UAC.manifest" 在程序,需要添加一段代码来检查当前用户是否为管理员,并为程序请求管理员权限。这可以通过WinAPI函数来实现。 在程序添加以下代码: uses ShellAPI; function IsAdmin: Boolean; begin Result := False; {$IFDEF MSWINDOWS} Result := CheckTokenMembership(0, {$IFDEF FPC}Winapi.{%H-}{$ENDIF}PSID(1), Result); {$ENDIF} end; procedure RunAsAdmin(const aHandle: HWND; const aFile, aParameters: string); var sei: TShellExecuteInfo; begin ZeroMemory(@sei, SizeOf(sei)); sei.cbSize := SizeOf(TShellExecuteInfo); sei.fMask := SEE_MASK_NOCLOSEPROCESS; sei.Wnd := aHandle; sei.lpVerb := 'runas'; sei.lpFile := PChar(aFile); sei.lpParameters := PChar(aParameters); sei.nShow := SW_SHOWNORMAL; if ShellExecuteEx(@sei) then WaitForInputIdle(sei.hProcess, INFINITE); end; 然后,可以在程序的入口处(如FormCreate)添加以下代码来检查当前用户是否有管理员权限: if not IsAdmin then RunAsAdmin(Application.Handle, ParamStr(0), ''); 这将在程序开始时检查当前用户是否为管理员,如果不是,将弹出UAC提示框,请求用户授权。 通过以上步骤,就可以为Delphi程序添加UAC,提高程序的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值