Articles of delphi

RichEdit的EM_AUTOURLDETECT消息并不总是被发送

为了描述这个问题,最好的方法是用下面的用例来testing我的应用程序: 申请: http : //ubuntuone.com/p/nF/ 公开申请; 点击“>”标题button; 再次点击相同的button; 再次点击相同的button。 正如你所看到的 – URL在第一次扩展中被正确地检测到,但在任何进一步不是。 希望有你的帮助解决这个问题:) 目前我每次都会发送WM对话框,但仍然不起作用。 展开/折叠button代码snipp: if (PreviewOpn.Caption = '<') and (Width >= 499) then // if form is expanded begin PreviewOpn.Caption := '>'; if CheckWin32Version(6,0) then begin Constraints.MinWidth := 252; ClientWidth := Round(252 – ((Width – ClientWidth) / 2)); end else begin Constraints.MinWidth := 248; […]

如何在InitializeObjectAttributes()中使用SECURITY_DESCRIPTOR

有人可以提供一个在InitializeObjectAttributes()中使用SECURITY_DESCRIPTOR的例子吗? 我打算用NtCreateKey()来使用它们。 我在互联网上找不到任何例子。 提前致谢。

如何检查调度程序备份是否成功运行

在每个远程服务器上创build一个调度程序任务,调用每天10:00:00closures数据库的.exe程序(创build数据库备份),并在特定时间重新启动它。现在使用delphi应用程序我需要现在如何检查调度程序任务备份是否成功地运行(数据库closures和启动)…想法是尝试连接到调度程序使用delphi应用程序的任务,并检查最后运行时间(当它didd它最后使用DATETIMEvariables执行或运行.exe),状态(正在运行)..请协助我可以连接到服务器在delphi,但我无法连接到服务器的调度程序任务。

delphi:LONG_PTR宣言,WNDPROC

你能告诉我如何在Windows.pas中为更新的Delphi版本声明以下符号? LONG_PTR =? WNDPROC =? 我希望我的代码与Delphi 2006兼容,而不是只写“整数”或“指针”,而不是“正确的”和正式的声明。 你能否也请告诉我在哪个Delphi版本中的function GetWindowLongPtr SetWindowLongPtr 被正式添加? (根据http://qc.embarcadero.com/wc/qcmain.aspx?d=48771似乎在delphi11(2007年)这个问题是积极的,并在delphi12(2009年)的问题得到解决)

Delphi 2009在Windows7中的标签问题

我在delphi2009年开发应用程序。 在Windows XP中,此代码工作正常 X := 70; Label1.Caption :=FloatToStr(X)+' %'; /// (70 %) 在Windows 7中,相同的代码会生成一个不同的标签(% 70) ,字符的位置正在改变,所有的操作员都会在前面。

从服务的执行线程执行命令行

乍一看,我没有运气 uses ShellApi; … ShellExecute(Handle, pchar('open'), pchar('emf2pdf.exe'), pchar(s), pchar(root), SW_SHOWNORMAL); 其中s是参数string,root是命令所在的目录。 我得到的错误是'缺less运算符或分号',也'太多实际参数'。 可能是我忽视的东西,有点压力。 甚至不知道从哪里拿到手柄。 对于执行可以build议的命令行的替代方法感到高兴! 基本上,服务寻找文件定期转换,所以我只是寻找一种方式来形成一个命令行,如在DOS中执行它,最好没有一个窗口popup短暂和closures,但我会采取什么我可以得到。 🙂 我正确的安装delphi可以代码提示参数为我,但不popup帮助页上按F1(索引中找不到)。 更新:从DelphiPages中使用这个CreateProcess函数: Function ExecuteAndWait(sExecutableFile : String; wWindowState : Word = SW_SHOWNORMAL) : Boolean; var siInfo : TStartUpInfo; piInfo : TProcessInformation; begin FillChar(siInfo, SizeOf(siInfo), #0); with siInfo do begin cb := SizeOf(siInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := wWindowState; end; […]

使用访问令牌共享进程pipe理权限

我有2个进程。 其中之一是在pipe理员帐户下运行,第二 – 在没有权限pipe理进程的用户帐户下。 他们需要看到对方并比较path,从哪里执行这个进程。 但是第一个(用户)进程无法获得第二个进程的path。 使用CreateToolhelp32Snapshot获取path – > OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION) – > QueryFullProcessImageName不适用,因为它适用于Vista,Win7及更高版本,而且我需要针对较低版本Win的解决scheme。 那么,如何给用户进程赋予权限来查看pipe理进程的path,或者如何使用Access Tokens或使用SetNamedSecurityInfo来共享pipe理进程的权限? 使用delphi是可取的。

如何从另一个进程访问控制台缓冲区? AttachConsole ERROR_INVALID_PARAMETER

我想访问另一个进程控制台的缓冲区(通过AttachConsole),调用ReadConsoleOutput等 是一个DOS 16位应用程序。 我不能使用pipe道,因为它不会写输出secuentially(它模拟“窗口”..如FAR指挥官,如果你知道我的意思)。 所以我应该: 1)启动应用程序2)获取进程ID 3)调用AttachConsole(ProcId)4)调用GetConsoleScreenBufferInfo获取大小5)调用ReadConsoleOutput 问题是在3:当我调用AttachConsole ir时返回0,在调用GetLastError之后,它报告ERROR_INVALID_PARAMETER 87(0x57)。 AttachConsole的唯一参数是ProcessId,我用ProcessExplorer检查了它是正确的(它实际上是模拟应用程序的ntvdm.exe的PID)。 Delphi代码: function AttachConsole(dwProcessId: DWORD): Cardinal; external kernel32 name 'AttachConsole'; var Handle: HWND; function EnumWindowsProc(hwnd: HWND; lParam: LPARAM): BOOL; stdcall; var s: string; IsVisible, IsOwned, IsAppWindow: Boolean; begin Result := True;//carry on enumerating IsVisible := IsWindowVisible(hwnd); if not IsVisible then exit; IsOwned := GetWindow(hwnd, GW_OWNER)<>0; […]

是否有任何数量和大小限制embedded到Windows资源DLL文件的rc项?

我们可以通过在Windows DLL文件中定义rc来embedded资源文件。 我想知道是否有任何可以存储在一个DLL中的rc资源条目的限制? 或者是否有DLL文件的文件大小的限制? 在存储超过30,000个资源项的DLL中,访问资源的速度性能会有显着差异,而与less于1000个资源项的DLL相比,

在C ++ Builder中使用javascript从网页获取variables

我有一个MiFi调制解调器(华为e5776),它有自己的网页,每月显示总stream量。 我想提取这个值,并在图标托盘中显示一个米。 我确信在C ++ Builder(或Delphi)中这是可能的,但即使我在使用C ++ Builder方面经验相当丰富,但我并没有与Web相关。 有人可以给我一些指导如何做到这一点? 我假设我需要运行脚本,然后提取variables的地方,我该怎么做? 谢谢。 PS:我会添加页面的内容,但不能看到一种方式来附加文档。 这是前几行 // JavaScript Document var g_monitoring_traffic_statistics = null; var g_wlan_security_settings = null; var g_wlan_basic_settings = null; var g_connection_trafficresponse = null; //Prefix string of ssid2 of Multi-SSID var g_prefixWifiSsid = "ssid2_"; function getTrafficInfo(bit) { var final_number = 0; var final_str = ""; if(g_monitoring_dumeter_kb > bit) […]