我一直在尝试在 Delphi 应用程序中使用 ShellExecute 打开 Mysql 并运行脚本。
ShellExecute(Handle, 'open', PWideChar(InpCommandProgram.text),
PWideChar(commandline), nil, SW_SHOWNORMAL);
InpCommandProgram.text = 'MYSQL'
commandline = '--user=root --password=password < C:/directory/filename.sql '
Run Code Online (Sandbox Code Playgroud)
filename.sql 已被精简为“创建数据库名称”。
命令窗口会短暂打开并滚动一些消息 - 速度太快而无法阅读。如果我打开命令窗口并输入相同的程序和命令行,它就可以工作。失败时我看不到错误消息。
我在 Windows 7 桌面上本地运行。我尝试将输出定向到日志文件,但我什至没有批量获取该文件。当交互成功时,我确实会收到日志。我已经尝试了所有我能想到的调整。
任何有关如何进行的想法将不胜感激。
我尝试使用 ShellExecute 运行应用程序。它运行了,但没有显示(我可以在 TaskManager 中看到实例)。
ShellExecute(0, PChar('open'), PChar(ExtractFileName(edExePath.Text)),
PChar(theParameter), PChar(theFolder), WS_MAXIMIZE);
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能使应用程序以最大窗口大小启动?
我有一个linux命令行,我需要用PHP或Javascript执行(PHP首选.)
命令是
keygen AB3554C1D1971DB7 \pc_code 365
但是,我想\pc_code用$ pccode之类的字符串替换,用户输入生成的PC代码.这是一个合法的项目,但与该计划的创建者有问题给我协助.
请帮忙!
在C中,我system()之前在控制台应用程序中使用了该函数,如果我使用system()它启动另一个进程,则继承调用它的进程的控制台窗口.
在Delphi system()中不存在所以我ShellExecute()用来创建一个新进程,但新进程出现在一个新的控制台窗口中.有什么方法可以让它继承正在调用它的窗口的句柄?
我用过
function GetConsoleWindow(): HWND; stdcall; external 'kernel32.dll';
Run Code Online (Sandbox Code Playgroud)
获取控制台窗口并将其传递给HWND部分ShellExecute(),但这不起作用.
我正在尝试运行隐藏的应用程序,但应用程序表单仍然可见.
ShellExecute(Handle, nil, 'app.exe', nil, nil, SW_HIDE);
Run Code Online (Sandbox Code Playgroud)
如何在Delphi中运行隐藏的应用程序?
我在python中运行了一个模拟,但是到了最后我得到了一个错误.我已经修复了错误.现在我想执行相同的文件,但是从错误行开始.我怎样才能做到这一点?Execfile,就我看来不那样做......
我做了一个游戏启动器,并使用了以下命令:
procedure TFMain.ImgBtn1Click(Sender: TObject);
begin
ShellExecute(TForm(Owner).Handle, nil, 'starter.exe', '-lang rus', nil, SW_SHOWNORMAL);
end;
Run Code Online (Sandbox Code Playgroud)
以“ -lang rus”作为参数。一切正常。游戏启动,语言为俄语(如果我输入“ -lang eng”,它仍然可以正常运行,并且游戏为英语)。
该starter.exe应用程序是一个名为“”文件夹内宾 '。当我要将启动器重新放置在此文件夹之外时,请使用以下命令:
procedure TFMain.ImgBtn1Click(Sender: TObject);
begin
ShellExecute(TForm(Owner).Handle, nil, 'bin\starter.exe', '-lang rus', nil, SW_SHOWNORMAL);
end;
Run Code Online (Sandbox Code Playgroud)
但是随后游戏没有启动。实际上什么也没发生。我应该改变什么?
我可以使用ShellExecute成功发送电子邮件.收件人地址是正确的,发件人地址是正确的,主题是正确的.电子邮件的正文是正确的,除了根本没有换行符,所有内容都显示为单个段落,没有换行符.我的默认电子邮件客户端是Windows 8.1邮件.
我的问题是,可以使用ShellExecute以保留换行符吗?我不打算直接发送电子邮件给Indy.我需要做的就是向默认的电子邮件客户端发送电子邮件并正确格式化.
procedure TForm1.Email1Click(Sender: TObject);
var
iGridTableItem: TcxCustomGridTableItem;
iName, iDate, iEmail, iSubject, iBody, iParam: string;
begin
iGridTableItem := cxGrid1DBTableView1.DataController.
GetItemByFieldName('EMail');
if iGridTableItem.EditValue <> null then
iEmail := iGridTableItem.EditValue;
iGridTableItem := cxGrid1DBTableView1.DataController.
GetItemByFieldName('Name');
if iGridTableItem.EditValue <> null then
iName := iGridTableItem.EditValue;
iGridTableItem := cxGrid1DBTableView1.DataController.
GetItemByFieldName('Date');
if iGridTableItem.EditValue <> null then
iDate := DateToStr(iGridTableItem.EditValue);
iSubject := 'ImageEn EBook';
iBody := 'Dear Mr. ' + iName + ',' + sLineBreak + sLineBreak +
'PayPal has advised me that you purchased …Run Code Online (Sandbox Code Playgroud) 我正在使用win32 api编写纯C语言的程序.
我需要知道注册程序的完整路径.
例如,如果我写
ShellExecute(0,0,"chrome",0,0,SW_SHOW)
Run Code Online (Sandbox Code Playgroud)
Chrome浏览器启动.我怎样才能获得"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"从"chrome"作为ShellExecute呢?
我想用ShellExec在'config'模式下运行一个屏幕保护程序.我用这个(Delphi)调用:
i:= ShellExecute(0, 'open', PChar('c:\temp\test.scr'), PChar('/c'), NIL, SW_SHOWNORMAL)
Run Code Online (Sandbox Code Playgroud)
但是,SCR文件接收的参数是'/ S',因此在路上的某个地方,Windows拦截我的呼叫并用'/ S'替换我的参数.
更新
我做了一个实验:
我构建了一个显示参数的应用程序(mytest.exe).我用/ c作为参数启动了mytest.exe.正确接收/ c参数.
然后我将mytest.exe重命名为mytest.scr.现在,操作系统会覆盖发送的参数.收到的参数现在是'/ S'.
有趣!
脏修复:执行以/ c模式执行屏幕保护程序的CMD文件有效!
shellexecute ×10
delphi ×7
c ×1
command-line ×1
delphi-xe7 ×1
execute ×1
linux ×1
mailto ×1
mysql ×1
php ×1
python ×1
screensaver ×1
shell ×1
winapi ×1