小编egr*_*nin的帖子

如何自动化弹出模态HTML对话框的IE webapp?

[ 为了清晰起见再次修订 ]

我有一个与网站交互的C++程序.该网站是特定于IE的,我的程序也是如此.

我以普通的方式连接到IE的运行实例(进程外 - 请参阅代码).一旦我得到了IWebBrowser2,我就可以获得IHTMLDocument2并与各个IHTMLElement对象进行交互,填写字段并单击按钮.

但是如果网页上有调用window.showModalDialog的 javascript ,我就陷入困境:我需要与弹出窗口中的HTML元素进行交互,就像其他页面一样; 但我似乎无法得到它IWebBrowser2.

弹出窗口始终标题为"网页对话框",是一个Internet Explorer_TridentDlgFrame包含类型的窗口Internet Explorer_Server.但是,Internet Explorer_Server当它是一个普通的IE实例时,我无法从窗口获取IWebBrowser2 .

我能得到的IHTMLDocument2Ptr,但是当我试图让IWebBrowser2我得到HRESULTE_NOINTERFACE.

代码是非常标准的东西,如果它是一个"正常的"IE窗口,它可以正常工作

IHTMLDocument2Ptr pDoc;
LRESULT lRes;

/* hWndChild is an instance of class "Internet Explorer_Server" */

UINT nMsg = ::RegisterWindowMessage( "WM_HTML_GETOBJECT" );
::SendMessageTimeout( hWndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, 
    (DWORD*)&lRes );

LPFNOBJECTFROMLRESULT pfObjectFromLresult = 
    (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, "ObjectFromLresult" );
if …
Run Code Online (Sandbox Code Playgroud)

c++ internet-explorer browser-automation iwebbrowser2

11
推荐指数
1
解决办法
2065
查看次数

如何在Xcode 4.5中完成代码签名

我有一个用于构建我的应用程序的脚本,因为更新到Xcode 4.5后已经损坏了.问题是代码签名.当我运行以下内容时:

/usr/bin/xcrun \
    -sdk iphoneos \
    PackageApplication \
    -v "${BUILD_DIR}/${APPLICATION_NAME}.app" \
    -o "${APP_ARCHIVE}" \
    --sign "${DEVELOPER_ID}"
    --embed "${PROVISIONING_PROFILE}"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

error: /usr/bin/codesign --force --preserve-metadata --sign iPhone Developer: Apple Developer --resource-rules=/var/folders/p5/gfgpv6911ylbs52cnbh2___m0000gq/T/ky9_XtRlRr/Payload/Blah.app/ResourceRules.plist /var/folders/p5/gfgpv6911ylbs52cnbh2___m0000gq/T/ky9_XtRlRr/Payload/Blah.app failed with error 1. Output: /var/folders/p5/gfgpv6911ylbs52cnbh2___m0000gq/T/ky9_XtRlRr/Payload/Blah.app: replacing existing signature

codesign_allocate: object: /private/var/folders/p5/gfgpv6911ylbs52cnbh2___m0000gq/T/ky9_XtRlRr/Payload/Blah.app/Blah malformed object (unknown load command 34)

/var/folders/p5/gfgpv6911ylbs52cnbh2___m0000gq/T/ky9_XtRlRr/Payload/Blah.app: object file format unrecognized, invalid, or unsuitable

代码签名出现了问题,之前它与Xcode 4.3一起工作正常.代码签名仍然可以使用相同的命令完成吗?这个"未知的加载命令"是罪魁祸首,如果是这样,它是什么,以及如何找到并修复它?

xcode build code-signing ios xcode4

10
推荐指数
1
解决办法
4306
查看次数

管理更新审核发布工作流程的最佳方法?

我管理一个在线目录.目前,内部人员手动更新,他们的更改立即可见.现在我们要添加一个验证步骤:Tom做出改变,Jerry批准了.

我看到两条路,但似乎都不优雅.

  1. 保留整个数据库的第二个"工作副本".
  2. 在同一个数据库中保留第二组"脏"表.

这两者似乎都需要大量的代码才能用于内务处理,并且只要表的结构发生变化就会使工作量增加一倍.

有没有更好的办法?如果重要,DBMS是SQL Server,Web应用程序是asp.net.

编辑添加:

  1. 我在上面概述的两个更改都与现有代码向后兼容.我知道我将不得不进行一些更改,但我不能改变每一个查询.

  2. 我认为我的关键限制禁止简单地克隆行并标记它们"待定".

假设供应商ID为99的供应商有两个产品.(产品只能属于一个SupplierID.)供应商的电话号码已更改,因此我克隆了供应商记录,更改了电话号码,并将其标记为"待处理".但新记录的ID不能为99,因此不再有办法将其连接到其产品甚至是它要替换的记录.

我想我可以添加一个无约束的标识符,SupplierPseudoID,但这似乎与上述想法一样复杂且容易出错.

database-design

8
推荐指数
1
解决办法
558
查看次数

那么仅在客户端验证表单是否安全?

当然,我知道服务器端验证是必须的.

我正在使用jQuery来验证表单输入并使用jquery ajax同时进行服务器端(PHP)验证.所以我猜它可能是安全的,因为它在启用javascript时验证双方.

好吧,这是我的问题......

但是如果用户在他的浏览器上禁用javascript,并且有些坏人试图通过编辑我的客户端脚本来做坏事怎么办?

因为我正在通过jquery ajax进行服务器端验证,并且我打算不在php脚本中直接验证它们(action ="some.php"),甚至启用了用户的javascript.

那么......它还安全吗?

抱歉我的英文不好,希望你不介意.

security validation client-side-validation server-side-validation

8
推荐指数
3
解决办法
3385
查看次数

如何从optarg中获取值

嗨,我正在写一个简单的客户端 - 服务器程序.在这个程序中,我必须使用getopt()这样获取端口号和IP地址:

server -i 127.0.0.1 -p 10001

我不知道如何从optarg中获取值,以便稍后在程序中使用.

c getopt

7
推荐指数
2
解决办法
3万
查看次数

C# - 使用Lambda的System.StackOverflowException

在什么情况下,这个代码会出现System.StackOverflowException错误?

Accounts.Sort((x, y) => string.Compare(x.AccountId, y.AccountId));
Run Code Online (Sandbox Code Playgroud)

更新:
该属性写为:

    public string AccountId
    {
        get { return _accountId; }
        set { _accountId = value; }
    }
Run Code Online (Sandbox Code Playgroud)

没什么特别的.排序也不会被覆盖.

.net c# stack-overflow sorting lambda

7
推荐指数
3
解决办法
1888
查看次数

如何在Windows上获取插入的USB设备的供应商ID和产品ID

我在Windows平台上使用Qt.

我想从本地系统获取并显示插入的USB设备的供应商ID和产品ID.

以下是我从USB设备获取供应商ID和产品ID的完整源代码.

当我运行我的qt应用程序时,它不会给我任何错误.

所以我将USB设备插入系统.

但我的print语句显示如下结果

qDebug ()<<pDetData->DevicePath;

我得到的结果为0x4

我的源代码是否有任何实现错误?

如果是这样请指导我做错了什么..

我错过了其他任何功能吗?

是否有可能根据我的源代码从usb设备获取供应商ID和产品ID.(我的代码实现)?

请在下面找到我的源代码

static GUID GUID_DEVINTERFACE_USB_DEVICE = { 0xA5DCBF10L, 0x6530, 0x11D2, 
    { 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED } };

HANDLE hInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_USB_DEVICE,NULL,NULL,
    DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);

if ( hInfo == INVALID_HANDLE_VALUE )    
{    
    qDebug ()<<"invalid";   
}    
else    
{        
    qDebug ()<<"valid handle";    

    SP_DEVINFO_DATA DeviceInfoData;
    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);

    SP_INTERFACE_DEVICE_DATA Interface_Info;    
    Interface_Info.cbSize = sizeof(Interface_Info);

    BYTE Buf[1024];
    DWORD i;
    DWORD InterfaceNumber= 0;

    PSP_DEVICE_INTERFACE_DETAIL_DATA pspdidd = 
        (PSP_DEVICE_INTERFACE_DETAIL_DATA) Buf;

    for (i=0;SetupDiEnumDeviceInfo(hInfo,i,&DeviceInfoData);i++)
    { …
Run Code Online (Sandbox Code Playgroud)

c++ windows usb winapi qt

7
推荐指数
1
解决办法
2万
查看次数

全局设置 git 的 core.precomposeunicode = true 是否安全?

我们正在混合环境(OSX、Linux、Windows)中进行设置git 1.8,并且有些文件名使用非英语字符。我读到需要在 OSX 系统上core.precomposeunicode进行设置。true

我们不关心向后兼容性。我们致力于让开发人员的事情变得简单。我们不想解释git配置。

那么:全局设置该标志(在中央 git 服务器中)是否安全?这会增强我们所需的一致性吗?有理由不这样做吗?

git

7
推荐指数
1
解决办法
3480
查看次数

如何赋予'Everybody'文件的完整权限(以编程方式)

我正在修改旧的C++程序以在Vista上运行.它不需要管理员权限.

我已经更改了将日志文件放入的代码\ProgramData\MyApp\.这些日志文件是书面的stdio功能(fopen,fprintf,fclose).

这是问题所在:

  1. UserA首先运行程序,它\ProgramData\MyApp\MyLogFile.txt使用创建CreateFile()

  2. UserB接下来运行该程序,它尝试追加MyLogFile.txt并获得拒绝访问权限.

我尝试创建一个null SECURITY_DESCRIPTOR并将其传递给CreateFile().这确实创建了一个"没有分配权限"的文件,但似乎第一个写入该文件的用户获得了所有权,之后所有其他非管理员用户都运气不好.

所有用户共享相同的日志文件非常重要,但是我更改尽可能少的代码也很重要.

编辑添加:

\ProgramData\MyApp由标准Visual Studio安装程序创建.(我没有看到任何设置目录安全性的地方.)创建\MyApp它时授予Users这些权限:

Read & execute  
List folder contents
Read
Special permissions
Run Code Online (Sandbox Code Playgroud)

Advanced我看到特殊权限包括:

Create files / write data
Create folders / append data
Write attributes
Write extended attributes
Run Code Online (Sandbox Code Playgroud)

c++ file-permissions windows-vista

6
推荐指数
1
解决办法
8985
查看次数

添加新字段与创建单独的表

我正在开发一个项目,其中有几种类型的用户(学生和教师).目前,为了存储用户的信息,使用了两个表.该users表存储所有用户共有的信息.该teachers表存储只有教师使用外键将其与users表相关联的信息.

users

  • ID
  • 名称
  • 电子邮件
  • 其他34个领域

teachers

  • ID
  • 用户身份
  • 学科
  • 其他17个领域

在数据库的其余部分,没有引用teachers.id.需要与用户使用相关的所有其他表users.id.由于用户在教师表中只有一个相应的条目,我是否应该将教师表中的字段移动到用户表中,并将其留空给不是教师的用户?

例如

users

  • ID
  • 名称
  • 电子邮件
  • 学科
  • 其他51个领域

一张桌子的字段太多了吗?这会阻碍性能吗?

sql database-design foreign-keys foreign-key-relationship

6
推荐指数
1
解决办法
290
查看次数