摘要: Socket线程获取源码无阻塞socket编程阻塞的问题搞了我几个月,这段时间实在是太漫长了,其实我只是需要一个很简单的函数,那就是获取网页源码,就是一个这么简单的需要,我搞了几个月。最初我把所有的socket函数放入一个线程,在线程中设置超时时间,但这样会遇到一个问题,如果线程的超时时间设为30秒,30秒没接收完成就表达失败,但在正常情况下网页文件在30秒内也有可能接收不完,所以这个方法宣告失效。接着又找了个Linux下的多线程下载软件,研究了一下代码,写了个多线程的网页文件下载,这又把问题弄得更复杂了,可能是我的代码没控制好,程序虽然不会阻塞了,但下载的网页源码偶尔会不完整,遇到这个问题又 阅读全文
posted @ 2011-03-23 15:26 阳光不远 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 调用外部程序,等待外部程序运行完成,相当于Showmodal功能,呵呵delphi代码1.function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;2.var3. zAppName: array[0..512] of char; //存放应用程序名4. StartupInfo: TStartupInfo;5. ProcessInfo: TProcessInformation;6. exitCode: Dword;7. aVisibility: integer;8.begin9. StrPCopy(zApp 阅读全文
posted @ 2011-03-23 11:09 阳光不远 阅读(1125) 评论(0) 推荐(0) 编辑
摘要: Use Jpegprocedure TForm1.snapscreen(a,b,c,d:Integer);var bmpscreen:Tbitmap; jpegscreen:Tjpegimage; FullscreenCanvas:TCanvas; dc:HDC; sourceRect, destRect: TRect;begin try dc:=getdc(0); fullscreencanvas:=Tcanvas.Create; fullscreencanvas.Handle:=dc; bmpscreen:=Tbitmap.create; bmpscreen.Width :=c-a; bm 阅读全文
posted @ 2011-03-23 11:03 阳光不远 阅读(681) 评论(0) 推荐(0) 编辑
摘要: //声明:sndPlaySound( lpszSoundName: PChar; {声音文件} uFlags: UINT{播放选项}): BOOL;//uFlags 参数可选值:SND_SYNC = 0; {同步播放, 程序须等到播放完毕才向下执行}SND_ASYNC = 1; {异步播放, 在函数返回之后开始播放, 不影响程序继续执行}SND_NODEFAULT = 2; {声音文件缺失时, 函数自动返回不播放默认声音}SND_MEMORY = 4; {播放内存中的声音, 譬如资源文件中的声音}SND_LOOP = 8; {循环播放, 需要和 SND_ASYNC 组合使用}SND_NOSTO 阅读全文
posted @ 2011-03-23 11:00 阳光不远 阅读(2986) 评论(0) 推荐(0) 编辑