【发布时间】:2022-06-18 22:13:24
【问题描述】:
我有一个 url 方案 myapp://123456(123456 它是一个动态值)从 webapp 调用一个 exe 文件。该 exe 包含以下代码。我对 C++、VB 或其他桌面语言没有任何经验,我需要动态传递来自 url 的值,那里有硬编码的 pippo,但我做不到。在谷歌上,我发现 Environment.GetCommandLineArgs() 可以正常工作,但它是 C# 而不能在 C++ 上工作 有人可以帮我吗?谢谢
CDdeLauncherDlg::CDdeLauncherDlg(CWnd *pParent )
: CDialog(CDdeLauncherDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDdeLauncherDlg)
m_connect = FALSE;
m_param1 = 50;
m_param2 = 50;
m_param3 = 50;
m_param4 = 50;
m_appName = _T("GINCOBILOBA");
m_appExe = m_appName + "1"; // num. sessione
m_pathName = _T("");
m_scriptPath = _T("");
m_code = _T("pippo");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_pConv = NULL;
m_iconized = false;
m_isOpen = false; // APP aperta
this->Connect();
}
这是 Windows 注册表 url 方案:
REGEDIT4
[HKEY_CLASSES_ROOT\Myapp]
@="URL:Myapp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Myapp\DefaultIcon]
@="\"C:\\Program Files\\Myapp\\Myapp.exe\""
[HKEY_CLASSES_ROOT\Myapp\shell]
[HKEY_CLASSES_ROOT\Myapp\shell\open]
[HKEY_CLASSES_ROOT\Myapp\shell\open\command]
@="\"C:\\Program Files\\Myapp\\Myapp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""
【问题讨论】:
-
_T("123456")?您可能需要更详细地解释您的问题 -
这取决于您实际注册 uri 方案的方式。它可以通过 DDE、命令行等传递...您至少必须提供how you registered the URI scheme in the windows registry,否则将很难回答。
-
“我需要在有 pippo 的地方传递值 123456”——这看起来是一个直截了当的要求。你试过了吗?只需将值
"123456"放在有"pippo"的地方吗?结果如何? -
@Turtlefight 我已经在窗口注册表中注册了 url 架构,从一个 web 应用程序我用一个动态值调用了 url 架构,我需要将它传递给 exe 文件,这个 exe 文件通过 DDE将其传递给第三方桌面应用程序。我在 google environment.getcommandlineargs() 上发现它在 C# 上运行良好,但我无法让它在这个 C++ 代码上运行。谢谢
标签: c++