草庐IT

Delphi7_VCL

全部标签

windows - 在没有 WNetAddConnection2 的情况下使用 Delphi 映射网络驱动器

最近我构建了一个GUI应用程序,可将网络连接映射到Windows中的驱动器。不幸的是,它使用WNetAddConnection2()调用来完成此操作。不幸的是,WindowsAPI在映射远程WebDAV连接方面表现不佳。它在Vista中似乎工作正常,除了在尝试启用SSL时,它在XP中不起作用,除非您指定一个文件夹(您不能将它映射到根URL。例如:http://mywebdavserver.tld)。SSL在XP中也不起作用。基本上,我发现使用WNetAddConnection2()非常不可靠。也就是说,有没有什么方法可以在不使用WNetAddConnection2()的情况下使用Web

windows - 我的 Delphi 7 应用程序在 Application.Initialize 上停止并且不返回到下一行

我在Delphi7上创建了一个应用程序。我的应用程序从昨天开始运行良好。我不知道昨天发生了什么导致我的应用程序在源代码中的Application.Initialize行停止并且在我跟踪程序时不返回到下一行。当生成的文件在另一台机器上正确运行时,我无法从widowsniether运行创建的可执行文件。这是编译器停止的代码:programInfo_Kiosk;usesSysUtils,Forms,...(someotherunits);{$R*.res}beginApplication.Initialize;Application.CreateForm(Tfrm_Main,frm_Main

windows - 在 Delphi 中使用 COM 支持在 DLL 和 .EXE 之间切换

我有以下情况:我有一个delphi应用程序{$APPTYPEGUI}。(APP1)如果APP1启动,它会运行代码begin和end.,就像它应该的那样。稍后,APP1将被转换为DLL(另一个应用程序将执行此操作-APP2)。APP2添加IMAGE_FILE_DLL标志到NTFileHeader中的CharacteristicsAPP1。然后APP2尝试使用LoadLibrary加载DLL(APP1)(或加载dll的其他一些COM命令)但它返回错误:WindowsencounteredaninternalerrorwhileinitializingCOMlibraries.我已经用C项目

windows - 应用程序如何在 Delphi 中关闭后启动自己的服务?

我有一个应用程序,用户可以通过两种不同的方式启动它,作为普通应用程序或作为Windows服务。当服务已经在运行时(系统托盘中有它的图标)并且用户尝试启动应用程序(不仅仅是通过单击托盘图标打开,而是再次单击Start>Applications>Blahblah),它说:“应用程序已经作为服务运行,你想关闭服务并启动应用程序吗?”当用户单击"is"时,应用程序关闭服务并正常启动自身申请。发生这种情况时,我会放置一个标志,指示用户曾经停止过该服务,当他们关闭应用程序时,软件会看到该标志,并且该服务必须重新开始运行,因为它之前已关闭,无法作为普通应用程序启动.我试着把:WinExec(PCha

windows - Delphi:通过套接字发送多个字符串?

我目前正在使用delphi6(是的,我知道..但到目前为止它已经完成了工作。)我正在使用Serversocket和客户端套接字。当我的客户端连接到我的服务器时,我想让它发送一些信息,比如计算机名、LANIP、操作系统名称、ping。目前我只有客户端向服务器发送计算机名,我想知道如何发送多个信息,并在我的网格中相应地设置它?这是源代码:客户:unitclient1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ScktComp;typeTForm1=class

windows - Delphi静态或动态链接到windows dll

我知道在加载时隐式链接到库可以提高性能,因此我想知道在编译时以这种方式链接是否是一种好的做法,从而增加可执行文件的大小(诚然这只是边际)相比在运行时显式链接。我的问题是,当针对位于System32中的MicrosoftWindowsdll文件进行链接时,在加载时进行链接是否“更好”,因为您几乎可以确定库将存在或遵循显式方法?使用的语言是Delphi(pascal),相关库是WTsAPI32.dll-终端服务。编辑:正如所指出的那样-我选择的语言不正确并且已被修改。此外,由于在Unix中只有真正广泛链接到库,我关于可执行文件大小的评论可以省略,我相信当时我实际上指的是静态链接,它将库代码

windows - 如何在 Delphi 的多线程中加载一个 DLL?

也许我错过了什么,我不知道这里发生了什么。我正在尝试在TThread对象的多个实例中加载同一个DLL。这是我的DLL代码:libraryMyCalcFor32;usesSysUtils,Classes,uRunnerin'uRunner.pas';ExportsEVal;{$R*.res}beginend.这是uRunner.pas:unituRunner;interfaceusesSysUtils,Classes;functionEVal(Valor:WideString):WideString;stdcall;export;implementationfunctionEVal(Va

windows - 从 Delphi 启动 Windows 优化应用程序 (Windows 10)

我们有一个遗留的Delphi7应用程序,它启动Windows碎片整理和屏幕键盘应用程序,如下所示://DefragmentationapplicationShellExecute(0,'open',PChar('C:\Windows\System32\dfrg.msc'),nil,nil,SW_SHOWNORMAL);//On-screenkeyboardShellExecute(0,'open',PChar('C:\Windows\System32\osk.exe'),nil,nil,SW_SHOWNORMAL);两者都在WindowsXP上工作,但在Windows10上失败。我发现

windows - 从delphi中的文本段落中提取第一行

我将文本传递给一个函数。该文本可以包含任何内容,从单个字符一直到整本书。我需要提取第一个点赞并将其用作“标题”,这样我就可以命名一个文件,我将在其中保存该文本作为备份。我正在使用以下内容:functionGetTitle(varText:string):string;vartitle:string;position:integer;begintitle:='';position:=AnsiPos(#10,Text);ifposition=0thenbeginposition:=AnsiPos('.',Text);if(position=0)thentitle:=Textelsetitl

C到delphi转换

谁能告诉我我在转换过程中哪里出错了:C:typedefstruct_REGISTRY_EVENT{REG_NOTIFY_CLASSeventType;TIME_FIELDStime;HANDLEprocessId;ULONGdataType;ULONGdataLengthB;ULONGregistryPathLengthB;/*Containspathandoptionallydata*/UCHARregistryData[];}REGISTRY_EVENT,*PREGISTRY_EVENT;德尔福:_Registry_Event=recordEventType:REG_NOTIFY_