小编And*_*ehm的帖子

.NET Compact是.NET的完美子集吗?

.NET Compact是.NET的完美子集吗?

我是否可以编写Windows窗体应用程序并在.NET Compact上运行它,假设我考虑了屏幕大小和其他限制,并避免.NET Compact不支持的类和方法,或者.NET Compact是一个不同且不兼容的GUI框架?

.net compact-framework

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

如何从DOS批处理命令发送电子邮件?

我在DOS中有一个批处理文件进行一些检查,我需要在完成后发送一封电子邮件.我在interwebz上找到了一些解决方案,但大多数都是第三方,或者只是在Outlook中打开一条新消息.我需要命令才能完整地发送电子邮件而无需任何人工干预.

如果这很重要,我们在这里使用MS Exchange.

谢谢!

windows command-line cmd batch-file

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

我发现了Windows错误吗?

使用"C:\ Program Files(x86)"我遇到了一个奇怪的问题,程序位于该路径下方的某个位置.我用测试程序重现了这个行为.

    int _tmain(int argc, _TCHAR* argv[])
{
    wprintf(L"%d\n", argc);
    for (int i = 0; i < argc; i++) {
        wprintf(L"%s\n", argv[i]);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

程序计算并返回所有命令行参数(包括用于标识程序的程序路径).我把它命名为"HelloWorld.exe",因为我很着急.

对于运行程序的三种可能方式,它给出了两种不同的结果,而我期望得到相同的结果.

当我从自己的目录运行HelloWorld.exe时,输出是

1
HelloWorld.exe
Run Code Online (Sandbox Code Playgroud)

该输出是正确的和预期的.

当我从另一个位置运行位于"P:\ Test(x86)"的HelloWorld.exe并使用引用路径时,输出为

1
P:\Test (x86)\HelloWorld.exe
Run Code Online (Sandbox Code Playgroud)

该输出也是正确的和预期的.

但是,当我从另一个位置运行HelloWorld.exe并使用带有转义空格和括号的路径时,找到该程序(即路径是正确的),但输出错误:

2
P:\Test
(x86)\HelloWorld.exe
Run Code Online (Sandbox Code Playgroud)

由于某种原因,逃离的空间

P:\ Test\^ ^(x86 ^)\ HelloWorld.exe

由于某种原因和Windows成为空间读取操作符,在读取路径作为一个字符串来查找程序之后,在创建程序然后引用的数组之前,确定它实际上是两个字符串.

Windows XP(x86)和Windows Server 2008 R2(x64)中都会出现此问题.我假设它存在于所有(NT)版本的Windows中.

windows debugging windows-nt

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

CP/M 3.1 (z80) 的最小汇编程序

我似乎正在与我的愚蠢作斗争。

该站点解释了各种版本的 CP/M 下的系统调用。

但是,当我尝试使用 call 2(C_WRITE,控制台输出)时,没有任何反应。

我有以下代码。

ORG 100h
LD E,'a'
LD C,2
CALL 5
CALL 0
Run Code Online (Sandbox Code Playgroud)

我凭记忆在这里背诵。如果有拼写错误,请放心,它们不在原始文件中,因为文件确实已编译并且我有一个 COM 文件要启动。

我认为这些行的含义如下:

  1. 确保它在地址 100h 加载(0h 到 FFh 是零页)。
  2. 将 ASCII 'a' 加载到系统调用 2 的 E 寄存器中。
  3. 将整数 2 加载到系统调用 2 的 C 寄存器中。
  4. 进行系统调用(系统调用的 JMP 位于零页中的地址 5)。
  5. 结束程序(退出命令位于零页中的地址 0)。

该程序启动和退出没有问题。如果我删除最后一个命令,它会挂起计算机(我猜这也是预期的,并且显示 CALL 0 有效)。

但是,它不打印 ASCII 字符。(但它确实打印了一个额外的新行,但系统可能已经这样做了。)

我怎样才能让我的 CP/M 程序做系统调用应该做的事情?我究竟做错了什么?

更新:问题是我尝试过的所有汇编程序都期望源文件具有某种格式。此文件与 Microsoft 的宏汇编程序一起使用:

        .Z80
START:  LD      E,'a'
        LD      C,2
        CALL    5
        JP      0
Run Code Online (Sandbox Code Playgroud)

认为(我在猜测)asm.com(DR 的汇编程序)和 m80.com(Microsoft 的宏汇编程序)正在期待 Intel …

z80 cpm

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

使用超过默认按钮从PowerShell调用Messagebox.Show()?

我试图用PowerShell显示一个消息框,带有yes和no按钮.

我可以使用OK按钮显示一个消息框:

[system.windows.forms.messagebox]::show("Hello, world!")
Run Code Online (Sandbox Code Playgroud)

我可以使用我想要的按钮创建一个变量$按钮:

$buttons=[system.windows.forms.messageboxbuttons].yesno
Run Code Online (Sandbox Code Playgroud)

我可以看到Show()静态方法被重载,其中一个选项是给出三个参数:

Show(String,String,MessageBoxButtons)显示带有指定文本,标题和按钮的消息框.

那么自然(?)我决定这样称呼:

[system.windows.forms.messagebox]::show("Are you sure?","",$buttons)
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

找不到"Show"的重载和参数count:"3".

但是"Show"有一个超载,接受三个参数!

我究竟做错了什么?

(并且有人可以告诉我为什么在PowerShell中调用方法通常使用点语法:object.method(),但MessageBox类需要"::"?这令人困惑.)

powershell winforms

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

为什么PowerShell显示的表单有时不显示?

当我在PowerShell中创建表单(窗口)时,我通常可以使用.ShowDialog()显示表单:

$form = New-Object System.Windows.Forms.Form
$form.ShowDialog()
Run Code Online (Sandbox Code Playgroud)

.VhowDialog()之前和之后将.Visible设置为False.

但当我做.Show()屏幕上没有显示任何内容:

$form.Show()
Run Code Online (Sandbox Code Playgroud)

而.Visible现在设置为True(大概是因为.Show()使形式正式可见.)

当我现在再次尝试.ShowDialog()表单时,我收到以下错误消息:

"已经可见的表单不能显示为模式对话框.在调用showDialog之前,将表单的visible属性设置为false."

但是当我再次按照说明操作.ShowDialog()时

$form.Visible=0
$form.ShowDialog()
Run Code Online (Sandbox Code Playgroud)

结果是屏幕上没有显示任何内容,PowerShell挂起并且无法恢复(ctrl-c似乎不起作用).我认为这是因为表单在某个地方显示模式,我无法看到它(或Tab键到它).但为什么?

表格的坐标没有改变.那么表单如何确定它何时在物理上可见以及何时不可见?

powershell winforms

4
推荐指数
1
解决办法
5157
查看次数

3
推荐指数
1
解决办法
821
查看次数

如何从NSTableView获取数据?

我有一个NSTableView有两列和一个数据源,用数据填充它.那部分有效.

我怎样才能获得数据(NSString格式NSTableView?我可以获取所选行,但NSTableView似乎没有访问数据的方法.

从我的数据源获取数据似乎返回无用的数据(类型ID,NSLog()并且NSRunAlertPanel()都声称数据不属于该类型NSString.

什么是从中获取数据的最简单方法NSTableView

更新:

原来从我的数据源获取数据的原因未能与返回做NSString的是一部分NSArraytableView()方法.

我的输入文件包含我为表格视图中的列拆分的行.在NSTableView得到正确的数据,但是当我打电话的tableView()方法我自己,我碰上一个EXC_BAD_ACCESS我假设有内存管理做的错误.

另一个更新:

这不是内存管理.这是我的应用程序无法识别NSTableColumn它想要的.我编写了另一种手动访问数据的方法,该方法使用int作为列而不是a NSTableColumn而且有效.

cocoa objective-c nstableview

3
推荐指数
1
解决办法
2468
查看次数

如何使用PowerShell将焦点设置到输入框?

我正在使用以下PowerShell 2.0代码从vb输入框中获取输入:

[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
$name = [Microsoft.VisualBasic.Interaction]::InputBox("What is your name?", "Name", "bob")
Run Code Online (Sandbox Code Playgroud)

有时当我运行它时,输入框出现在活动窗口后面.有没有办法让输入框最顶端?或者一个简单的方法来获得它的手柄,只需使用setforegroundwindow?

谢谢!!

powershell

2
推荐指数
1
解决办法
4341
查看次数

Visual Studio:"高级编译器设置"中的"目标CPU"设置.它有什么作用?

Visual Studio 2010(付费版)为.NET程序提供了四种目标CPU:AnyCPU,x86,x64和Itanium.

这些设置究竟做了什么?

我注意到(在x64 Windows 7计算机上),使用AnyCPU和x86创建的二进制文件具有相同的大小,使用x64或Itanium创建的二进制文件具有相同的大小(但小于第一个).为x86创建的二进制文件似乎也在WoW64中运行,而为AnyCPU编译的相同大小的二进制文件则不会.针对Itanium优化的二进制文件在Windows 7 x64上根本不运行(这是有意义的).

我假设Windows在任何本机模式下运行AnyCPU二进制文件(在我的情况下为x64)并在64位计算机(x64和Itanium)上的WoW64中运行x86.但二进制大小是如何进入的?

.net visual-studio

2
推荐指数
1
解决办法
6951
查看次数

Win32_Service:使用 PowerShell 中的 SetSecurityDescriptor()

我正在尝试从 PowerShell 为 Windows 服务的用户设置权限。但 WMI 完全忽略我的更改。我究竟做错了什么?

$service = Get-WmiObject -EnableAllPrivileges Win32_Service | Where-Object {$_.Name -eq "HubertService"}
$descriptor = $service.GetSecurityDescriptor()
$descriptor.Descriptor.Owner
Run Code Online (Sandbox Code Playgroud)

到目前为止这有效。我现在有了一个很好的安全描述符。我可以显示所有者。

现在,如果我更改任何内容,例如其中一个 ACE 的 AccessMask,这也有效:

$descriptor.Descriptor.DACL[0].AccessMask = 0
Run Code Online (Sandbox Code Playgroud)

我什至可以将此修改后的描述符写入我的 Win32_Service 对象:

$service.InvokeMethod("SetSecurityDescriptor", $descriptor, $null)
Run Code Online (Sandbox Code Playgroud)

然而,之前和之后

$service.Put()
Run Code Online (Sandbox Code Playgroud)

当我创建新的 $service 变量并对其运行 GetSecurityDeciptor() 时,修改根本不会显示。

我究竟做错了什么?

powershell wmi

2
推荐指数
1
解决办法
3860
查看次数

C++,GTK +和String类型

请原谅我的无知,但我既不知道C++也不知道GTK +.

在GTK +小部件中设置字符串时使用哪种字符串类型?

在.NET中,传递给控件的字符串显然是.NET System.String.在Cocoa中,传递给控件的字符串是NSString.但我知道C++没有标准化的字符串类型(但确实有几种,具体取决于所使用的库).

那么Strings如何传递给GTK +小部件呢?

(我在想C弦,但我想知道.)

c++ gtk string

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

MS-DOS 上的调用 5 接口

我有一个用于 MS-DOS 的 Hello, World 程序,它使用 int 21h 进行系统调用。

mov dx,hello
mov ah,9
int 0x21
mov ah,0
int 0x21
Run Code Online (Sandbox Code Playgroud)

“hello”是字符串“hello, world”,13,10,“$”的地址。

该程序有效。

然而,当我用“call 5”替换(第一个)“int 0x21”时,程序使计算机崩溃(即运行PTS-DOS的VirtualBox虚拟机)。在 DOSbox 上,它只是终止并返回到命令提示符。

我尝试使用不同的寄存器来存储地址和电话号码,但总是得到相同的结果。

现在我想知道...

  1. DOS 的更高版本不再支持 CP/M 兼容性调用 5 接口吗?
  2. PTS-DOS和DOSbox中的DOS不支持呼叫5吗?
  3. 我使用的接口错误吗?
  4. 我必须先配置段寄存器吗?(我尝试将所有段寄存器设置为零。)

有任何想法吗?

更新:我接受了答案,因为根据文档它是正确的。它仍然无法工作,但这可能是由于我的 DOS 版本或其他问题造成的。

assembly dos system-calls

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