opencv18 Oct 2010 02:41 pm

这篇日志已被密码保护。请在这里输入密码:


opencv23 Jul 2010 03:56 pm

这篇日志已被密码保护。请在这里输入密码:


C#17 May 2010 03:12 pm

System.Net.WebClient wc = new System.Net.WebClient();
Byte[] pageData
= wc.DownloadData(网页地址);
string s= System.Text.Encoding.Default.GetString(pageData);

C#17 May 2010 01:53 pm

        /// <summary>
        /// 得到每个汉字的字首拼音码字母(大写)
        /// </summary>
        /// <param name=”chrStr”>输入字符串</param>
        /// <returns>返回结果</returns>
        public string GetHeadCharacter(string chrStr)
        {
            string strHeadString = string.Empty;

            Encoding gb = System.Text.Encoding.GetEncoding(“gb2312″);
            for (int i = 0; i < chrStr.Length; i++)
            {
                //检测该字符是否为汉字
                if (!IsChineseCharacters(chrStr.Substring(i, 1)))
                {
                    strHeadString += chrStr.Substring(i, 1);
                    continue;
                }

                byte[] bytes = gb.GetBytes(chrStr.Substring(i, 1));
                string lowCode = System.Convert.ToString(bytes[0] – 0xA0, 16);
                string hightCode = System.Convert.ToString(bytes[1] – 0xA0, 16);
                int nCode = Convert.ToUInt16(lowCode, 16) * 100 + Convert.ToUInt16(hightCode, 16);      //得到区位码
                strHeadString += FirstLetter(nCode);
            }
            return strHeadString;
        }

        /// <summary> 
        /// 判断字符是否为汉字 
        /// </summary> 
        /// <param   name=”chrStr”>待检测字符串</param> 
        /// <returns>是汉字返回true</returns> 
        public bool IsChineseCharacters(string chrStr)
        {
            Regex CheckStr = new Regex(“[\u4e00-\u9fa5]“);
            return CheckStr.IsMatch(chrStr);
        }

        /// <summary>
        /// 通过汉字区位码得到其首字母(大写)
        /// </summary>
        /// <param name=”nCode”>汉字编码</param>
        /// <returns></returns>
        private string FirstLetter(int nCode)
        {
            if (nCode >= 1601 && nCode < 1637) return “A”;
            if (nCode >= 1637 && nCode < 1833) return “B”;
            if (nCode >= 1833 && nCode < 2078) return “C”;
            if (nCode >= 2078 && nCode < 2274) return “D”;
            if (nCode >= 2274 && nCode < 2302) return “E”;
            if (nCode >= 2302 && nCode < 2433) return “F”;
            if (nCode >= 2433 && nCode < 2594) return “G”;
            if (nCode >= 2594 && nCode < 2787) return “H”;
            if (nCode >= 2787 && nCode < 3106) return “J”;
            if (nCode >= 3106 && nCode < 3212) return “K”;
            if (nCode >= 3212 && nCode < 3472) return “L”;
            if (nCode >= 3472 && nCode < 3635) return “M”;
            if (nCode >= 3635 && nCode < 3722) return “N”;
            if (nCode >= 3722 && nCode < 3730) return “O”;
            if (nCode >= 3730 && nCode < 3858) return “P”;
            if (nCode >= 3858 && nCode < 4027) return “Q”;
            if (nCode >= 4027 && nCode < 4086) return “R”;
            if (nCode >= 4086 && nCode < 4390) return “S”;
            if (nCode >= 4390 && nCode < 4558) return “T”;
            if (nCode >= 4558 && nCode < 4684) return “W”;
            if (nCode >= 4684 && nCode < 4925) return “X”;
            if (nCode >= 4925 && nCode < 5249) return “Y”;
            if (nCode >= 5249 && nCode < 5590) return “Z”;
            return “”;
        }
    }

C#17 May 2010 01:48 pm

using System; 
using System.Runtime.InteropServices; 

namespace ArLi.CommonPrj { 

#region how use this? 
/* 
string sVol = getvol.GetVolOf(“C”); 
*/ 
#endregion 

public class getvol{ 

[DllImport("kernel32.dll")] 
private static extern int GetVolumeInformation( 
string lpRootPathName, 
string lpVolumeNameBuffer, 
int nVolumeNameSize, 
ref int lpVolumeSerialNumber, 
int lpMaximumComponentLength, 
int lpFileSystemFlags, 
string lpFileSystemNameBuffer, 
int nFileSystemNameSize 
); 

public static string GetVolOf(string drvID){ 
const int MAX_FILENAME_LEN = 256; 
int retVal = 0; 
int a =0; 
int b =0; 
string str1 = null; 
string str2 = null; 

int i = GetVolumeInformation( 
drvID + @”:\”, 
str1, 
MAX_FILENAME_LEN, 
ref retVal, 
a, 
b, 
str2, 
MAX_FILENAME_LEN 
); 

return retVal.ToString(“x”); 


}

C#17 May 2010 01:42 pm

vs2008安装部署软件过程
1、在 Microsoft Visual Studio 2008的“文件”菜单上,单击“新建”,然后单击“项目”。
2、在“新建项目”对话框中,选择“其他项目类型”,再选择“安装和部署”,然后在模板中选择“安装项目”。
3、键入 TestSetup 作为该程序的名称,然后单击确定。
4、添加安装需要的文件:
点击“文件系统”的“应用程序文件夹”,在右边框中点击鼠标右键,选择“添加”,选择“文件”,然后选择需要部署的文件。本例选择test.exe文件(如果该程序运行时还需要别的文件,则一起选择)。
5、在“开始”菜单上建快捷方式:
A、点击“文件系统”的“用户的“程序”菜单”,在右边框中点击鼠标右键,选择“添加”,选择“文件夹”,文件夹的名称为“程序员”。
B、点击“程序员”,在右边框中点击鼠标右键,选择“创建新的快捷方式”,查找范围选择“应用程序文件夹”,选择test.exe文件,然后确定,更名为“程序员秘书”。
6、在“桌面”建快捷方式:
点击“用户桌面”,在右边框中点击鼠标右键,选择“创建新的快捷方式”,查找范围选择“应用程序文件夹”,选择test.exe文件,然后确定,更名为“程序员”。
7、安装后自动运行程序:
A、使用下面的代码创建一个 auto.vbs(auto名称可以随意) 文件:
Set WshShell = CreateObject(“WScript.Shell”)
WshShell.Run “”"” & Property(“CustomActionData”) & “”"”,1,False
Set WshShell = Nothing
B、打开安装项目并转到“自定义操作编辑器”。
C、选择“提交”节点;右击并添加一个新的“自定义操作”。
D、浏览文件系统以添加您在步骤 A 中创建的 auto.vbs 文件。
E、auto.vbs属性框的“CustomActionData”属性[TARGETDIR]test.exe
8、选择TestSetup项目,在属性框中修改,Author为“鲁勤俭”,Manufacturer为“程序员秘书开发小组”,ProductName为“程序员”,Title为“程序员”。
10、给快捷方式添加图标:
A、点击“文件系统”--“用户的程序菜单”--“程序员”,在右边框中点击鼠标右键,选择“属性窗口”,点击“Icon”--“浏览”,在图标对话框中,点击“浏览”,文件类型选择“可执行文件(*.exe)”,应用程序文件夹中选择test.exe文件(注:test.exe项目编译时要选择有图标才行,也可以直接在磁盘上选择一个图标文件),确定,如果有多个图标,选择一个图标,确定。
B、同理给“用户桌面”的“程序员”的快捷方式添加上图标。
11、创建卸载链接:

方法一
A、在安装项目目录中,创建一个新的 Uninstall.bat 文件。
B、在安装项目中,复制“ProductCode”属性(一个类似 [12345678-1234-1234-1234-123412341234] 的值)。
C、编辑
编辑 Uninstall.bat,以便让其中一行包含以下内容(其中,ProductCode 是您在步骤 2 中复制的值):
Msiexec /x ProductCode
D、将 Uninstall.bat 添加到安装项目的应用程序文件夹。
E、右击 Uninstall.bat 并选择“创建快捷方式”以创建快捷方式。
F、将快捷方式放在安装项目中相应的“开始”菜单文件夹中。
G、将快捷方式重命名为类似于“卸载 程序员秘书”,将属性ShowCmd设为vsdscMinimized。

方法二

或将:C:\WINDOWS\system32\msiexec.exe加入文集并创建msiexec.exe 快捷方式 将Arguments属性值设定为 /x + {ProductCode}
12、编译

0 0 0
(请您对文章做出评价)posted on 2009-02-20 11:35 Benjamin Xu 阅读(788) 评论(1) 编辑 收藏 网摘 所属分类: .NET工作积累
Body:0,BeforeCate:0,0,Total:203.125
Feedback
1474960
#1楼[楼主]2009-03-12 14:30 | 徐.百川
一.

1. 在现有项目的解决方案中添加新的项目: 右击”解决方案”,选择”添加”–”新建项目”, 在”添加新项目”的选择窗口中, “项目类型”选”其他项目类型”–”安装和部署”,”模板”选”安装项目”,给新项目指定名称,位置;
2. 在新添加的安装项目上右击, 选择”视图”–”文件系统”, 右击”目标计算机上的文件系统”作侧的”应用程序文件夹”, 选择”添加文件”或者”添加项目输出”,将你要安装的文件添加到该位置;
3. 初始的安装位置: 在上面的”文件系统”界面, 左击”应用程序文件夹”, 在”属性”栏中找到”DefaultLocation”, 默认的属性值是: [ProgramFilesFolder][Manufacturer]\[ProductName], 这就是用户安装的默认位置, 如果不是这样, 修改成这样.
4. 另外, 在”解决方案管理器”中, 点击你添加的安装项目, 在”属性”编辑栏中, 在[Manufacturer]中填入你公司的名字或者你自己希望的文字, 在[ProductName]填入你为要被安装的项目命名的名字.
5. 先在”解决方案管理器”中”生成”你的项目, 然后”生成”你的安装项目
6. 在”解决方案管理器”中,右击你的安装项目, 选择”安装”, 便可在你的开发机上进行安装了, 在你的安装项目的路径下的bin下有两个文件夹: debug 和 Release,
7. 在解决方案管理器中,右击你的安装项目, 选择”属性”, 如果你的项目属性里选择的是 “配置” 是 “debug”, 则你生成的安装文件在 debug 里面, 如果选择的”配置”是 “Release”, 则生成的安装文件在 Release 里面. 当然你也可以修改你的位置可文件名, 还可以对你的安装文件进行其它的设置.

二.
在解决方案管理器中, 右击添加的”安装项目”, 选择”视图”–”注册表”;

在”目标计算机上的注册表”下,默认有注册表的五个主键栏;
默认情况下, 在 [HKEY_CURRENT_USER] 和 [HKEY_CURRENT_MACHINE] 下会有 [Software]\[Manufacturer] 分支, 如果你的安装项目的属性中设置了 [Manufacturer]值, 安装后会用值去替代[Manufacturer], 例如 [Manufacturer] 的值 设置为 “Power Word”, 则安装后会在 [Software]下创建一个[Power Word]分支;
默认情况下 [Manufacturer] 的 AlwaysCreate 属性是 false, 即:如果你的 [Manufacturer] 下没有项目,则不创建 [Manufacturer] ,如果无论如何都要创建这个键, 则可将 它的 AlwaysCreate 设置为 true;
依照上面的方法, 在你想建注册表项的主键中逐级新建分支项和项目, 在新建的注册表项目上右击后选属性, 设置注册项的 value 值;
无论是建主键分支还是项目, 都可以用 [] 的方法使用系统变量来动态指定需要添加的注册表内容. 例如:
[Manufacturer] 存放的是安装项目的公司值,
[ProductName] 存放的是安装项目属性中的 产品名称,
[TARGETDIR] 存放的是安装时用户选定的安装路径,
[COMPANYNAME] 存放的是安装时用户填入的公司名(如果没设用户信息安装界面则取操作系统中的公司名),
[USERNAME] 存放的是安装时用户填入的用户名(如果没设用户信息安装界面则取操作系统中的用户名,
如此等等

如果想要在安装时出现注册码, 要么自己做一个DLL或者EXE项目, 加入到 自定义操作中在安装时打开界面输入注册码, 要么使用VS安装项目自带的界面(在视图–用户界面中添加”用户信息”安装界面,设置showserialnumber 为 true), 不过那个注册码是用 模7 来验证的, 只要是验证位数值之和能被7整除都能通过, 就像以前安装盗板 office 97 时输入 “1111111″一样.

C#15 May 2010 04:52 pm

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices
;
namespace WindowsApplication16
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[StructLayout(LayoutKind.Sequential)]
public struct DEV_BROADCAST_VOLUME
{
public int dbcv_size;
public int dbcv_devicetype;
public int dbcv_reserved;
public int dbcv_unitmask;
}
protected override void WndProc(ref Message m)
{
// 发生设备变动
const int WM_DEVICECHANGE = 0×0219;
// 系统检测到一个新设备
const int DBT_DEVICEARRIVAL = 0×8000;
// 系统完成移除一个设备
const int DBT_DEVICEREMOVECOMPLETE = 0×8001;
// 逻辑卷标
const int DBT_DEVTYP_VOLUME = 0×00000002;
switch (m.Msg)
{
case WM_DEVICECHANGE:
switch (m.WParam.ToInt32())
{
case DBT_DEVICEARRIVAL:
int devType = Marshal.ReadInt32(m.LParam, 4);
if (devType == DBT_DEVTYP_VOLUME)
{
DEV_BROADCAST_VOLUME vol;
vol = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(
m.LParam, typeof(DEV_BROADCAST_VOLUME));
MessageBox.Show(vol.dbcv_unitmask.ToString(“x”));
}
break;
case DBT_DEVICEREMOVECOMPLETE:
MessageBox.Show(“Removal”);
break;
}
break;
}
base.WndProc(ref m);
}
}
}

编程技术13 Oct 2006 10:43 am

asp.net调用bat和ctl文件实现sql*loader的功能

1  后台调用bat文件

            Dim proc As System.Diagnostics.Process
            proc = System.Diagnostics.Process.Start("cmd.exe", " /c " & "D:\execise\SE004.bat")
            proc.WaitForExit()
  或者

        Shell("cmd.exe /c D:\execise\SE004.bat", AppWinStyle.NormalFocus)

 或者

             Dim p As New System.Diagnostics.Process
            ‘p.StartInfo.FileName = "cmd.exe"
            ‘p.StartInfo.Arguments = " /c " & "D:\execise\SE004.bat"
            ‘p.StartInfo.UseShellExecute = False
            ‘p.StartInfo.RedirectStandardInput = True
            ‘p.StartInfo.RedirectStandardOutput = True
            ‘p.StartInfo.RedirectStandardError = True
            ‘p.StartInfo.CreateNoWindow = False
            ‘p.Start()

            ‘Dim strValue As String = p.StandardOutput.ReadToEnd()

2  然后调用ctl文件,bat文件的

    SQLLDR USERID=spv3/paper@san CONTROL=d:\execise\SE004.CTL log=D:\execise\LOG\SE004.log

3, ctl文件的内容如下

   

LOAD DATA
INFILE ‘D:\execise\SE004.CSV’
TRUNCATE
INTO TABLE TEMP_tableName
FIELDS TERMINATED BY ","
TRAILING NULLCOLS
(
id

,age

,num

,sum

)

4. 数据文件以 逗号分割

编程技术13 Oct 2006 10:32 am

Oracle数据库中跨库查询的连接语句

就是目前程序操作的是db1数据库,但由于某种原因,需要访问db2数据库里的表,连接如下

create database link dbLink
connect to USERID identified by PASSWORD
using ‘SID’;
/
select * from SID.tableName@dbLink;
/
drop database link dbLink;

编程技术08 Oct 2006 02:38 pm

            Dim objFileInfo As System.IO.FileInfo = New System.IO.FileInfo(strWinPath & strFileNm)

            If System.IO.File.Exists(strWinPath & strFileNm) Then
                Response.Clear()
                Response.ContentType = "application/octet-stream"
                Response.AddHeader("Content-Disposition", "attachment;  filename=" + objFileInfo.Name)
                Response.AddHeader("Content-Length", objFileInfo.Length.ToString())
                Response.WriteFile(objFileInfo.FullName)
                Response.Flush()
                Response.End()
            End If

下一页 »