大智慧浏览股票的时候  通达信跟着变动,反之也可以。

或者同花顺浏览股票的时候,通达信跟着变动  。

通达信有很多自定义消息,通过传递消息来完成某个小功能将大大简化编程,提高效率.就是win32调用.比如显示某支股票可以向通达信发送消息来实现。若无消息接口,模拟键盘输入来联动,效率低稳定性差。注意股票代码:沪市代码前加7,其它市场股票代码前面加6.

C代码

UINT UWM_STOCK = RegisterWindowMessage(_T("Stock"));::PostMessage(HWND_BROADCAST,UWM_STOCK,7580019,0);
//就是查看 580019 的页面,
::PostMessage(HWND_BROADCAST,UWM_STOCK,6031007,0);
//是查看031007页面

Python代码

#用pywin32,去掉_T()就ok。UWM_STOCK = RegisterWindowMessage("Stock");
PostMessage(HWND_BROADCAST,UWM_STOCK,7600027,0);

AutoHotkey代码

;这里指定0xFFFF就是HWND_BROADCAST,是对多个通达信窗口广播消息;
;如果指定具体窗口的句柄,则是向特定窗口发送消息。active_id:=0xFFFF
UWM_STOCK := DllCall("RegisterWindowMessage", Str,"Stock")
PostMessage,UWM_STOCK,7600050,0,,ahk_id %active_id%

--- c#实现--- 一大坨

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;namespace WgServer
{public class TdxWHelp   //关联打开通达信K线图用的{private static Hashtable processWnd = new Hashtable();[StructLayout(LayoutKind.Sequential)]public struct ProcessEntry32{public uint dwSize;public uint cntUsage;public uint th32ProcessID;public IntPtr th32DefaultHeapID;public uint th32ModuleID;public uint cntThreads;public uint th32ParentProcessID;public int pcPriClassBase;public uint dwFlags;[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]public string szExeFile;}public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam);[DllImport("KERNEL32.DLL")]public static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processid);[DllImport("KERNEL32.DLL")]public static extern int CloseHandle(IntPtr handle);[DllImport("KERNEL32.DLL")]public static extern int Process32First(IntPtr handle, ref ProcessEntry32 pe);[DllImport("KERNEL32.DLL")]public static extern int Process32Next(IntPtr handle, ref ProcessEntry32 pe);[DllImport("user32.dll")]private static extern int PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);[DllImport("user32.dll", EntryPoint = "EnumWindows", SetLastError = true)]public static extern bool EnumWindows(WNDENUMPROC lpEnumFunc, uint lParam);[DllImport("user32.dll", EntryPoint = "GetParent", SetLastError = true)]public static extern IntPtr GetParent(IntPtr hWnd);[DllImport("user32.dll", EntryPoint = "GetWindowThreadProcessId")]public static extern uint GetWindowThreadProcessId(IntPtr hWnd, ref uint lpdwProcessId);[DllImport("user32.dll", EntryPoint = "IsWindow")]public static extern bool IsWindow(IntPtr hWnd);[DllImport("kernel32.dll", EntryPoint = "SetLastError")]public static extern void SetLastError(uint dwErrCode);[DllImport("user32.dll", SetLastError = true)]public static extern bool GetGUIThreadInfo(IntPtr hTreadID, ref ProcessEntry32 lpgui);[DllImport("user32.dll")]public extern static int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);[DllImport("user32.dll")]public extern static int RegisterWindowMessage(string stock);public static void SendStockCode(string StockCode){if (StockCode == null) { return; }if (StockCode.Length != 6) { return; }int SendStock;if (StockCode.Substring(0, 1) == "6" || StockCode.Substring(0, 2) == "11"){SendStock = int.Parse("7" + StockCode);}else if (StockCode == "999999"){SendStock = int.Parse("7" + StockCode);}else{SendStock = int.Parse("6" + StockCode);}//if (StockCode.Substring(0, 1) == "6")//{//    SendStock = int.Parse( StockCode);//}//else if (StockCode == "999999")//{//    SendStock = int.Parse(StockCode);//}//else//{//    SendStock = int.Parse(StockCode);//}IntPtr hh = GetHandleByProcessName("TdxW.exe");// StringBuilder s = new StringBuilder(512);//  int i = GetWindowText(hh, s, s.Capacity);  int UWM_STOCK = RegisterWindowMessage("Stock");// int UWM_STOCK = RegisterWindowMessage("通达信金融终端");PostMessage(hh, UWM_STOCK, SendStock, 0);}public static IntPtr GetHandleByProcessName(string ProcessName){List<ProcessEntry32> list = new List<ProcessEntry32>();IntPtr handle = CreateToolhelp32Snapshot(0x2, 0);IntPtr hh = IntPtr.Zero;if ((int)handle > 0){ProcessEntry32 pe32 = new ProcessEntry32();pe32.dwSize = (uint)Marshal.SizeOf(pe32);int bMore = Process32First(handle, ref pe32);while (bMore == 1){IntPtr temp = Marshal.AllocHGlobal((int)pe32.dwSize);Marshal.StructureToPtr(pe32, temp, true);ProcessEntry32 pe = (ProcessEntry32)Marshal.PtrToStructure(temp, typeof(ProcessEntry32));Marshal.FreeHGlobal(temp);list.Add(pe);if (pe.szExeFile.ToUpper() == ProcessName.ToUpper()){bMore = 2;hh = GetCurrentWindowHandle(pe.th32ProcessID);break;}bMore = Process32Next(handle, ref pe32);}}return hh;}public static IntPtr GetCurrentWindowHandle(uint proid){IntPtr ptrWnd = IntPtr.Zero;uint uiPid = proid;object objWnd = processWnd[uiPid];if (objWnd != null){ptrWnd = (IntPtr)objWnd;if (ptrWnd != IntPtr.Zero && IsWindow(ptrWnd))  // 从缓存中获取句柄{return ptrWnd;}else{ptrWnd = IntPtr.Zero;}}bool bResult = EnumWindows(new WNDENUMPROC(EnumWindowsProc), uiPid);// 枚举窗口返回 false 并且没有错误号时表明获取成功if (!bResult && Marshal.GetLastWin32Error() == 0){objWnd = processWnd[uiPid];if (objWnd != null){ptrWnd = (IntPtr)objWnd;}}return ptrWnd;}private static bool EnumWindowsProc(IntPtr hwnd, uint lParam){uint uiPid = 0;if (GetParent(hwnd) == IntPtr.Zero){GetWindowThreadProcessId(hwnd, ref uiPid);if (uiPid == lParam)                                              // 找到进程对应的主窗口句柄{if (!processWnd.Contains(uiPid)){processWnd.Add(uiPid, hwnd);                    // 把句柄缓存起来SetLastError(0);                                             // 设置无错误}return false;                                                     // 返回 false 以终止枚举窗口}}return true;}}
}

[AHK]联动通达信其实很简单相关推荐

  1. python关联通达信pywin32_[AHK]联动通达信其实很简单

    通达信有很多自定义消息,通过传递消息来完成某个小功能将大大简化编程,提高效率.就是win32调用.比如显示某支股票可以向通达信发送消息来实现.若无消息接口,模拟键盘输入来联动,效率低稳定性差.注意股票 ...

  2. c#桌面程序 调用 AutoHotKey脚本 联动通达信股票

    Python结合通达信选股策略进行股票量化 上一篇文章中我讲过,可以做一个桌面程序展示 通达信选股策略量化结果和当日热点股票, 那么今天我们可以再细化一下这个功能,讲讲这里面涉及的重要技术节点: 1. ...

  3. [AHK]为通达信软件定义快捷键(发送按键法)

    #SingleInstance force;为通达信软件定义快捷键#IfWinActive, ahk_class TdxW_MainFrame_Class ahk_exe TdxW.exeSpace: ...

  4. [AHK]为通达信标记文字窗口的按钮增加热键

    本文用AutoHotkey给通达信客户端标记文字功能的[添加标记]按钮增加热键,抛砖引玉 举一反三,欢迎大家挖掘AutoHotkey辅助交易的能力,欢迎来[AutoHotkey辅助交易QQ群20874 ...

  5. [AHK]为通达信增加打开关闭交易窗口的功能热键

    用文华财经习惯用空格呼叫出交易界面,通达信软件(招商证券)没有相应热键,便用AutoHotkey来帮它定义一个. #Persistent #SingleInstance Force Control:= ...

  6. [AHK]为通达信画线工具中的文字注释功能增加热键

    不想每次都用鼠标去寻找定位这个功能,想热键直达. 方法一:点击坐标法,问题是分辨率不同会导致失效. SendMessage,0x111,4104,0,,ahk_class TdxW_MainFrame ...

  7. [AHK]通达信联动到同花顺下单

    上面无需热键,鼠标滚轮自动实现通达信到同花顺联动,定制脚本50¥/小时. 以下为热键版,仅做示范 #Persistent #SingleInstance,ForcetdxTitle:="华泰 ...

  8. 通达信最佳买入指标!散户必备!简单易懂!

    通达信最佳买入指标公式! 完全开源!超简单!新手小白也懂!选股必备! 直接看红绿箭头指示,看出临界低点和临界高点! 对散户炒股爱好者最有用!!! 要注意股票主图和副图相对应来看哦! 当看到红色箭头以及 ...

  9. 复盘的小小帮手——简单编程,进阶范例 通达信基础范例

    转自本人其他平台 希望通过这些小小的东西帮助能真正帮到的人. 由于本人本科是数学专业,大学期间有学编程类的语言,从事的是量化投资,所以这些编程对于我是很简单的东西.考虑到有一部分玩家用通达信,而且没编 ...

最新文章

  1. pbs分解_UML使用产品分解结构(PBS)教程
  2. dede mysql x_认识Dede的mysql数据库结构功能
  3. 禁止更改计算机名_【复习收藏】计算机操作系统考点归纳
  4. Bootstrap table后端分页(ssm版)
  5. Android自定义抛出异常
  6. gulimall(谷粒商城) 是一个综合性的B2C平台,包括前台商城系统以及后台管理系统
  7. nginx开启支持websocket连接
  8. [论文阅读] Automatic Polyp Segmentation via Multi-scale Subtraction Network
  9. Ubuntu MySQL 配置 time_zone
  10. HttpClient 设置不当引发的一次雪崩
  11. Net Core 实现谷歌翻译ApI 免费版
  12. python正版软件多少钱_多款正版软件 + 付费教程迎来史低价,少数派「双十一」活动全面开始...
  13. 从 API、UI、结构到商业产品设计精髓
  14. webgl的平行光漫反射示例
  15. html计时加速,HTML-加速、再加速(下)_html
  16. Excel之DateDif函数
  17. 阿里云配置服务器,短信,域名
  18. 【Xgen UE】将Xgen制作好的毛发导入UE
  19. MATLAB数值取整
  20. 人工智能在刷题学海战术中的作用

热门文章

  1. 浙江科技学院计算机试卷,浙江科技学院计算机专业统计学原理复习题参考答案.doc...
  2. Linux运维工程师面试题(1)
  3. 基于java电力设备管理系统
  4. 关于迅雷电影的下载地址
  5. 信息管理实践第一周周记
  6. iOS暗黑(dark)模式适配
  7. nginx 正向代理https配置
  8. 解决Matlab中文乱码问题,再也不用升级Matlab版本啦
  9. FFMPEG -- av_guess_format
  10. 5款100元千兆WiFi5路由器,刷机玩真的香