我遇到了一个奇怪的问题.我正在VC++ 2008中创建一个Win32应用程序,使得一个类可以封装大部分工作,以便在调用时轻松重复MessageBox
.消息框`已创建(我认为),但除非我按下Alt键,否则不会显示!
究竟发生了什么:
我运行程序
按Enter键
主窗口失去焦点
当我点击主窗口时发出哔声,好像有一个模态MessageBox
要么按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) 我正在使用InnoSetup为.NET应用程序安装一个安装程序,我想在安装期间注册一些程序集.我怎样才能做到这一点?
谢谢.
由于我使用一台带有电视作为第二个显示器的笔记本电脑,我想制作一个小脚本,它将触发屏幕设置从扩展到克隆,当它设置为克隆时,它应该将屏幕设置设置为扩展。我想用 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)
创建新流程效果很好。但我的问题是,如何检查“显示”的状态?我需要它,以便我可以运行测试以查看要启动的进程。
感谢您的帮助 :)
有人看过GOG.com游戏安装程序吗?如何在单个标题中创建包含路径和需要大小的欢迎文本字符串?部分是粗体的.
以下是修改安装路径后如何更改String换行的示例
我没有在帮助中找到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安装程序安装程序)以管理权限运行
我在使用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) 我使用 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 列:类型不匹配
我该如何正确的类型转换PChar
成Longint
在InnoSetup脚本?
我尝试使用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) 是否可以使用变量设置数组的自定义索引.
例如:
var indexID = 5;
var temp = {
indexID: new Array()
};
Run Code Online (Sandbox Code Playgroud)
上面的示例将数组索引设置为indexID
和不5
.我尝试使用=
snd引号,但我没有任何成功.
Thnaks
我正在尝试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.
inno-setup ×3
arrays ×2
c# ×2
winapi ×2
.net ×1
android ×1
casting ×1
crash ×1
delphi ×1
exec ×1
gac ×1
installer ×1
javascript ×1
messagebox ×1
monitors ×1
networking ×1
pascal ×1
screens ×1
scripting ×1
settings ×1
shellexecute ×1
split ×1
variables ×1
vb6 ×1
wcf ×1
web-services ×1
ws-discovery ×1