Jiangsheng的CSDN Digest (Jan 21 2006)

2024-03-21 05:08
文章标签 21 jan csdn 2006 digest jiangsheng

本文主要是介绍Jiangsheng的CSDN Digest (Jan 21 2006),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CSDN 讨论总结系列:

  • Jiangsheng的CSDN Digest (Jan 7 2006)(http://blog.csdn.net/jiangsheng/archive/2006/01/07/573288.aspx)
  • Jiangsheng的CSDN Digest (Jan 1 2006)http://blog.csdn.net/jiangsheng/archive/2006/01/01/568362.aspx
  • Jiangsheng的CSDN Digest (Dec 2005)(http://blog.csdn.net/jiangsheng/archive/2005/12/24/561501.aspx)
  • Jiangsheng的CSDN Digest (Oct 2005)(http://blog.csdn.net/jiangsheng/archive/2005/12/27/563274.aspx)
  • Win32 & .Net Q&A 200509 (http://blog.csdn.net/jiangsheng/archive/2005/09/13/480540.aspx)
  • Win32 & .Net Q&A (http://blog.csdn.net/jiangsheng/archive/2005/02/28/304654.aspx)
  • VC/MFC Q&A 200407 (http://blog.csdn.net/jiangsheng/archive/2004/07/13/40771.aspx)

inet控件下载ftp文件后,下载的文件被存放在IE缓存文件夹中,如何自动清除(VB 基础类)


http://vbnet.mvps.org/index.html?code/internet/deleteurlcache.htm

通过API访问IE Cache :

http://blog.csdn.net/technofantasy/archive/2002/03/29/2962.aspx


微软的MSWORD,MSEXCEL可以嵌入在IE中,Outlook可以吗? (VC/MFC ATL/ActiveX/COM )


Word and Excel are ActiveX Document servers which is why you can embed them within a web page.
Outlook is not an ActiveX Document server.


ATL的线程函数中 FIRE EVENT出错,其它类中FIRE EVENT 就OK ? (VC/MFC 进程/线程/DLL )


ATL和MFC都不是线程安全的
参考http://www.mvps.org/vcfaq/com/11.htm


以不同身份登陆域以获取不同的服务权限 (C++ Builder 基础类 )


如何可以做到不转换Windows用户的情况下,以另一个用户的身份访问域服务器,并且结束时可以注销该用户身份。
参看了一些资料,可能要用到LogonUser,DuplicateTokenEx,CreateProcessAsUser这些函数,有谁可以提供一些思路或上述函数的执行代码。谢谢!


你可以用CreateProcessAsUser函数另外启动一个进程,之后使用进程间通讯(http://msdn.microsoft.com/library/en-us/ipc/base/interprocess_communications.asp )的方法来控制启动的程序。用LogonUser、CreateProcessAsUser,要SE_TCB_NAME权限,且即使你是administrator,也很难在程序中得到要SE_TCB_NAME权限(我从未成功过)
建议用CreateProcessWithLogon.

其实,还有一个最简的方法,就是用系统的runas命令:
如:
runas /env /user:user@domain.microsoft.com "notepad /"my file.txt/""

你可以在控制面板->管理工具->本地安全设置->用户权利指派中将"以操作系统方式运行"赋给你要设SE_TCB_NAME权限的用户,这样你上面的程序应该可以运行,但有安全隐患,因为SE_TCB_NAME是系统的最高权限


请教一个多国语言字符串转换的问题 (VC/MFC 基础类 )


我的程序中要求一个功能,当从其他窗口,比如ie中,将一段文字拖到本窗口时,要接收到字符串并显示出来。
现在功能已经基本实现,拖过来英文,中文,日文,俄文,法文都没问题,但是德文却总有些字符显示乱码。
我试了其他的一些软件,qq和vc6都显示不正确,但是ie,msn,vs.net,office等都可以正确显示。
我想是我接收到字符串后没有做正确的转换,但是不明白该如何转换,接收到的字符串是以什么格式存储的。
希望有过类似经验的能指点一下,不胜感激。

我接收的代码大致如下:
BOOL CTmp3View::OnDrop(COleDataObject *pDataObject, DROPEFFECT dropEffect, CPoint point)
{
STGMEDIUM stgm;
FORMATETC fm = {CF_TEXT, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
char* cpData = NULL;
DWORD dwSize = 0;

//得到数据和数据的字节数
pDataObject->GetData(CF_TEXT, &stgm, &fm);
cpData = (char*)GlobalLock(stgm.hGlobal);
dwSize = GlobalSize(stgm.hGlobal);

//处理数据并显示
... ---->> //我想这里应该对cpData有所处理

return CView::OnDrop(pDataObject, dropEffect, point);
}


CF_UNICODETEXT


vc6+ado+access删除表内所有记录时, 如何复位自动增加的整型字型至0? (VC/MFC 基础类)



也就是说, 再次增加记录时, 自动增加的整型字段从1开始计数, 而非紧接原序号.


需要重构数据库。参见http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odeopg/html/deovrencryptingdatabase.asp


Access数据库函数问题(C++ Builder 数据库及相关技术 )


使用Access数据库,用MS Access建一个查询Table1_View,SQL语句如下:
SELECT MyName, StrReverse(MyName) AS ReMyName FROM Table1 ORDER BY StrReverse(MyName)

在MS Access中运行正常,可以打开Table1_View记录集,但要在C Builder中打开这个记录集时,返回错误信息:表达式中‘StrReverse’函数未定义。

请问是什么原因?如何解决?


Access中不支持从外部直接访问这个函数。参考http://support.microsoft.com/?kbid=210439


于OCX调用方面的问题(.NET技术 VB.NET)


我现在有一个用DELPHI做的OCX控件,用VB.net开发一个网站,需要使用它显示特定图形,图的数据是从服务器中的某个目录中获取的,应当如何做?
我通过工具栏增加OCX后,其Runat属性是灰的,服务器脚本中不能使用;我通过项目引用后使用CREATOBJECT的方法能创建,但又无法与页网中放置的控件联系起来,这是为啥呀????
OCX是不是不能做为服务器端组件运行?如果不能的话,那要实现我的想法的话有何高招??


在客户端显示图形的OCX为什么要在server上运行?
自己写个user control封装一下代码就可以了


如何获得网页中的元素位置信息 (VC/MFC HTML/XML )


打开一个网页,浏览器知道图片对应的位置,知道一个表的对应位置,现在我要在程序中解析一个页面中的每个元素的坐标信息,应该用那个组件啊,


http://blog.csdn.net/jiangsheng/archive/2003/11/09/3795.aspx

You can also determine the location, width, and height of an object by using a combination of the IHTMLElement::offsetLeft, IHTMLElement::offsetTop, IHTMLElement::offsetHeight, and IHTMLElement::offsetWidth properties. These numeric properties specify the physical coordinates and dimensions of the object relative to the object's offset parent.

For more information about how to access the dimension and location of objects on the page through the Dynamic HTML (DHTML) Document Object Model (DOM), see Measuring Element Dimension and Location.

http://msdn.microsoft.com/workshop/author/om/measuring.asp


IPicture中get_Width得到的OLE_XSIZE_HIMETRIC到底是什么含义(VC/MFC 图形处理/算法 )


MSDN里解释如下:
OLE_XSIZE_HIMETRIC (long) The width of the picture

照片的宽度?
我使用一幅640*480的图片,得到的width、height分别为16933、12700。
请问这个数值有什么实际的含义?


phisical size of the picture converted into HIMETRIC
reference:
http://msdn.microsoft.com/msdnmag/issues/01/10/c/
http://msdn.microsoft.com/library/en-us/gdi/cordspac_3qsz.asp


使用CListCtrl显示大批量缩略图(VC/MFC 界面 )

不想删除ClistCtrl的自定义数据,该怎么办?



由于工作需要大批量显示SolidWorks文件的缩略图(一万个左右),我现在使用的是虚CListCtrl既style = LVS_ICON|LVS_ALIGNTOP|LVS_OWNERDATA|WS_VISIBLE|WS_BORDER|WS_CHILD|LVS_SINGLESEL,对于SolidWorks文件可以读成bitmap,由于文件太多内存存不下,我现在想利用文件缓存,来缓存我生成的这些bitmap,有没有这样的方法,最好有例子.


我看了vcmute(横秋)有关这方面的解释提道了IExtractImage,不知道能解决我的问提吗?
http://community.csdn.net/Expert/topic/4134/4134216.xm8l?temp=.4045069
提供的连接没打开.


既然用了虚拟列表,一次显示的缩略图也不会超过几百个吧,这样对内存的需求就减少了很多。至于缓存,不需要加载所有的缩略图,使用后马上释放掉就可以了,利用双缓冲,绘制到一个内存DC上,刷新的时候再调取需要的缩略图。

我用LV_ITEM Item的方式insert到一个list,其中new了一个自己的在doc中定义的数据结构,这个结构由于在其他地方还要用到,所以当clistctrl有更新时不能删除,但要更新一个ClistCtrl必须先调用clistctrl::deleteallitem,在ClistCtrl::OnDeleteitem中就要删除条目才能将新增加的item给加进去,现在我只想更新条目,由想留住自己的在doc中定义的数据结构供下次调用,请问ClistCtrl有没有什么函数只清空显示区域,而不删除我的数据结构?

难道我只得定义两个结构吗?一个用于list显示,一个用于list历史数据得保存?


http://blog.csdn.net/jiangsheng/archive/2003/11/20/3796.aspx

虚列表没有自己的数据,你需要自己把数据排好之后通知虚列表更新显示。文件大小可以用用IShellFolder2::GetDetailsEx获得

对于你需要的排序,你可以用CRT的qsort函数。使用IShellFolder::EnumObjects的原因是性能。用Win32的FindAPI的话,在函数返回之前会搜索完整个目录,但是用虚列表的话,可以只获取正在显示的文件的信息(当然,在我的代码中还缓存了文件列表的开头和末尾,这是用户经常查看的位置)。


这个示例没有在空闲时释放缓存,你可以自己决定缓存的大小上限,然后改写PrepCache函数。

你也可以使用资源管理起来显示图片http://www.codeproject.com/shell/thumbextract.asp


请问在 VBscript 中如何调用 windows API ?有现成的ActiveX封装吗?(VC/MFC ATL/ActiveX/COM )


我想使用脚本语言做一些自动操作其他应用程序界面的东西,有点类似 rational robot
首先想到了 wsh 和 vbs, 但是好像 vbs 中不能直接调用 PostMessageA 之类的 API 函数,
借贵宝地问一下:
1. 是否有现成的 ActiveX 封装了 windows API ?
2. 除了使用robot之类的商业软件,您是否有更好的方法建议我?


try host implementation instead
see http://blog.csdn.net/jiangsheng/archive/2003/11/09/3795.aspx
That is basically imposing scripting support to an MDI version of MFCIE.


DLL中的DoDataExchange (VC/MFC 基础类 )


我程序中加载了两个DLL,都封装了窗口类,并且都影射了控件变量
只加载其中的一个没问题,可是两个都加上之后,在DoDataExchange的时候就会出错
通过GetDlgItem也找不到该控件,这是为什么?


sounds like resource conflict.
Reference:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;150121


ActiveX和DLL利用回调通讯,如何在回调中产生事件(VC/MFC ATL/ActiveX/COM)


我要调用一个DLL进行一些工作,调用和返回不在一个线程中。所以我使用回调函数的方法返回数据。联系DLL的是一个ActiveX控件,因为我使用了回调函数,所以我必须向DLL提供一个静态函数地址。而我要在这个回调函数中产生一个事件,ATL的事件是在类中生成的,我无法在静态函数中调用。


You can use an IDispatch parameter instead of a callback function (in other words, event handler), and call IDispatch::Invoke to call the function (in other words, fire the event), which calls your function indirectly in its implementation. A typical example is AJAX (Asynchronous JavaScript and XML).


COM 支持连接点对象的啊,功能类似回调函数。
继承 IDISPATCH 做一个出接口就行了,很方便的


用wininet做个多线程的浏览器。线程少的时候正常,多至30的时候锁死(VC/MFC 进程/线程/DLL )


主线程浏览网页,根据网页里的图片联机,产生子线程,下载玩就自动清除。
当多至30的时候就都挤死在chttpfile::sendrequest了。对底层网络访问控制是由ntdll完成的。


INFO: WinInet Limits Connections Per Server
http://support.microsoft.com/kb/q183110/


如何在VC,BC环境下获取按键(C/C++ C语言 )


我有TC版的一个五子棋游戏,现在必须要在VC环境或BC环境下编译。
但是TC下有bios.h,和很多相关的函数,比如bioskey来获得按键内容。
而这个头文件在VC,BC上是没有的。请问在VC环境,BC环境下有相应功能的替代函数么?
或者告诉我,如果要获得上,下,左,右,enter,space按键,在VC环境,BC环境怎么做?

注:我这里的VC,BC并不是MFC等等,只是一个C++编译环境。


这些都是Borland的库函数。你可以自己实现这些函数。举例来说,你可以用getch来获取按键,或者处理WM_KEYDOWN消息。没有gotoxy的话,不过你可以自己写一个:

#include
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
 

windows 下面,你想取得按键信息。处理 WM_KEYDOWN 消息就行了。例如:
case WM_KEYDOWN:
switch(wParam):
{
case VK_RETURN://回车
.........
}
上下左右键分别是VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT
Enter, Space键分别是VK_RETURN,VK_SPACE

只要处理这些消息就可以了。



怎么获得iframe中的内容?(VC/MFC HTML/XML)


当一个页面中的iframe内容来自另外一个网站的时候,通过IHTMLFramesCollection2。item获得IHTMLWindow2指针,然后调用IHTMLWindow2::get_document获得的总是空指针。同样的情况出现在遨游浏览器的viewPage插件里。在这种情况下,viewpage得不到ifram中的链接。
同过得到ifram内容的url,再navigate(url)似乎可以,但是有没有不用再次连接的方法呢?


基于IE的安全性设定,跨框架的DHTML访问可能被拒绝。参见Internet Explorer的安全设置。




这篇关于Jiangsheng的CSDN Digest (Jan 21 2006)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/831810

相关文章

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

【JavaScript】LeetCode:21-25

文章目录 21 最大子数组和22 合并区间23 轮转数组24 除自身以外数组的乘积25 缺失的第一个正数 21 最大子数组和 贪心 / 动态规划贪心:连续和(count)< 0时,放弃当前起点的连续和,将下一个数作为新起点,这里提供使用贪心算法解决本题的代码。动态规划:dp[i]:以nums[i]为结尾的最长连续子序列(子数组)和。 dp[i] = max(dp[i - 1]

react笔记 8-21 约束性 表单

1、约束性组件和非约束性组件 非约束性组件<input type="text" name="" defaultValue={this.state.msg}></input>这里他的value是用户输入的值 并没有执行操作 只是获取到了msg的值 用户输入不会改变数据非约束性组件需要使用defaultValue获取数据 否则会报错约束性组件<input type="text

CSDN:OpenStack镜像制作教程指导(全)

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录,涉及基本环境准备、常见类型操作系统的镜像制作。 让你可以从零开始安装一个操作系统,并支持个性化制作OpenStack镜像。 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows

搜狗浏览器打开CSDN博客排版错乱问题解决

之前发生过几次,不知道什么原因。 今天一直用着好好的,打开一个csdn连接,显示404,博文被删除了,于是就用百度快照打开试试,百度快照打开显示的排版很乱也没找到有用信息。 后面再浏览CSDN博客就排版错乱,显示一个大大二维码图片。 尝试删除IE缓存无效,使用谷歌浏览是好的。 基本锁定就是搜狗缓存导致的,于是找如何删除搜狗缓存   清除后恢复正常

用Java抓取CSDN主页上的图片

一,步骤一:获取网页源码 1,定义要爬取的页面的URL对象 //定义即将访问的链接String url="http://www.csdn.net";//获取CSDN的URL对象URL realURL = new URL(url); 2,获得这个链接的一个连接对象 URLConnection connection = realURL.openConnection();

为什么csdn博客不能推荐首页了?

哎,好久没来写文章, 结果就不能推荐首页了. 开始以为,是因为很久不发表文章了,但是,后来发表了几篇,还是不行。 换了个账号,写文章还是不能推荐首页, 估计是csdn不提供这个功能了。 但是吧,推荐首页无非就是增加浏览量,现在,大家写文章都没有推荐首页了,对所以用户都是公平的。

CSDN的Markdown编辑器语法

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入

内存管理篇-21 虚拟内存管理:线性映射区

1.线性映射区的定义         这部分讲线性映射区的内容。一般老的嵌入式平台,它内存很小只有几百兆,都会直接把整个物理内存映射到线性映射区了,只有当物理内存大于1GB以上,线性映射区无法cover的时候就把剩下的放到高端内存。所以这个区域是最简单的。         线性映射区一般是指内核空间的某个部分,直接映射到低端内存的区域。并且他们之间是线性映射的。         PAGE_O

CSDN Down资源分类整理

我对我上传到CSDN的Down里面的资源进行整理,方便自己以后进行查找,以后如何也上传资源,也相应更新这个目录。 一. 工具: 1. Doxygen 1.8.10:下载 2. H264Visa:下载 3. Visual Paradigm for UML 10.0 sp1注册文件 下载 4. Elecard StreamEye Studio(带注册机) 下载 5. ganttprojec