首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

"qq叙谈"是怎样实现的呢

2013-04-09 
qq交谈是怎样实现的呢?想在winform程序里实现,点击上面的图片,就启动qq程序,这是怎样实现的呢?谢谢[解决

"qq交谈"是怎样实现的呢?
"qq叙谈"是怎样实现的呢

想在winform程序里实现,点击上面的图片,就启动qq程序,

这是怎样实现的呢?谢谢
[解决办法]
        private void btnRunQQ_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("tencent://message/?uin=QQ号码&Site=qq&Menu=yes");
        }
[解决办法]
其中  “QQ号码”  用实际QQ号码代码就是了
[解决办法]
比如CSDN产品客服的QQ号码为 2355263776  那么代码就是

        private void btnRunQQ_Click(object sender, EventArgs e)
         {
             System.Diagnostics.Process.Start("tencent://message/?uin=2355263776&Site=qq&Menu=yes");
         } 


[解决办法]
在QQ程序安装的时候,会在注册表的HTTP协议中加一个自定义协议,比如"tencent://",在这个协议关联的即是QQ所在调用程序.在网页上,网页代码链接就是"tencent://****",用户点击后,浏览器先检查注册表有无"tencent开头的协议,如果有,由传递给注册表中指定路径的程序打开.

以下是N年前用VB6写的,在地址栏输入dylike://或者链接以dylike://开头,即会调用指定的EXE打开并传递参数.

Begin VB.Form Form1 
   BackColor       =   &H00FFFFFF&
   BorderStyle     =   1  'Fixed Single
   Caption         =   "DYLIKE万能调用 V1.0"
   ClientHeight    =   4995
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   4680
   Icon            =   "Form1.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   Picture         =   "Form1.frx":42711
   ScaleHeight     =   4995
   ScaleWidth      =   4680
   StartUpPosition =   2  '屏幕中心
   Begin VB.Label Label2 
      BackStyle       =   0  'Transparent
      Height          =   255
      Left            =   2400
      MouseIcon       =   "Form1.frx":4BDB0
      MousePointer    =   99  'Custom


      TabIndex        =   2
      Top             =   4440
      Width           =   930
   End
   Begin VB.Label Label1 
      BackStyle       =   0  'Transparent
      Height          =   255
      Left            =   120
      MouseIcon       =   "Form1.frx":4C13A
      MousePointer    =   99  'Custom
      TabIndex        =   1
      Top             =   4200
      Width           =   930
   End
   Begin VB.Label QA 
      BackStyle       =   0  'Transparent
      Height          =   975
      Left            =   2520
      MouseIcon       =   "Form1.frx":4C4C4
      MousePointer    =   99  'Custom
      TabIndex        =   0
      Top             =   0
      Width           =   1935
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim SS As String
Dim PTH As String
Dim XX, YY As Integer
Dim FN
Dim CMD As String
Dim SP() As String
Private Sub Form_Load()
On Error Resume Next
CMD = Command
CMD = LCase(CMD)
CMD = Replace(CMD, Chr(34), "")
CMD = Replace(CMD, "dylike://", "")
CMD = Mid(CMD, 1, Len(CMD) - 1)
'------------程序路径-------------
PTH = App.Path
If Mid(PTH, Len(PTH) - 1, 1) <> "" Then
PTH = PTH & ""
End If
PTH = PTH & App.EXEName & ".exe"
PTH = Replace(PTH, "", "\")
'-----------注册表数据------------
GETSS (True)
REG (True)
'-----------执行程序-------------
If Trim(CMD) <> "" Then


SP = Split(CMD, "
[解决办法]
")
If Trim(SP(2)) <> "" Then
Select Case SP(2)
Case "普通"
Shell SP(0) & " " & SP(1), vbNormalFocus
Case "最小化"
Shell SP(0) & " " & SP(1), vbMinimizedFocus
Case "最大化"
Shell SP(0) & " " & SP(1), vbMaximizedFocus
End Select
If SP(2) <> "普通" And SP(2) <> "最小化" And SP(2) <> "最大化" Then
Shell SP(0) & " " & SP(1), vbNormalFocus
End If
Else
Shell SP(0) & " " & SP(1), vbNormalFocus
End
End If
End
End If
End Sub

Private Sub Label1_Click()
GETSS (False)
REG (False)
MsgBox "注销成功", vbOKOnly + vbInformation, "DYLIKE"
End Sub

Private Sub Label2_Click()
GETSS (True)
REG (True)
MsgBox "注册成功", vbOKOnly + vbInformation, "DYLIKE"
End Sub

Private Sub QA_Click()
On Error Resume Next
Shell "explorer.exe http://dylike.czdown.com"
End Sub

Private Sub REG(RG As Boolean)
On Error Resume Next
Select Case RG
Case True
FN = FreeFile
Open "c:\windows\temp\d1.reg" For Output As #FN
Print #FN, SS
Close FN
Shell "regedit.exe /s c:\windows\temp\d1.reg", vbNormalFocus
Case False
FN = FreeFile
Open "c:\windows\temp\d1.reg" For Output As #FN
Print #FN, SS
Close FN
Shell "regedit.exe /s c:\windows\temp\d1.reg"
End Select
End Sub

Private Sub GETSS(AA As Boolean)
On Error Resume Next
Select Case AA
Case True
SS = "Windows Registry Editor Version 5.00" & vbCrLf & vbCrLf & _
"[HKEY_CLASSES_ROOT\DYLIKE]" & vbCrLf & _
"@=[引号]DylikeSOFTWARE[引号]" & vbCrLf & _
"[引号]URL Protocol[引号]=[引号][程序路径][引号]" & vbCrLf & vbCrLf & _
"[HKEY_CLASSES_ROOT\DYLIKE\DefaultIcon]" & vbCrLf & vbCrLf & _
"@=[引号][程序路径],1[引号]" & vbCrLf & vbCrLf & _
"[HKEY_CLASSES_ROOT\DYLIKE\shell]" & vbCrLf & vbCrLf & _
"[HKEY_CLASSES_ROOT\DYLIKE\shell\open]" & vbCrLf & vbCrLf & _
"[HKEY_CLASSES_ROOT\DYLIKE\shell\open\command]" & vbCrLf & vbCrLf & _
"@=[引号]\[引号][程序路径]\[引号] \[引号]%1\[引号][引号]"
SS = Replace(SS, "[引号]", Chr(34))
SS = Replace(SS, "[程序路径]", PTH)
Case False
SS = "Windows Registry Editor Version 5.00" & vbCrLf & vbCrLf & _
"[-HKEY_CLASSES_ROOT\DYLIKE]" & vbCrLf & _
"[-HKEY_CLASSES_ROOT\DYLIKE\DefaultIcon]" & vbCrLf & vbCrLf & _
"[-HKEY_CLASSES_ROOT\DYLIKE\shell]" & vbCrLf & vbCrLf & _
"[-HKEY_CLASSES_ROOT\DYLIKE\shell\open]" & vbCrLf & vbCrLf & _


"[-HKEY_CLASSES_ROOT\DYLIKE\shell\open\command]"
SS = Replace(SS, "[引号]", Chr(34))
SS = Replace(SS, "[程序路径]", PTH)
End Select
End Sub

热点排行