送100分,问题一解决,马上结贴~!

woaiaxuan 2006-11-05 04:14:50
1、不用任何网络控件而改用API的话,该怎样打开edit里面的指定网址?不需要显示网页.也不能用shellexecute来打开IE窗口来实现。
2、不在USES里加Clipbrd单元的情况下,怎样才能用Openclipboard(或其他API函数?)来打开剪贴板并且将CF_TEXT格式的内容显示在EDIT.
2、怎样才能把一个DLL文件包含在EXE文件中(有点类似安装文件),而当EXE文件打开的时候,不需要释放这个DLL到目录下直接在本身里就能调用它?原来的EXE文件必须使用函数(如: function abc:boolean;stdcall;external 'dll.dll')来静态装载这个DLL文件,但是现在把这个DLL文件包含在EXE文件里面了,那该怎么调用它里面的函数?

问题一解决,马上结贴~~!就算回答正确了其中的某个问题也有分~~ :)
...全文
269 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rex_love_Burger 2006-11-13
  • 打赏
  • 举报
回复
蹭分
ffwin 2006-11-08
  • 打赏
  • 举报
回复
有一个软件叫exebind可以将dll直接绑进你的exe不需要编程
foranyone007 2006-11-08
  • 打赏
  • 举报
回复
感谢有点象
天涯倦客 2006-11-07
  • 打赏
  • 举报
回复
lz莫不是在研究流氓软件...
天涯倦客 2006-11-07
  • 打赏
  • 举报
回复
1 scoket 自己解析要


第2个问题直接用 api ..

最后一个问题可以 直接映射 内存运行不过要了解 程序入口..
有源码的方式很多.. 参考pe格式
drf003 2006-11-07
  • 打赏
  • 举报
回复
我原来做过一个,引用Comobj
procedure TForm1.Button2Click(Sender: TObject);
var
IEApp: Variant;
url: string;
begin
url:=edit8.Text;
IEApp := CreateOLEObject('InternetExplorer.Application');
IEApp.visible := true;
IEApp.Top := 0;
IEApp.Left := 0;
IEApp.width := screen.width;
IEApp.height := screen.height;
IEApp.Navigate(url);
sleep(10000);
end;
woaiaxuan 2006-11-06
  • 打赏
  • 举报
回复
谢谢keiy,不过问题还是没有完全解决,期等楼下会有人帮忙~

顺便问一下, '可以将dll放在资源中,程序运行时,释放出来,程序退出时,删除它.' 这个有没有实例呢?
spirit_sheng 2006-11-06
  • 打赏
  • 举报
回复
用Windows API
OpenClipboard
EmptyClipboard
SetClipboardData
CloseClipboard
do2008 2006-11-06
  • 打赏
  • 举报
回复
看看 陈经韬前辈的文章《谈Delphi编程中“流”的应用》
http://www.pcdog.com/p/html/20041219/191220045014_1.htm
http://www.zahui.com/html/2/4869.htm


里边有,将exe,作为资源编译到exe中,exe运行时,再从exe的资源中以TMemoryStream的方式读取出来,另存为一个临时文件,再运行这个临时文件,呵呵

所以,将dll编译进exe也是完全可行的。
柯本 2006-11-05
  • 打赏
  • 举报
回复
1.用scoket,只是有点繁(还是用控件方便),大至如下
(以下程序摘自:http://www.securityfaq.org/wz/484/article.html)
...........
HeadInfo:='';
HeadInfo:=HeadInfo+'GET /'+''+' HTTP/1.1'+#13#10;
HeadInfo:=HeadInfo+'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*'+#13#10;

HeadInfo:=HeadInfo+'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)'+#13#10;
HeadInfo:=HeadInfo+'RANGE: bytes='+inttostr(533263)+'-533263'+#13#10;
HeadInfo:=HeadInfo+'Host: '+GetHost(HostName)+#13#10;
HeadInfo:=HeadInfo+#13#10;
ZeroMemory(@SendStrBuf,SizeOf(SendStrBuf));
for Re:=0 to Length(HeadInfo)-1 do SendStrBuf[Re]:=HeadInfo[Re+1];
Re:=send(MySocket,SendStrBuf,Strlen(SendStrBuf),0);

if Re = SOCKET_ERROR then
begin
CloseSocket(MySocket);
WSACleanUP();//Winsocket释构
Exit;
end;

Re:=recv(MySocket,ReciveStrBuf,SizeOf(ReciveStrBuf),0);
if Re = SOCKET_ERROR then
begin
CloseSocket(MySocket);
WSACleanUP();//Winsocket释构
Exit;
end;
....

2.可以将dll放在资源中,程序运行时,释放出来,程序退出时,删除它
woaiaxuan 2006-11-05
  • 打赏
  • 举报
回复
倒.....
楼下继续..
moklee 2006-11-05
  • 打赏
  • 举报
回复
1.那就用winexec
其他的还不会

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧