小编Dea*_*nna的帖子

Win32 MessageBox没有出现

我遇到了一个奇怪的问题.我正在VC++ 2008中创建一个Win32应用程序,使得一个类可以封装大部分工作,以便在调用时轻松重复MessageBox.消息框`已创建(我认为),但除非我按下Alt键,否则不会显示!

究竟发生了什么:

  1. 我运行程序

  2. 按Enter键

  3. 主窗口失去焦点

  4. 当我点击主窗口时发出哔声,好像有一个模态MessageBox

  5. 要么按Escape ...要么获得焦点要么按Alt键,然后按下Alt键出现MessageBox(即菜单会掉落)!!!!!!

PS它工作正常,但突然发生了这种情况.我没有发现任何差异 - 我甚至做了一个新项目!

这应该是主程序:

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR    lpCmdLine, int       nCmdShow)
{
    MSG msg;
    CWnd    cMainWindow(TEXT("DentoMan"), TEXT("Bejkoman")); // pass The class name and window name to the constructor

    cMainWindow.CreateDef(); //Create the Window
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
}
Run Code Online (Sandbox Code Playgroud)

虽然这是类文件

CWnd::CWnd() {
};

CWnd::CWnd(LPTSTR lpszClassName, LPTSTR lpszWindowName) {
    CWnd::lpszClassName     = lpszClassName;
    CWnd::lpszWindowName    = lpszWindowName;
};

CWnd::~CWnd() {
};

// Create the …
Run Code Online (Sandbox Code Playgroud)

winapi messagebox

5
推荐指数
2
解决办法
5085
查看次数

如何在InnoSetup中将.NET程序集添加到GAC?

我正在使用InnoSetup为.NET应用程序安装一个安装程序,我想在安装期间注册一些程序集.我怎样才能做到这一点?

谢谢.

.net installer gac

5
推荐指数
1
解决办法
2105
查看次数

如何更改监视器设置以通过脚本复制和扩展

由于我使用一台带有电视作为第二个显示器的笔记本电脑,我想制作一个小脚本,它将触发屏幕设置从扩展到克隆,当它设置为克隆时,它应该将屏幕设置设置为扩展。我想用 C# 制作它,因为它是我的主要语言,我认为它可以解决我的问题。

所以我现在制作了一个像这样的控制台应用程序:

class Program
{
    static void Main(string[] args)
    {
        DisplayChanger.Start();
    }

    private static Process DisplayChanger = new Process
    {
        StartInfo =
        {
            CreateNoWindow = true,
            WindowStyle = ProcessWindowStyle.Hidden,
            FileName = "DisplaySwitch.exe",
            Arguments = "/extend"
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

创建新流程效果很好。但我的问题是,如何检查“显示”的状态?我需要它,以便我可以运行测试以查看要启动的进程。

感谢您的帮助 :)

c# settings multiple-monitors screens monitors

5
推荐指数
1
解决办法
3995
查看次数

使用Inno Setup中格式化(部分粗体)的文本制作安装程序?

有人看过GOG.com游戏安装程序吗?如何在单个标题中创建包含路径和需要大小的欢迎文本字符串?部分是粗体的.

以下是修改安装路径后如何更改String换行的示例

http://i.stack.imgur.com/VKbtE.jpg

在此输入图像描述

在此输入图像描述

delphi scripting pascal inno-setup

5
推荐指数
1
解决办法
1803
查看次数

Shellexec vs Exec vs Shellexec我的批处理文件

我没有在帮助中找到Shellexec和Exec之间差异的详尽解释.是个

Shellexec('','program.exe',params,'',SW_HIDE,ewWaitUntilTerminated,ResultCode) 
Run Code Online (Sandbox Code Playgroud)

相当于

Exec('program.exe',params,'',SW_HIDE,ewWaitUntilTerminated,ResultCode) 
Run Code Online (Sandbox Code Playgroud)

使用exe文件时?当然,当我想要执行与exe或批处理不同的文件时,请使用Shellexec.

然而,有时候,我无法让Shellexec和Exec正确地工作.唯一可行的解​​决方案是编写批处理文件并通过shellexec运行它.我个人不喜欢这个解决方案,因为我必须处理一个临时文件,我不相信获得的结果代码.现在我将不得不回到批处理文件解决方案,因为我不知道如何使这个指令工作:(错误是如果目标文件不存在,它会在命令提示符下引发指令失败即使目标文件不存在,该指令仍然有效.

mysqldump := 'C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqldump.exe';
params := '-uroot -ppassword myschema>C:\myappdir\backup\newbackup.sql'; 
//the destination folder exists, the file newbackup.sql does not exist      
Shellexec('',mysqldump,params,'',SW_HIDE,ewWaitUntilTerminated,ResultCode);
Run Code Online (Sandbox Code Playgroud)

我正在使用Windows 7 64位,该程序(Inno安装程序安装程序)以管理权限运行

inno-setup shellexecute exec

5
推荐指数
1
解决办法
1万
查看次数

Array和Split命令用于创建二维数组

我在使用split命令填充数组时遇到了一些麻烦.

我目前拥有的字符串如下

MyString = "Row1 Column1[~]Row1 Column2[~]Row1 Column3" & vbNewLine & _
"Row2 Column1[~]Row2 Column2[~]Row2 Column3" & vbNewLine & _
"Row3 Column1[~]Row3 Column2[~]Row3 Column3" & vbNewLine & _
"Row4 Column1[~]Row4 Column2[~]Row4 Column3"
Run Code Online (Sandbox Code Playgroud)

我有一个数组,我想要多维,并希望每个Row#Column#根据其数量在数组的正确部分.

例如

MyArray(1,1) = "Row1 Column1"
MyArray(2,1) = "Row2 Column1"
MyArray(3,1) = "Row3 Column1"
MyArray(4,1) = "Row4 Column1"

MyArray(1,2) = "Row1 Column2"
MyArray(2,2) = "Row2 Column2"
MyArray(3,2) = "Row3 Column2"
MyArray(4,2) = "Row4 Column2"

MyArray(1,3) = "Row1 Column3"
MyArray(2,3) = "Row2 Column3"
MyArray(3,3) = "Row3 Column3"
MyArray(4,3) = …
Run Code Online (Sandbox Code Playgroud)

arrays vb6 split multidimensional-array

5
推荐指数
2
解决办法
2万
查看次数

更改环境值后的 Innosetup SendMessage

我使用 InnoSetup 在注册表中设置环境变量:

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "MY_PROGRAM_HOME_DIR"; ValueData: "{app}"
Run Code Online (Sandbox Code Playgroud)

但是系统无法看到这个变量,直到我调用SendMessage.

[Code]
procedure DeinitializeSetup();
begin
  // HWND_BROADCAST = $FFFF 
  // WM_SETTINGCHANGE = $001A
  SendMessage($FFFF, $001A, 0, Longint(PChar('Environment')));
end;
Run Code Online (Sandbox Code Playgroud)

InnoSetup 说:

... 第 60 列:类型不匹配

我该如何正确的类型转换PCharLongint在InnoSetup脚本?

winapi casting inno-setup

5
推荐指数
1
解决办法
1636
查看次数

Jobb崩溃FAT Full

我尝试使用jobb库编译视频,问题是jobb崩溃,视频大小超过500 MB,下面是有关此问题的一些信息:

java.io.IOException: FAT Full (459872, 459873)
    at de.waldheinz.fs.fat.Fat.allocNew(Fat.java:298)
    at de.waldheinz.fs.fat.Fat.allocAppend(Fat.java:376)
    at de.waldheinz.fs.fat.ClusterChain.setChainLength(ClusterChain.java:175)
    at de.waldheinz.fs.fat.ClusterChain.setSize(ClusterChain.java:132)
    at de.waldheinz.fs.fat.FatFile.setLength(FatFile.java:91)
    at de.waldheinz.fs.fat.FatFile.write(FatFile.java:154)
    at com.android.jobb.Main$1.processFile(Main.java:495)
    at com.android.jobb.Main.processAllFiles(Main.java:604)
    at com.android.jobb.Main.processAllFiles(Main.java:600)
    at com.android.jobb.Main.main(Main.java:417)
Exception in thread "main" java.lang.RuntimeException: Error getting/writing file with name: videos.zip
    at com.android.jobb.Main$1.processFile(Main.java:501)
    at com.android.jobb.Main.processAllFiles(Main.java:604)
    at com.android.jobb.Main.processAllFiles(Main.java:600)
    at com.android.jobb.Main.main(Main.java:417)
Run Code Online (Sandbox Code Playgroud)

crash android

5
推荐指数
1
解决办法
1539
查看次数

具有自定义变量索引的Javascript数组

是否可以使用变量设置数组的自定义索引.

例如:

var indexID = 5;
var temp = {
    indexID: new Array()
};
Run Code Online (Sandbox Code Playgroud)

上面的示例将数组索引设置为indexID和不5.我尝试使用=snd引号,但我没有任何成功.

Thnaks

javascript arrays variables

5
推荐指数
2
解决办法
2万
查看次数

在具有多个IP地址的网络接口上发现WCF Web服务

我正在尝试DiscoveryClient使用此代码使用WCF进行Web服务发现:

// Setup the discovery client (WSDiscovery April 2005)
DiscoveryEndpoint discoveryEndpoint = new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscoveryApril2005);
DiscoveryClient discoveryClient = new DiscoveryClient(discoveryEndpoint);

// Setup the wanted device criteria
FindCriteria criteria = new FindCriteria();
criteria.ScopeMatchBy = new Uri("http://schemas.xmlsoap.org/ws/2005/04/discovery/rfc3986");
criteria.Scopes.Add(new Uri("onvif://www.onvif.org/"));

// Go find!
criteria.Duration = TimeSpan.FromMilliseconds(duration);
discoveryClient.FindAsync(criteria, this);
Run Code Online (Sandbox Code Playgroud)

这在具有分配给单个网络接口的单个​​IP地址(10.1.4.25)的计算机上非常有效.广播从10.1.4.25发送到239.255.255.250,我从同一子网上的5台设备获得响应.

但是,当机器在同一个接口上有多个IP时,它似乎选择一个源IP并从中发送请求.在这种情况下,我从单个设备获得一个169.254地址的回复.

我已经尝试设置UdpDiscoveryEndpoint.TransportSettings.MulticastInterfaceId一个合适的接口ID,但它没有帮助,因为它识别单个接口,而不是特定的IP.该UdpDiscoveryEndpoint.ListenUri属性还返回多播地址,因此不会影响源IP. UdpDiscoveryEndpoint.Address是发现协议的URN.

有什么办法可以强制它从特定的IP地址发送,或理想情况下,在每个配置的IP上发送多个请求?

我也尝试过ONVIF设备管理器似乎有同样的问题.

请注意,这不是将服务绑定到特定或"所有地址"IP.它是关于发送请求的IP.

c# wcf networking web-services ws-discovery

5
推荐指数
1
解决办法
1693
查看次数