小编Noa*_*m M的帖子

QProcess和shell:进程仍在运行时被销毁

我想用Qt启动一个shell脚本.

QProcess process;
process.start(commandLine, QStringList() << confFile);
process.waitForFinished();

if(process.exitCode()!=0)
{
    qDebug () << " Error " << process.exitCode() << process.readAllStrandardError();
}
else
{
    qDebug () << " Ok " << process.readAllStrandardOutput() << process.readAllStrandardError();
}
Run Code Online (Sandbox Code Playgroud)

结果是:

好的:结果...."""QProcess:当进程仍在运行时被销毁.

此消息不会每次都出现.

问题是什么?

shell qt sh qprocess qt-creator

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

如何在Windows应用程序中使用SMTP服务器向手机发送短信?


我正在使用C#开发一个Windows应用程序,我希望根据某些条件向某些用户发送短信.我浏览了许多论坛帖子"使用SMTP服务器发送短信",但没有一个用于我.在这里我有一些线索通过Gmail SMTP发送短信,但没有工作,因为我认为它是特定于运营商(不确定).
我的代码示例:

try
{
    MailMessage message = new MailMessage();
    message.To.Add("1568235685@sms.sancharnet.in");
    message.From = new MailAddress("sameone@gmail.com"); //See the note afterwards...
    message.Body = "Hi, How r you ?";

    SmtpClient smtp = new SmtpClient("smtp.gmail.com");
    smtp.EnableSsl = true;
    smtp.Port = 587;
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtp.Credentials = new NetworkCredential("someonet@gmail.com", "password");

    smtp.Send(message);
    MessageBox.Show("Message sent successfully");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Error");
}
Run Code Online (Sandbox Code Playgroud)

上面的代码没有给出任何异常或错误,但我也没有得到任何短信我的号码.

那么,我想问的是,有没有办法使用SMTP服务器向任何运营商的手机号码发送短信?

c# email sms smtp winforms

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

为什么我需要多个EOF(CTRL + Z)字符?

作为一个小背景,我对C编程语言很陌生,因此一直试图完成第二版Kernighan&Ritchie手册中的一些练习.我确实意识到我可以通过更多地使用标准库来更简洁地处理某些问题,但是我试图尽可能地保持我的有用命令的所有内容与本书保持同步.

如果它有所不同,我正在使用Tiny C编译器(TCC)在Windows XP环境中编译我的源代码,并在XP控制台(cmd.exe)中执行二进制文件.

问题:处理End-of-File (EOF) characters.我已经整理了一个小测试用例来说明问题.该程序似乎处理EOF字符(部分).我将尝试用样本输入/输出来演示问题.

#include <stdio.h>

int main() 
{
    int character, count;

    character = 0;
    character = getchar();

    for (count = 0; character != EOF; ++count) 
    {
        character = getchar();
    }

    printf("Count: %d", count);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

示例输入1 :( abcd^Z[enter]其中^ Z/CTRL + Z表示EOF字符,[enter]表示Enter键.)

示例输出1 :( Count: 4等待更多输入或在^ C/^ Z [enter]上正确结束)

样本输入2: abcd^Zefgh

示例输出2 :( Count: 4等待更多输入或在^ C/^ Z [enter]上正确结束)

如两个示例中所述,在启动^ C/^ Z [enter]序列之前不输出字符计数.在启动之前,程序会等待(并确实处理)更多输入.但是,如示例2中所述,当程序遇到初始^ Z时,如果启动^ C/^ Z [enter]序列,它将停止处理该输入行,等待更多输入或返回正确计数.

我无法弄清楚为什么程序只是部分处理EOF字符.在我看来,如果它截断样本2的末尾,它也应该完全脱离循环.任何想法为什么在识别EOF字符时程序不会立即打印当前计数并退出?

c windows-xp cmd eof

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

如何使用触发器更改TextBlock的前景色?

我想从dependencyproperty更改TextBlock的前景色.
但我不改变文本块颜色.
我的代码中不知道这个问题.
如何使用触发器更改TextBlock的前景色?

XAML:

<TextBlock Name="TestBlock" Text="Test color" >
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Style.Triggers>
                <Trigger Property ="IsMouseOver" Value="True">
                    <Setter Property= "Foreground" Value="Gray"/>
                </Trigger>
                <DataTrigger Binding="{Binding Path=TestColorMode2, RelativeSource={RelativeSource AncestorType={x:Type local:Window1}}}" Value="0">
                    <Setter Property="Foreground" Value="Red" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=TestColorMode2, RelativeSource={RelativeSource AncestorType={x:Type local:Window1}}}" Value="1">
                    <Setter Property="Foreground" Value="Blue" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=TestColorMode2, RelativeSource={RelativeSource AncestorType={x:Type local:Window1}}}" Value="2">
                    <Setter Property="Foreground" Value="Green" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=TestColorMode2, RelativeSource={RelativeSource AncestorType={x:Type local:Window1}}}" Value="3">
                    <Setter Property="Foreground" Value="Black" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

码:

public static DependencyProperty TestColorModeProperty …
Run Code Online (Sandbox Code Playgroud)

wpf datatrigger textblock foreground

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

指向指针的指针,我输了

这是我的代码,它编译并运行:

#include <stdio.h> 
#include <stdlib.h>

int main() 
{ 
    int i,j; 
    int** p = (int **)malloc(2 * sizeof(int *));

    p[0] = (int *)malloc(2 * sizeof(int)); 
    p[1] = p[0];

    for(i = 0; i < 2; i++) 
    {
            for(j = 0; j < 2; j++) 
            {
                p[i][j] = i + j; 
            }
    } 

    printf("p[0][0] = %d",p[0][0]); 

    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

当这个程序运行时,我得到:P [0] [0] = 1.为什么P [0] [0] = 0?

c

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

如何将窗口运行到新任务中并保持其主线程运行

正在开发 WPF / MVVM 应用程序。将 MVC 窗口从主线程显示到新任务并让主线程继续运行其下一条指令而不等待窗口关闭的最佳方法是什么?

我想运行以下命令:

  Window window = new Window();
    View view = new View();
    ViewModel viewModel = new ViewModel();
    window.Content = view;

window.Show();

... program then continues with business stuff
Run Code Online (Sandbox Code Playgroud)

显然,如果我跑

 window.Show();
Run Code Online (Sandbox Code Playgroud)

窗口立即返回并关闭。

如果我使用

 window.ShowDialog()
Run Code Online (Sandbox Code Playgroud)

线程等待用户关闭窗口,这不是我想要的,因为我需要下一个指令才能继续。

我想我需要将窗口运行到新线程中,但这会带来额外的问题:

 Task.Run(() => window.ShowDialog())); 
Run Code Online (Sandbox Code Playgroud)

这也不起作用,因为窗口被创建为不同的东西。

所以我想我需要使用调度程序才能在新任务中运行 window.ShowDialog :

Task.Run(() => Application.Current.Dispatcher.Invoke(() => window.ShowDialog() ));
Run Code Online (Sandbox Code Playgroud)

但这也行不通。尽管编译器接受它并且在运行时不会抛出异常,但该窗口永远不会打开。如果我以逐步模式进行调试,我可以看到调试器永远不会在新任务中进入匿名状态。

这应该非常简单,但我只是无法解决这个问题。感谢您提前提供的帮助。

c# wpf multithreading dispatcher

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

语言是否需要preIncrement(++ x)和postIncrement(x ++)

我从未在实际代码中看到用于预增量后增量的用例.我经常看到它们的唯一地方是谜题.
我的观点是,它引入了更多的混淆而不是有用.

  • 是否有任何真实的用例场景
  • 这不能通过使用+ =来完成

    y = x++

    y = x
    x += 1

programming-languages increment pre-increment post-increment

3
推荐指数
2
解决办法
1244
查看次数

如何查找谁将sigterm信号发送到我的进程或我的进程组?

我们有一个守护程序服务器程序,它会分配一个孩子.当孩子退出时,父母正在接收SIGTERM信号.所以,我们想知道

1)谁发送了这个SIGTERM

2)是否SIGTERM只针对父母或其团体?

3)SIGTERM在这种情况下可以生成哪些可能的方法?

4)是否可以屏蔽此SIGTERM信号?如果是,这次电话的副作用是什么?

c unix linux

3
推荐指数
2
解决办法
6143
查看次数

无法建立连接,因为目标计算机主动拒绝它 - 使用Socket或TcpClient

很多人都有同样的问题,但每个人的实现都不同.

我需要帮助实现它.

void sendUsingTcp() 
{
    try 
    {
        Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(172.16.8.200), 8000);
        sock.Connect(endPoint);
        // code past this never hits because the line above fails
    } 
    catch (SocketException err) 
    {
        MessageBox.Show(err.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过直接使用相同错误结果的TCP客户端:

void sendUsingTcp() 
{
    try 
    {
        using (TcpClient client = new TcpClient()) 
        {
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(172.16.8.200), 8000);
            client.Connect(endPoint);
            // code past this never hits because the line above fails
        }
    } 
    catch (SocketException err) 
    {
        MessageBox.Show(err.Message);
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# tcpclient visual-studio-2008 winforms

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

Helix工具包旋转3D模型

我是WPF的新手,我正在尝试制作一个显示3D模型的程序(保存在我的计算机上)并根据按钮点击进行旋转.我想有三个按钮来围绕x,y和z轴旋转对象.我有代码显示模型,但我不确定如何使用按钮单击旋转它.这是我到目前为止所拥有的;

C#

public MainWindow()
{
    InitializeComponent();
    ModelVisual3D device3D = new ModelVisual3D();
    device3D.Content = Display3d(MODEL_PATH);

    // Add to view port
    viewPort3d.Children.Add(device3D);
}

private Model3D Display3d(string model)
{
    Model3D device = null;
    try
    {
        //Adding a gesture here
        viewPort3d.RotateGesture = new MouseGesture(MouseAction.LeftClick);

        //Import 3D model file
        ModelImporter import = new ModelImporter();

        //Load the 3D model file
        device = import.Load(model);
    }
    catch (Exception e)
    {
        // Handle exception in case can not find the 3D model file
        MessageBox.Show("Exception Error : " + e.StackTrace); …
Run Code Online (Sandbox Code Playgroud)

c# 3d wpf rotation helix-3d-toolkit

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