葡京网投哪个正规 > 联系我们 > 网页制作,Win7下程序调用installutil注册服务权限问题

原标题:网页制作,Win7下程序调用installutil注册服务权限问题

浏览次数:102 时间:2020-03-25

 

图片 1<?xml version="1.0"?>
图片 2<?mso-application progid="Excel.Sheet"?>
图片 3<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
图片 4 xmlns:o="urn:schemas-microsoft-com:office:office"
图片 5 xmlns:x="urn:schemas-microsoft-com:office:excel"
图片 6 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
图片 7 xmlns:html=";
图片 8 <Worksheet ss:Name="tt">
图片 9  <Table>
图片 10   <Row>
图片 11    <Cell><Data ss:Type="String">Hello!World!</Data></Cell>
图片 12   </Row>
图片 13  </Table>
图片 14 </Worksheet>
图片 15</Workbook>
图片 16

print "</html>";
$data = ob_get_contents();

UAC可以在编译时设置,提示用户输入管理员密码才能执行,参考

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns=";
那直接加入下面这句话就行了

其实还可以精简到这样:

<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns=";

选择性禁止UAC,参考 

最近帮领导做一个小网站,边学边搞了一个星期,终于有点摸样要交差了,可是在本地浏览的时候IE总是会弹出tip:为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件。请单击这里获取选项...,也想过把Internet选项里安全级别设置的低一点,可是仍然有提示。后来在网上搜了一下,用了下面的方法,提示不会出了,但是本地的链接都不能用了。可是
LD要在本地做展示,希望高手给指点一下,如何解决这个问题。
第一次发帖提问,分少了点,请大家多帮忙了!非常感谢!

 

例子

这我们就需要调用Win32 API了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";
<!-- saved from url=(0022) -->

图片 17<?xml version="1.0"?>
图片 18<?mso-application progid="Excel.Sheet"?>
图片 19<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
图片 20 xmlns:o="urn:schemas-microsoft-com:office:office"
图片 21 xmlns:x="urn:schemas-microsoft-com:office:excel"
图片 22 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
图片 23 xmlns:html=";
图片 24 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
图片 25  <Title>Excel表格</Title>
图片 26  <LastAuthor>bigtall</LastAuthor>
图片 27 </DocumentProperties>
图片 28 <Styles>
图片 29  <Style ss:ID="Default" ss:Name="Normal">
图片 30   <Alignment ss:Vertical="Center"/>
图片 31   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
图片 32  </Style>
图片 33 </Styles>
图片 34 <Worksheet ss:Name="tt">
图片 35  <Table>
图片 36   <Row>
图片 37    <Cell ss:MergeAcross="6" ><Data ss:Type="String">Hello!World!</Data></Cell>
图片 38   </Row>
图片 39  </Table>
图片 40 </Worksheet>
图片 41</Workbook>
图片 42

function word($data,$fileName=''){
 if(empty($data)) return '';
 $data='<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns=";';
 if(empty($fileName)) $fileName=date('YmdHis').'.doc';
 $fp=fopen($fileName,'wb');
 fwrite($fp,$data);
 fclose($fp);
}

using System.Runtime.InteropServices;

        [DllImport("user32.dll")]
        private static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

        ///////////////////////////////////////////////////////////////////////
        /// <summary>
        ///     Enables the elevated shield icon on the given button control
        /// </summary>
        /// <param name="ThisButton">
        ///     Button control to enable the elevated shield icon on.
        /// </param>
        ///////////////////////////////////////////////////////////////////////
        private void EnableElevateIcon_BCM_SETSHIELD(Button ThisButton)
        {
            // Input validation, validate that ThisControl is not null
            if (ThisButton == null)
            {
                return;
            }

            // Define BCM_SETSHIELD locally, declared originally in Commctrl.h
            uint BCM_SETSHIELD = 0x0000160C;

            // Set button style to the system style
            ThisButton.FlatStyle = FlatStyle.System;

            // Send the BCM_SETSHIELD message to the button control
            SendMessage(new HandleRef(ThisButton, ThisButton.Handle), BCM_SETSHIELD, new IntPtr(0), new IntPtr(1));
        }

 

最简单的XML格式Excel表格文件

<?php
$str='<title>利用php创建word文档</title>
 <h1>利用php创建word文档</h1>
 作者:phpernote.com
<hr size=1>
 <p>如果你打开word.doc,看到了这里的介绍,则说明word文档创建成功了。</p>
<p>
<b>版权所有:</b>
<br>www.111cn.net
<hr size=1>';
word($str);

app.manifest内容如下: 

<!-- saved from url=(0022) -->
放到html前

其实把名称空间定义html,o,x三个删除也好使!图片 43

 代码如下

要调用API么,要先引用命名空间

 

当然,还有几个地方是可以删除掉的内容,但是这样就有些破坏完整性了。这个文档的作用就是从XML数据源中导出数据之后,使用XSLT转换也可以把数据导出。简单!

 代码如下

问题:

如果你的HTML文件中有这句话

 代码如下

 

<!-- saved from url=(0022) -->
没有的话.用这两句记住要放在 <head>的前面

$word->start();
?>

如果嫌这个麻烦,可以跳过UAC检查,参考  

 

function wirtefile ($fn,$data)
{

     win7系统下,自己写了个windows服务,在cmd下运行installutil注册不成功,以管理员身份起动cmd后运行installutil注册成功。

使用方法超级简单

答案:

function start()
{
ob_start();
print'<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns=";';

内容里的说明够详细了吧,只要把 asInvoker替换成requireAdministrator,我们的程序就会默认要求管理员权限运行了

<?php
include("word.php");
$word=new word;

下面再说下怎么给程序的按钮上也加上小盾牌图标吧

 代码如下

 运行效果:

示例如下:


 代码如下


php直接用fopen生成的核心代码是

方法如下: 在项目中新建一个文件:app.manifest,然后在其中输入以下代码,即可将该程序的运行权限提高到管理员级别。

}

 

查询mysql数据生成word也是非常的简单我们只要连接数据库,然后把数据库的内容存放在类的$word字段中,然后再利用$word->start();生成即可。

然后将服务卸载掉,另写了个程序用windowsAPI里的process函数调用installutil.exe去注册这个服务不成功,给出的提示是“......不可访问的日志: Security.........”,其实也就是权限问题。

$this->wirtefile ($path,$data);
}

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi=";
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC 清单选项
            如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换 
            requestedExecutionLevel 节点。

ob_end_clean();

 

}


$fp=fopen($fn,"wb");
fwrite($fp,$data);
fclose($fp);
}

 

function save($path)
{

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

<?php
class word
{
/*
@GNU:GPL
@author axgle <axgle@yahoo.com.cn>
@date 2005.4.20
*/

            如果您希望利用文件和注册表虚拟化提供
            向后兼容性,请删除 requestedExecutionLevel 节点。
        -->
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

?>

 参考资料:

为了方便使用我们把它整理成一个类文件

本文由葡京网投哪个正规发布于联系我们,转载请注明出处:网页制作,Win7下程序调用installutil注册服务权限问题

关键词:

上一篇:花圈挽联

下一篇:没有标题,今天写给你